-
Notifications
You must be signed in to change notification settings - Fork 201
perf(l1): add binaryandhash data block index to all rocksdb CFs for faster point lookups #6529
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
dicethedev
wants to merge
2
commits into
lambdaclass:main
Choose a base branch
from
dicethedev:perf/rocksdb-data-block-hash-index
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -121,6 +121,8 @@ impl RocksDBBackend { | |
| let mut block_opts = BlockBasedOptions::default(); | ||
| block_opts.set_block_size(16 * 1024); // 16KB | ||
| block_opts.set_bloom_filter(10.0, false); | ||
| block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); | ||
| block_opts.set_data_block_hash_ratio(0.75); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit: trailing whitespace on this line (and lines 139-140, 154-155, 171, 183-184, 196). |
||
| block_opts.set_block_cache(&block_cache); | ||
| cf_opts.set_block_based_table_factory(&block_opts); | ||
| } | ||
|
|
@@ -134,6 +136,8 @@ impl RocksDBBackend { | |
| let mut block_opts = BlockBasedOptions::default(); | ||
| block_opts.set_block_size(16 * 1024); // 16KB | ||
| block_opts.set_bloom_filter(10.0, false); // 10 bits per key | ||
| block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); | ||
| block_opts.set_data_block_hash_ratio(0.75); | ||
| block_opts.set_block_cache(&block_cache); | ||
| cf_opts.set_block_based_table_factory(&block_opts); | ||
| } | ||
|
|
@@ -147,6 +151,8 @@ impl RocksDBBackend { | |
| let mut block_opts = BlockBasedOptions::default(); | ||
| block_opts.set_block_size(16 * 1024); // 16KB | ||
| block_opts.set_bloom_filter(10.0, false); // 10 bits per key | ||
| block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); | ||
| block_opts.set_data_block_hash_ratio(0.75); | ||
| block_opts.set_block_cache(&block_cache); | ||
| cf_opts.set_block_based_table_factory(&block_opts); | ||
| } | ||
|
|
@@ -162,6 +168,8 @@ impl RocksDBBackend { | |
|
|
||
| let mut block_opts = BlockBasedOptions::default(); | ||
| block_opts.set_block_size(32 * 1024); // 32KB | ||
| block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); | ||
| block_opts.set_data_block_hash_ratio(0.75); | ||
| block_opts.set_block_cache(&block_cache); | ||
| cf_opts.set_block_based_table_factory(&block_opts); | ||
| } | ||
|
|
@@ -172,6 +180,8 @@ impl RocksDBBackend { | |
|
|
||
| let mut block_opts = BlockBasedOptions::default(); | ||
| block_opts.set_block_size(32 * 1024); // 32KB | ||
| block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); | ||
| block_opts.set_data_block_hash_ratio(0.75); | ||
| block_opts.set_block_cache(&block_cache); | ||
| cf_opts.set_block_based_table_factory(&block_opts); | ||
| } | ||
|
|
@@ -183,6 +193,8 @@ impl RocksDBBackend { | |
|
|
||
| let mut block_opts = BlockBasedOptions::default(); | ||
| block_opts.set_block_size(16 * 1024); | ||
| block_opts.set_data_block_index_type(rocksdb::DataBlockIndexType::BinaryAndHash); | ||
| block_opts.set_data_block_hash_ratio(0.75); | ||
| block_opts.set_block_cache(&block_cache); | ||
| cf_opts.set_block_based_table_factory(&block_opts); | ||
| } | ||
|
|
||
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Direct conflict point with #6530 — that PR adds the identical
set_data_block_index_type(BinaryAndHash)+set_data_block_hash_ratio(0.75)calls to the same six BlockBasedOptions blocks. The textual merge resolves cleanly to one copy.The overlap suggests this PR's content is a subset of #6530, which also adds LZ4 compression and broadens
point_lookup_cfs. If the team wants the binary-hash index landed independently of the broader perf changes (smaller surface area, easier to revert if it ever needs to go), this PR is the cleaner unit. If the team is happy to land both together, #6530 is the strictly-larger superset and this PR can close.