[DO NOT MERGE] bench: block v2 iterator bench #1138
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Key format:
| 't' | tid (u32) | pk (u64) |
Value format:
v (u64)
Each block contains 10 tid, each tid contains 100 entries (in order).
BlockV2 restart point interval: 16
Under the circumstances:
BlockV2
encoding needs only half of the space ofBlock
.But the performance of iterators regressed.But the performance ofprev
regressed.The regression ofnext
may because copies of my implementation.prev
, in theory, isnext * (restart point interval / 2)
UPDATES: After optimization,
BlockIteratorV2::next()
is better than the origin one.