summaryrefslogtreecommitdiff
path: root/options/cf_options.h
diff options
context:
space:
mode:
authorVardhan <vvarma@sightmachine.com>2023-08-02 19:58:56 -0700
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>2023-08-02 19:58:56 -0700
commit87a21d08fe606055ed79144b725445c38b4e0ae2 (patch)
tree7a98a8927bfa87f524413b0390a355fe49bc0ac9 /options/cf_options.h
parentf9de217353f2d45f06fe5b9eab50b191f1a2d7a2 (diff)
Add an option to trigger flush when the number of range deletions reach a threshold (#11358)
Summary: Add a mutable column family option `memtable_max_range_deletions`. When non-zero, RocksDB will try to flush the current memtable after it has at least `memtable_max_range_deletions` range deletions. Java API is added and crash test is updated accordingly to randomly enable this option. Pull Request resolved: https://github.com/facebook/rocksdb/pull/11358 Test Plan: * New unit test: `DBRangeDelTest.MemtableMaxRangeDeletions` * Ran crash test `python3 ./tools/db_crashtest.py whitebox --simple --memtable_max_range_deletions=20` and saw logs showing flushed memtables usually with 20 range deletions. Reviewed By: ajkr Differential Revision: D46582680 Pulled By: cbi42 fbshipit-source-id: f23d6fa8d8264ecf0a18d55c113ba03f5e2504da
Diffstat (limited to 'options/cf_options.h')
-rw-r--r--options/cf_options.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/options/cf_options.h b/options/cf_options.h
index 37ef54c0c..86de78d9d 100644
--- a/options/cf_options.h
+++ b/options/cf_options.h
@@ -175,7 +175,8 @@ struct MutableCFOptions {
block_protection_bytes_per_key(options.block_protection_bytes_per_key),
sample_for_compression(
options.sample_for_compression), // TODO: is 0 fine here?
- compression_per_level(options.compression_per_level) {
+ compression_per_level(options.compression_per_level),
+ memtable_max_range_deletions(options.memtable_max_range_deletions) {
RefreshDerivedOptions(options.num_levels, options.compaction_style);
}
@@ -224,7 +225,8 @@ struct MutableCFOptions {
last_level_temperature(Temperature::kUnknown),
memtable_protection_bytes_per_key(0),
block_protection_bytes_per_key(0),
- sample_for_compression(0) {}
+ sample_for_compression(0),
+ memtable_max_range_deletions(0) {}
explicit MutableCFOptions(const Options& options);
@@ -318,6 +320,7 @@ struct MutableCFOptions {
uint64_t sample_for_compression;
std::vector<CompressionType> compression_per_level;
+ uint32_t memtable_max_range_deletions;
// Derived options
// Per-level target file size.