From aeafdd884f95cb2ae034c21373a75f14f848432a Mon Sep 17 00:00:00 2001 From: glorv Date: Tue, 19 Aug 2025 18:04:01 +0800 Subject: [PATCH 1/5] add a new manual compaction option 'bottom_level_check_range_overlap' Signed-off-by: glorv --- .gitmodules | 4 ++-- librocksdb_sys/crocksdb/c.cc | 5 +++++ librocksdb_sys/crocksdb/crocksdb/c.h | 3 +++ librocksdb_sys/rocksdb | 2 +- librocksdb_sys/src/lib.rs | 1 + src/rocksdb_options.rs | 6 ++++++ 6 files changed, 18 insertions(+), 3 deletions(-) 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 { From 79e14c7f3fffffd8a0e234e3067d2a1f4544f9a3 Mon Sep 17 00:00:00 2001 From: glorv Date: Tue, 18 Nov 2025 16:30:05 +0800 Subject: [PATCH 2/5] update rocksdb Signed-off-by: glorv --- .gitmodules | 4 ++-- librocksdb_sys/crocksdb/c.cc | 4 ++-- librocksdb_sys/crocksdb/crocksdb/c.h | 2 +- librocksdb_sys/rocksdb | 2 +- librocksdb_sys/src/lib.rs | 2 +- src/rocksdb_options.rs | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.gitmodules b/.gitmodules index 5aca5cf21..01c989272 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "rocksdb"] path = librocksdb_sys/rocksdb - url = https://github.com/glorv/rocksdb.git - branch = manual-compact-bottom-check + url = https://github.com/tikv/rocksdb.git + branch = 8.10.tikv [submodule "titan"] path = librocksdb_sys/libtitan_sys/titan diff --git a/librocksdb_sys/crocksdb/c.cc b/librocksdb_sys/crocksdb/c.cc index 4e1cbf57c..f0b88bb57 100644 --- a/librocksdb_sys/crocksdb/c.cc +++ b/librocksdb_sys/crocksdb/c.cc @@ -4120,9 +4120,9 @@ void crocksdb_compactoptions_set_bottommost_level_compaction( static_cast(v); } -void crocksdb_compactoptions_set_bottom_level_check_range_overlap( +void crocksdb_compactoptions_set_check_range_overlap_on_bottom_level( crocksdb_compactoptions_t* opt, unsigned char v) { - opt->rep.bottom_level_check_range_overlap = v; + opt->rep.check_range_overlap_on_bottom_level = v; } crocksdb_flushoptions_t* crocksdb_flushoptions_create() { diff --git a/librocksdb_sys/crocksdb/crocksdb/c.h b/librocksdb_sys/crocksdb/crocksdb/c.h index 936f05c44..b288fd29a 100644 --- a/librocksdb_sys/crocksdb/crocksdb/c.h +++ b/librocksdb_sys/crocksdb/crocksdb/c.h @@ -1694,7 +1694,7 @@ 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_set_check_range_overlap_on_bottom_level( crocksdb_compactoptions_t*, unsigned char); /* Flush options */ diff --git a/librocksdb_sys/rocksdb b/librocksdb_sys/rocksdb index 1b0c172d3..b4ef4c1e0 160000 --- a/librocksdb_sys/rocksdb +++ b/librocksdb_sys/rocksdb @@ -1 +1 @@ -Subproject commit 1b0c172d39ffcce7db8d33935ad149ff40210b36 +Subproject commit b4ef4c1e0f80cf3c2b7196d03951efc6d8959c49 diff --git a/librocksdb_sys/src/lib.rs b/librocksdb_sys/src/lib.rs index 1a1347291..154ff3c81 100644 --- a/librocksdb_sys/src/lib.rs +++ b/librocksdb_sys/src/lib.rs @@ -1680,7 +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_compactoptions_set_check_range_overlap_on_bottom_level(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 e606c0322..56a8acc5e 100644 --- a/src/rocksdb_options.rs +++ b/src/rocksdb_options.rs @@ -857,9 +857,9 @@ impl CompactOptions { } } - pub fn set_bottom_level_check_range_overlap(&mut self, v: bool) { + pub fn set_check_range_overlap_on_bottom_level(&mut self, v: bool) { unsafe { - crocksdb_ffi::crocksdb_compactoptions_set_bottom_level_check_range_overlap(self.inner, v); + crocksdb_ffi::crocksdb_compactoptions_set_check_range_overlap_on_bottom_level(self.inner, v); } } } From dfe582d95e10599ae1f38554c991df7edd120ecf Mon Sep 17 00:00:00 2001 From: glorv Date: Tue, 18 Nov 2025 16:35:52 +0800 Subject: [PATCH 3/5] fmt code Signed-off-by: glorv --- librocksdb_sys/src/lib.rs | 5 ++++- src/rocksdb_options.rs | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/librocksdb_sys/src/lib.rs b/librocksdb_sys/src/lib.rs index 154ff3c81..aaa2c0659 100644 --- a/librocksdb_sys/src/lib.rs +++ b/librocksdb_sys/src/lib.rs @@ -1680,7 +1680,10 @@ extern "C" { opt: *mut DBCompactOptions, v: DBBottommostLevelCompaction, ); - pub fn crocksdb_compactoptions_set_check_range_overlap_on_bottom_level(opt: *mut DBCompactOptions, v: bool); + pub fn crocksdb_compactoptions_set_check_range_overlap_on_bottom_level( + 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 56a8acc5e..b5da3e0d9 100644 --- a/src/rocksdb_options.rs +++ b/src/rocksdb_options.rs @@ -859,7 +859,9 @@ impl CompactOptions { pub fn set_check_range_overlap_on_bottom_level(&mut self, v: bool) { unsafe { - crocksdb_ffi::crocksdb_compactoptions_set_check_range_overlap_on_bottom_level(self.inner, v); + crocksdb_ffi::crocksdb_compactoptions_set_check_range_overlap_on_bottom_level( + self.inner, v, + ); } } } From 474fc3faaf29663b70503e71c1162b0b5d590b05 Mon Sep 17 00:00:00 2001 From: glorv Date: Tue, 18 Nov 2025 17:21:50 +0800 Subject: [PATCH 4/5] update cmake version Signed-off-by: glorv --- Cargo.toml | 4 ---- librocksdb_sys/Cargo.toml | 2 +- librocksdb_sys/libtitan_sys/Cargo.toml | 2 +- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ef55b35a0..7cfe7aab4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,3 @@ crc = "1.8" lazy_static = "1.4.0" rand = "0.7" tempfile = "3.1" - -[patch.crates-io] -# Remove this when a new version is release. We need to solve rust-lang/cmake-rs#143. -cmake = { git = "https://github.com/rust-lang/cmake-rs" } diff --git a/librocksdb_sys/Cargo.toml b/librocksdb_sys/Cargo.toml index cdcd68e79..048c9702c 100644 --- a/librocksdb_sys/Cargo.toml +++ b/librocksdb_sys/Cargo.toml @@ -30,7 +30,7 @@ static_libcpp = [] [build-dependencies] cc = "1.0.3" -cmake = "0.1" +cmake = "0.1.53" bindgen = { version = "0.65", default-features = false, features = ["runtime"] } [dependencies.tikv-jemalloc-sys] diff --git a/librocksdb_sys/libtitan_sys/Cargo.toml b/librocksdb_sys/libtitan_sys/Cargo.toml index 52c0026a5..7bf5bcaf5 100644 --- a/librocksdb_sys/libtitan_sys/Cargo.toml +++ b/librocksdb_sys/libtitan_sys/Cargo.toml @@ -21,7 +21,7 @@ sse = [] [build-dependencies] cc = "1.0.3" -cmake = "0.1" +cmake = "0.1.53" [dependencies.snappy-sys] git = "https://github.com/tikv/rust-snappy.git" From 08a96b43e18a6f716be3627c67857d02c77dcfaa Mon Sep 17 00:00:00 2001 From: glorv Date: Tue, 18 Nov 2025 17:23:18 +0800 Subject: [PATCH 5/5] update cmake Signed-off-by: glorv --- librocksdb_sys/Cargo.toml | 2 +- librocksdb_sys/libtitan_sys/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/librocksdb_sys/Cargo.toml b/librocksdb_sys/Cargo.toml index 048c9702c..cdcd68e79 100644 --- a/librocksdb_sys/Cargo.toml +++ b/librocksdb_sys/Cargo.toml @@ -30,7 +30,7 @@ static_libcpp = [] [build-dependencies] cc = "1.0.3" -cmake = "0.1.53" +cmake = "0.1" bindgen = { version = "0.65", default-features = false, features = ["runtime"] } [dependencies.tikv-jemalloc-sys] diff --git a/librocksdb_sys/libtitan_sys/Cargo.toml b/librocksdb_sys/libtitan_sys/Cargo.toml index 7bf5bcaf5..52c0026a5 100644 --- a/librocksdb_sys/libtitan_sys/Cargo.toml +++ b/librocksdb_sys/libtitan_sys/Cargo.toml @@ -21,7 +21,7 @@ sse = [] [build-dependencies] cc = "1.0.3" -cmake = "0.1.53" +cmake = "0.1" [dependencies.snappy-sys] git = "https://github.com/tikv/rust-snappy.git"