storage/engine/rocksdb: set optimize_filters_for_hits #10085
Merged
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.
Do not create bloom filters for the last level (i.e. the largest level
which contains data in the LSM store). Setting this option reduces the
size of the bloom filters by 10x. This is significant given that bloom
filters require 1.25 bytes (10 bites) per key which can translate into
gigabytes of memory given typical key and value sizes. The downside is
that bloom filters will only be usable on the higher levels, but that
seems acceptable. We typically see read amplification of 5-6x on
clusters (i.e. there are 5-6 levels of sstables) which means we'll
achieve 80-90% of the benefit of having bloom filters on every level for
only 10% of the memory cost.
There is no significant impact on
block_writer
performance tests. Themost affected benchmark is:
But this delta is a little spurious because the "old" data contained
4 sstables while the new contains 5.
Fixes #10050
This change is