diff --git a/.gitmodules b/.gitmodules index 01c989272..5aca5cf21 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "rocksdb"] path = librocksdb_sys/rocksdb - url = https://github.com/tikv/rocksdb.git - branch = 8.10.tikv + url = https://github.com/glorv/rocksdb.git + branch = manual-compact-bottom-check [submodule "titan"] path = librocksdb_sys/libtitan_sys/titan diff --git a/librocksdb_sys/crocksdb/c.cc b/librocksdb_sys/crocksdb/c.cc index 5cdc9e990..4e1cbf57c 100644 --- a/librocksdb_sys/crocksdb/c.cc +++ b/librocksdb_sys/crocksdb/c.cc @@ -4120,6 +4120,11 @@ void crocksdb_compactoptions_set_bottommost_level_compaction( static_cast(v); } +void crocksdb_compactoptions_set_bottom_level_check_range_overlap( + crocksdb_compactoptions_t* opt, unsigned char v) { + opt->rep.bottom_level_check_range_overlap = v; +} + crocksdb_flushoptions_t* crocksdb_flushoptions_create() { return new crocksdb_flushoptions_t; } diff --git a/librocksdb_sys/crocksdb/crocksdb/c.h b/librocksdb_sys/crocksdb/crocksdb/c.h index e60e69eee..936f05c44 100644 --- a/librocksdb_sys/crocksdb/crocksdb/c.h +++ b/librocksdb_sys/crocksdb/crocksdb/c.h @@ -1693,6 +1693,9 @@ crocksdb_compactoptions_set_max_subcompactions(crocksdb_compactoptions_t*, int); extern C_ROCKSDB_LIBRARY_API void crocksdb_compactoptions_set_bottommost_level_compaction( crocksdb_compactoptions_t*, uint32_t); +extern C_ROCKSDB_LIBRARY_API void +crocksdb_compactoptions_set_bottom_level_check_range_overlap( + crocksdb_compactoptions_t*, unsigned char); /* Flush options */ diff --git a/librocksdb_sys/rocksdb b/librocksdb_sys/rocksdb index 2b04d0583..1b0c172d3 160000 --- a/librocksdb_sys/rocksdb +++ b/librocksdb_sys/rocksdb @@ -1 +1 @@ -Subproject commit 2b04d0583a2773cb74c52d355a1d6bcaeeec1202 +Subproject commit 1b0c172d39ffcce7db8d33935ad149ff40210b36 diff --git a/librocksdb_sys/src/lib.rs b/librocksdb_sys/src/lib.rs index e0370cb30..1a1347291 100644 --- a/librocksdb_sys/src/lib.rs +++ b/librocksdb_sys/src/lib.rs @@ -1680,6 +1680,7 @@ extern "C" { opt: *mut DBCompactOptions, v: DBBottommostLevelCompaction, ); + pub fn crocksdb_compactoptions_set_bottom_level_check_range_overlap(opt: *mut DBCompactOptions, v: bool); pub fn crocksdb_set_global_manual_compaction_canceled(v: bool); pub fn crocksdb_fifo_compaction_options_create() -> *mut DBFifoCompactionOptions; diff --git a/src/rocksdb_options.rs b/src/rocksdb_options.rs index 883409f93..e606c0322 100644 --- a/src/rocksdb_options.rs +++ b/src/rocksdb_options.rs @@ -856,6 +856,12 @@ impl CompactOptions { crocksdb_ffi::crocksdb_compactoptions_set_bottommost_level_compaction(self.inner, v); } } + + pub fn set_bottom_level_check_range_overlap(&mut self, v: bool) { + unsafe { + crocksdb_ffi::crocksdb_compactoptions_set_bottom_level_check_range_overlap(self.inner, v); + } + } } impl Drop for CompactOptions {