Open Giulio2002 opened 1 week ago
this could bring fullscan on each query since commitment reads from smallest prefix to largest during unfold. I want to use that fact by storing bt stateful cursors but first experiment was failed.
Prune already had GetExecV3PruneProgress and SaveExecV3PruneProgress
and Domain itself responsible to keep track it's progress, not aggregator
Collate should use ETL instead of slice sorting due to potential sizes of collations.
This is an experimental PRs which remove the use of
keysTable
from Domain, here is what was required as a consequence:etl.NilVal
) which instead of translating to delete, translates to insert nil value. all delete operation useetl.NilVal
.collate
was reworked to work withvalsTable
, which requires an extra sorting via keys with respected to stripped keys (without step suffiix)valsTable
, it is just aSeek
+ Check if stripped key == input key. Commitment have variable length keys so Instead we move cursor to where the last element (step=0) would be and callPrev()
until we get to the first. overall it is one less random lookup in exchange of a few extras sequential ones, so reading speed should have slightly improved.Prune
was reworked and it keeps track of latest pruned step in a separatekey
in tableTblPruningProgress