ledgerwatch / erigon-lib

Dependencies of Erigon project, rewritten from scratch and licensed under Apache 2.0
Apache License 2.0
59 stars 93 forks source link

RecSplit: check if possible don't store values #1047

Open AskAlexSharov opened 1 year ago

AskAlexSharov commented 1 year ago

Now RecSplit index has 2 modes: 1-layer and 2-layer (in code it called rs.Enum). Both of this modes encode values (passed by rs.AddKey(key, value)).

E3 need (if possible) add 3-rd mode: which behaves like 2-layer mode - enumerate keys - but doesn't store 2-nd layer on disk - no values at all. Example: add keys as rs.AddKey(key, 0) and then read as keyNumber := indexReader.Lookup(key).

Add tests for 3-rd mode.