This is an automated email from the ASF dual-hosted git repository.

merlimat pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 06869bc002 Upgrade RocksDB JNI to 10.10.1.1 while preserving 7.9.2 
index compatibility (#4886)
06869bc002 is described below

commit 06869bc002cc3084a3e6b04a74aa5d7c8efa3f75
Author: Lari Hotari <[email protected]>
AuthorDate: Fri Sep 11 08:46:52 2026 +0300

    Upgrade RocksDB JNI to 10.10.1.1 while preserving 7.9.2 index compatibility 
(#4886)
    
    * Upgrade RocksDB JNI to 10.10.1 while preserving 7.9.2 index compatibility
    
    * Update RocksDB references in binary distribution licenses
    
    * Upgrade to RocksDB JNI 10.10.1.1 with Windows native library fix
---
 .../src/main/resources/LICENSE-all.bin.txt         |  6 +--
 .../src/main/resources/LICENSE-server.bin.txt      |  6 +--
 .../storage/ldb/KeyValueStorageRocksDBTest.java    | 55 ++++++++++++++++++++++
 .../src/test/resources/conf/default_rocksdb.conf   | 18 ++++++-
 .../resources/conf/entry_location_rocksdb.conf     | 30 ++++++++++--
 .../resources/conf/ledger_metadata_rocksdb.conf    | 18 ++++++-
 conf/default_rocksdb.conf.default                  | 18 ++++++-
 conf/entry_location_rocksdb.conf.default           | 28 ++++++++++-
 conf/ledger_metadata_rocksdb.conf.default          | 18 ++++++-
 pom.xml                                            |  2 +-
 10 files changed, 179 insertions(+), 20 deletions(-)

diff --git a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt 
b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
index cc81f89da3..e6ca760dd7 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
@@ -277,7 +277,7 @@ Apache Software License, Version 2.
 - lib/org.eclipse.jetty.ee8-jetty-ee8-security-12.1.10.jar [22]
 - lib/org.eclipse.jetty.ee8-jetty-ee8-servlet-12.1.10.jar [22]
 - lib/org.eclipse.jetty.toolchain-jetty-servlet-api-4.0.9.jar [22]
-- lib/org.rocksdb-rocksdbjni-9.9.3.jar [23]
+- lib/org.rocksdb-rocksdbjni-10.10.1.1.jar [23]
 - lib/com.beust-jcommander-1.82.jar [24]
 - lib/org.apache.datasketches-datasketches-java-7.0.1.jar [25]
 - lib/org.apache.datasketches-datasketches-memory-4.1.0.jar [27]
@@ -364,7 +364,7 @@ Apache Software License, Version 2.
 [20] Source available at https://github.com/apache/commons-lang/tree/LANG_3_6
 [21] Source available at https://github.com/apache/zookeeper/tree/release-3.8.0
 [22] Source available at 
https://github.com/jetty/jetty.project/tree/jetty-12.1.10
-[23] Source available at https://github.com/facebook/rocksdb/tree/v9.9.3
+[23] Source available at https://github.com/facebook/rocksdb/tree/v10.10.1
 [24] Source available at https://github.com/cbeust/jcommander/tree/1.82
 [25] Source available at https://github.com/apache/datasketches-java/tree/7.0.1
 [26] Source available at https://github.com/yawkat/lz4-java/tree/v1.10.2
@@ -624,7 +624,7 @@ This private header is also used by Apple's open source
     * 
http://www.opensource.apple.com/source/configd/configd-453.19/dnsinfo/dnsinfo.h
 
 
------------------------------------------------------------------------------------
-lib/org.rocksdb-rocksdbjni-9.9.3.jar is derived from leveldb, which is under 
the following license.
+lib/org.rocksdb-rocksdbjni-10.10.1.1.jar is derived from leveldb, which is 
under the following license.
 
 Copyright (c) 2011 The LevelDB Authors. All rights reserved.
 
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt 
b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
index b6a0f5db24..0a6469d2f3 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
@@ -277,7 +277,7 @@ Apache Software License, Version 2.
 - lib/org.eclipse.jetty.ee8-jetty-ee8-security-12.1.10.jar [22]
 - lib/org.eclipse.jetty.ee8-jetty-ee8-servlet-12.1.10.jar [22]
 - lib/org.eclipse.jetty.toolchain-jetty-servlet-api-4.0.9.jar [22]
-- lib/org.rocksdb-rocksdbjni-9.9.3.jar [23]
+- lib/org.rocksdb-rocksdbjni-10.10.1.1.jar [23]
 - lib/com.beust-jcommander-1.82.jar [24]
 - lib/org.apache.datasketches-datasketches-java-7.0.1.jar [25]
 - lib/org.apache.datasketches-datasketches-memory-4.1.0.jar [27]
@@ -360,7 +360,7 @@ Apache Software License, Version 2.
 [20] Source available at https://github.com/apache/commons-lang/tree/LANG_3_6
 [21] Source available at https://github.com/apache/zookeeper/tree/release-3.8.0
 [22] Source available at 
https://github.com/jetty/jetty.project/tree/jetty-12.1.10
-[23] Source available at https://github.com/facebook/rocksdb/tree/v9.9.3
+[23] Source available at https://github.com/facebook/rocksdb/tree/v10.10.1
 [24] Source available at https://github.com/cbeust/jcommander/tree/1.82
 [25] Source available at https://github.com/apache/datasketches-java/tree/7.0.1
 [26] Source available at https://github.com/yawkat/lz4-java/tree/v1.10.2
@@ -620,7 +620,7 @@ This private header is also used by Apple's open source
     * 
http://www.opensource.apple.com/source/configd/configd-453.19/dnsinfo/dnsinfo.h
 
 
------------------------------------------------------------------------------------
-lib/org.rocksdb-rocksdbjni-9.9.3.jar is derived from leveldb, which is under 
the following license.
+lib/org.rocksdb-rocksdbjni-10.10.1.1.jar is derived from leveldb, which is 
under the following license.
 
 Copyright (c) 2011 The LevelDB Authors. All rights reserved.
 
diff --git 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/ldb/KeyValueStorageRocksDBTest.java
 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/ldb/KeyValueStorageRocksDBTest.java
index 97be7ae7c7..dca6ab5efc 100644
--- 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/ldb/KeyValueStorageRocksDBTest.java
+++ 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/ldb/KeyValueStorageRocksDBTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.bookkeeper.bookie.storage.ldb;
 
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
@@ -27,11 +28,18 @@ import static org.junit.Assert.assertTrue;
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 import java.nio.file.Files;
+import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.apache.bookkeeper.conf.ServerConfiguration;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
 import org.rocksdb.BlockBasedTableConfig;
 import org.rocksdb.ChecksumType;
 import org.rocksdb.ColumnFamilyDescriptor;
@@ -42,6 +50,53 @@ import org.rocksdb.Options;
 
 public class KeyValueStorageRocksDBTest {
 
+    @Rule
+    public final TemporaryFolder temporaryFolder = new TemporaryFolder();
+
+    @Test
+    public void testCompatibleSstFormatWithAndWithoutConfigurationFiles() 
throws Exception {
+        for (boolean useConfigurationFile : new boolean[]{false, true}) {
+            for (KeyValueStorageFactory.DbConfigType type : 
KeyValueStorageFactory.DbConfigType.values()) {
+                File directory = temporaryFolder.newFolder();
+                ServerConfiguration configuration = new ServerConfiguration();
+                // Explicit nonexistent paths ensure that the fallback does 
not load local operator settings.
+                String defaultConf = new File(directory, 
"default.conf").toString();
+                String ledgerConf = new File(directory, 
"ledger.conf").toString();
+                String entryConf = new File(directory, 
"entry.conf").toString();
+                if (useConfigurationFile) {
+                    defaultConf = 
getClass().getClassLoader().getResource("conf/default_rocksdb.conf").getPath();
+                    ledgerConf = 
getClass().getClassLoader().getResource("conf/ledger_metadata_rocksdb.conf").getPath();
+                    entryConf = 
getClass().getClassLoader().getResource("conf/entry_location_rocksdb.conf").getPath();
+                }
+                configuration.setDefaultRocksDBConf(defaultConf);
+                configuration.setLedgerMetadataRocksdbConf(ledgerConf);
+                configuration.setEntryLocationRocksdbConf(entryConf);
+                byte[] key = new byte[]{1};
+                byte[] value = new byte[]{2};
+                try (KeyValueStorageRocksDB storage = new 
KeyValueStorageRocksDB(
+                        directory.toString(), "db", type, configuration)) {
+                    storage.put(key, value);
+                    storage.sync();
+                    storage.compact();
+                    assertArrayEquals(value, storage.get(key));
+                    List<Path> ssts;
+                    try (Stream<Path> files = 
Files.list(directory.toPath().resolve("db"))) {
+                        ssts = files.filter(path -> 
path.toString().endsWith(".sst")).collect(Collectors.toList());
+                    }
+                    assertTrue("Compaction must produce an SST", 
!ssts.isEmpty());
+                    for (Path sst : ssts) {
+                        byte[] bytes = Files.readAllBytes(sst);
+                        // The footer stores a little-endian format version 
before the 8-byte magic number.
+                        // TableProperties.getFormatVersion() is not the 
block-based table footer version.
+                        int format = ByteBuffer.wrap(bytes, bytes.length - 12, 
4)
+                                .order(ByteOrder.LITTLE_ENDIAN).getInt();
+                        assertEquals("SST must be readable by RocksDB 7.9.2: " 
+ sst, 5, format);
+                    }
+                }
+            }
+        }
+    }
+
     @Test
     public void testRocksDBInitiateWithBookieConfiguration() throws Exception {
         ServerConfiguration configuration = new ServerConfiguration();
diff --git a/bookkeeper-server/src/test/resources/conf/default_rocksdb.conf 
b/bookkeeper-server/src/test/resources/conf/default_rocksdb.conf
index b7b0ae677d..90b3de85b6 100644
--- a/bookkeeper-server/src/test/resources/conf/default_rocksdb.conf
+++ b/bookkeeper-server/src/test/resources/conf/default_rocksdb.conf
@@ -17,6 +17,13 @@
 # */
 
 [DBOptions]
+ # Keep WAL records readable by RocksDB 7.9.2 (BookKeeper 4.17.0 / Pulsar 
4.0.x).
+ # Enabling track_and_verify_wals adds predecessor records (since 9.11) that
+ # 7.9.2 cannot replay. Enable only after the downgrade window has closed to
+ # detect missing/truncated WALs during recovery. This option is unknown to
+ # 7.9.2: use that release's configuration files when downgrading.
+ # https://github.com/facebook/rocksdb/blob/v10.10.1/include/rocksdb/options.h
+ track_and_verify_wals=false
  # set by jni: options.setCreateIfMissing
  create_if_missing=true
  # set by jni: options.setInfoLogLevel
@@ -30,7 +37,14 @@
  #no default setting in CFOptions
 
 [TableOptions/BlockBasedTable "default"]
- # set by jni: tableOptions.setFormatVersion
+ # Keep newly flushed/compacted SSTs readable by RocksDB 7.9.2.
+ # Format 5 supports modern Bloom filters (readable since RocksDB 6.6).
+ # After the downgrade window closes, format 6 (requires >= 8.6) improves
+ # detection of misplaced data and protects the footer with a checksum;
+ # format 7 (requires >= 10.4) additionally supports custom compression.
+ # Changing this setting only affects new SSTs; lowering it does not convert
+ # existing files. set by jni: tableOptions.setFormatVersion
+ # https://github.com/facebook/rocksdb/blob/v10.10.1/include/rocksdb/table.h
  format_version=5
  # set by jni: tableOptions.setChecksumType
- checksum=kxxHash
\ No newline at end of file
+ checksum=kxxHash
diff --git 
a/bookkeeper-server/src/test/resources/conf/entry_location_rocksdb.conf 
b/bookkeeper-server/src/test/resources/conf/entry_location_rocksdb.conf
index 976e53b47b..5653cb4a2d 100644
--- a/bookkeeper-server/src/test/resources/conf/entry_location_rocksdb.conf
+++ b/bookkeeper-server/src/test/resources/conf/entry_location_rocksdb.conf
@@ -17,6 +17,13 @@
 # */
 
 [DBOptions]
+ # Keep WAL records readable by RocksDB 7.9.2 (BookKeeper 4.17.0 / Pulsar 
4.0.x).
+ # Enabling track_and_verify_wals adds predecessor records (since 9.11) that
+ # 7.9.2 cannot replay. Enable only after the downgrade window has closed to
+ # detect missing/truncated WALs during recovery. This option is unknown to
+ # 7.9.2: use that release's configuration files when downgrading.
+ # https://github.com/facebook/rocksdb/blob/v10.10.1/include/rocksdb/options.h
+ track_and_verify_wals=false
  # set by jni: options.setCreateIfMissing
  create_if_missing=true
  # set by jni: options.setInfoLogLevel
@@ -57,13 +64,30 @@
 [TableOptions/BlockBasedTable "default"]
  # set by jni: tableOptions.setBlockSize
  block_size=65536
-# set by jni: tableOptions.setBlockCache, default value is: maxDirectMemory() 
/ ledgerDirsSize / 10;
+ # An explicit LRU cache preserves the current memory/performance policy.
+ # Consider a HyperClockCache to reduce contention on concurrent reads; cache
+ # choice does not change the on-disk format. See:
+ # https://github.com/facebook/rocksdb/wiki/Block-Cache
+ # set by jni: tableOptions.setBlockCache, default value is: maxDirectMemory() 
/ ledgerDirsSize / 10;
  block_cache=206150041
- # set by jni: tableOptions.setFormatVersion
+ # Keep newly flushed/compacted SSTs readable by RocksDB 7.9.2.
+ # Format 5 supports modern Bloom filters (readable since RocksDB 6.6).
+ # After the downgrade window closes, format 6 (requires >= 8.6) improves
+ # detection of misplaced data and protects the footer with a checksum;
+ # format 7 (requires >= 10.4) additionally supports custom compression.
+ # Changing this setting only affects new SSTs; lowering it does not convert
+ # existing files. set by jni: tableOptions.setFormatVersion
+ # https://github.com/facebook/rocksdb/blob/v10.10.1/include/rocksdb/table.h
  format_version=5
  # set by jni: tableOptions.setChecksumType
  checksum=kxxHash
+ # Ribbon filters can reduce filter memory at higher construction CPU cost
+ # and are readable by 7.9.2. Partitioned filters can reduce metadata cache
+ # pressure; decouple_partitioned_filters=true (the new default since 10.6)
+ # is also readable by 7.9.2 and need not be disabled for downgrade safety.
+ # https://github.com/facebook/rocksdb/wiki/RocksDB-Bloom-Filter
+ # https://github.com/facebook/rocksdb/wiki/Partitioned-Index-Filters
  # set by jni: tableOptions.setFilterPolicy, 
bloomfilter:[bits_per_key]:[use_block_based_builder]
  filter_policy=rocksdb.BloomFilter:10:false
  # set by jni: tableOptions.setCacheIndexAndFilterBlocks
- cache_index_and_filter_blocks=true
\ No newline at end of file
+ cache_index_and_filter_blocks=true
diff --git 
a/bookkeeper-server/src/test/resources/conf/ledger_metadata_rocksdb.conf 
b/bookkeeper-server/src/test/resources/conf/ledger_metadata_rocksdb.conf
index b7b0ae677d..90b3de85b6 100644
--- a/bookkeeper-server/src/test/resources/conf/ledger_metadata_rocksdb.conf
+++ b/bookkeeper-server/src/test/resources/conf/ledger_metadata_rocksdb.conf
@@ -17,6 +17,13 @@
 # */
 
 [DBOptions]
+ # Keep WAL records readable by RocksDB 7.9.2 (BookKeeper 4.17.0 / Pulsar 
4.0.x).
+ # Enabling track_and_verify_wals adds predecessor records (since 9.11) that
+ # 7.9.2 cannot replay. Enable only after the downgrade window has closed to
+ # detect missing/truncated WALs during recovery. This option is unknown to
+ # 7.9.2: use that release's configuration files when downgrading.
+ # https://github.com/facebook/rocksdb/blob/v10.10.1/include/rocksdb/options.h
+ track_and_verify_wals=false
  # set by jni: options.setCreateIfMissing
  create_if_missing=true
  # set by jni: options.setInfoLogLevel
@@ -30,7 +37,14 @@
  #no default setting in CFOptions
 
 [TableOptions/BlockBasedTable "default"]
- # set by jni: tableOptions.setFormatVersion
+ # Keep newly flushed/compacted SSTs readable by RocksDB 7.9.2.
+ # Format 5 supports modern Bloom filters (readable since RocksDB 6.6).
+ # After the downgrade window closes, format 6 (requires >= 8.6) improves
+ # detection of misplaced data and protects the footer with a checksum;
+ # format 7 (requires >= 10.4) additionally supports custom compression.
+ # Changing this setting only affects new SSTs; lowering it does not convert
+ # existing files. set by jni: tableOptions.setFormatVersion
+ # https://github.com/facebook/rocksdb/blob/v10.10.1/include/rocksdb/table.h
  format_version=5
  # set by jni: tableOptions.setChecksumType
- checksum=kxxHash
\ No newline at end of file
+ checksum=kxxHash
diff --git a/conf/default_rocksdb.conf.default 
b/conf/default_rocksdb.conf.default
index ccedbb79eb..472bff90c5 100644
--- a/conf/default_rocksdb.conf.default
+++ b/conf/default_rocksdb.conf.default
@@ -21,6 +21,13 @@
 # test case to ensure unit test coverage.
 
 [DBOptions]
+ # Keep WAL records readable by RocksDB 7.9.2 (BookKeeper 4.17.0 / Pulsar 
4.0.x).
+ # Enabling track_and_verify_wals adds predecessor records (since 9.11) that
+ # 7.9.2 cannot replay. Enable only after the downgrade window has closed to
+ # detect missing/truncated WALs during recovery. This option is unknown to
+ # 7.9.2: use that release's configuration files when downgrading.
+ # https://github.com/facebook/rocksdb/blob/v10.10.1/include/rocksdb/options.h
+ track_and_verify_wals=false
  # set by jni: options.setCreateIfMissing
  create_if_missing=true
  # set by jni: options.setInfoLogLevel
@@ -34,7 +41,14 @@
  #no default setting in CFOptions
 
 [TableOptions/BlockBasedTable "default"]
- # set by jni: tableOptions.setFormatVersion
+ # Keep newly flushed/compacted SSTs readable by RocksDB 7.9.2.
+ # Format 5 supports modern Bloom filters (readable since RocksDB 6.6).
+ # After the downgrade window closes, format 6 (requires >= 8.6) improves
+ # detection of misplaced data and protects the footer with a checksum;
+ # format 7 (requires >= 10.4) additionally supports custom compression.
+ # Changing this setting only affects new SSTs; lowering it does not convert
+ # existing files. set by jni: tableOptions.setFormatVersion
+ # https://github.com/facebook/rocksdb/blob/v10.10.1/include/rocksdb/table.h
  format_version=5
  # set by jni: tableOptions.setChecksumType
- checksum=kxxHash
\ No newline at end of file
+ checksum=kxxHash
diff --git a/conf/entry_location_rocksdb.conf.default 
b/conf/entry_location_rocksdb.conf.default
index e4dc394243..386c2b1d91 100644
--- a/conf/entry_location_rocksdb.conf.default
+++ b/conf/entry_location_rocksdb.conf.default
@@ -21,6 +21,13 @@
 # test case to ensure unit test coverage.
 
 [DBOptions]
+ # Keep WAL records readable by RocksDB 7.9.2 (BookKeeper 4.17.0 / Pulsar 
4.0.x).
+ # Enabling track_and_verify_wals adds predecessor records (since 9.11) that
+ # 7.9.2 cannot replay. Enable only after the downgrade window has closed to
+ # detect missing/truncated WALs during recovery. This option is unknown to
+ # 7.9.2: use that release's configuration files when downgrading.
+ # https://github.com/facebook/rocksdb/blob/v10.10.1/include/rocksdb/options.h
+ track_and_verify_wals=false
  # set by jni: options.setCreateIfMissing
  create_if_missing=true
  # set by jni: options.setInfoLogLevel
@@ -61,13 +68,30 @@
 [TableOptions/BlockBasedTable "default"]
  # set by jni: tableOptions.setBlockSize
  block_size=65536
+ # An explicit LRU cache preserves the current memory/performance policy.
+ # Consider a HyperClockCache to reduce contention on concurrent reads; cache
+ # choice does not change the on-disk format. See:
+ # https://github.com/facebook/rocksdb/wiki/Block-Cache
  # set by jni: tableOptions.setBlockCache, default value is: maxDirectMemory() 
/ ledgerDirsSize / 10;
  block_cache=206150041
- # set by jni: tableOptions.setFormatVersion
+ # Keep newly flushed/compacted SSTs readable by RocksDB 7.9.2.
+ # Format 5 supports modern Bloom filters (readable since RocksDB 6.6).
+ # After the downgrade window closes, format 6 (requires >= 8.6) improves
+ # detection of misplaced data and protects the footer with a checksum;
+ # format 7 (requires >= 10.4) additionally supports custom compression.
+ # Changing this setting only affects new SSTs; lowering it does not convert
+ # existing files. set by jni: tableOptions.setFormatVersion
+ # https://github.com/facebook/rocksdb/blob/v10.10.1/include/rocksdb/table.h
  format_version=5
  # set by jni: tableOptions.setChecksumType
  checksum=kxxHash
+ # Ribbon filters can reduce filter memory at higher construction CPU cost
+ # and are readable by 7.9.2. Partitioned filters can reduce metadata cache
+ # pressure; decouple_partitioned_filters=true (the new default since 10.6)
+ # is also readable by 7.9.2 and need not be disabled for downgrade safety.
+ # https://github.com/facebook/rocksdb/wiki/RocksDB-Bloom-Filter
+ # https://github.com/facebook/rocksdb/wiki/Partitioned-Index-Filters
  # set by jni: tableOptions.setFilterPolicy, 
bloomfilter:[bits_per_key]:[use_block_based_builder]
  filter_policy=rocksdb.BloomFilter:10:false
  # set by jni: tableOptions.setCacheIndexAndFilterBlocks
- cache_index_and_filter_blocks=true
\ No newline at end of file
+ cache_index_and_filter_blocks=true
diff --git a/conf/ledger_metadata_rocksdb.conf.default 
b/conf/ledger_metadata_rocksdb.conf.default
index ccedbb79eb..472bff90c5 100644
--- a/conf/ledger_metadata_rocksdb.conf.default
+++ b/conf/ledger_metadata_rocksdb.conf.default
@@ -21,6 +21,13 @@
 # test case to ensure unit test coverage.
 
 [DBOptions]
+ # Keep WAL records readable by RocksDB 7.9.2 (BookKeeper 4.17.0 / Pulsar 
4.0.x).
+ # Enabling track_and_verify_wals adds predecessor records (since 9.11) that
+ # 7.9.2 cannot replay. Enable only after the downgrade window has closed to
+ # detect missing/truncated WALs during recovery. This option is unknown to
+ # 7.9.2: use that release's configuration files when downgrading.
+ # https://github.com/facebook/rocksdb/blob/v10.10.1/include/rocksdb/options.h
+ track_and_verify_wals=false
  # set by jni: options.setCreateIfMissing
  create_if_missing=true
  # set by jni: options.setInfoLogLevel
@@ -34,7 +41,14 @@
  #no default setting in CFOptions
 
 [TableOptions/BlockBasedTable "default"]
- # set by jni: tableOptions.setFormatVersion
+ # Keep newly flushed/compacted SSTs readable by RocksDB 7.9.2.
+ # Format 5 supports modern Bloom filters (readable since RocksDB 6.6).
+ # After the downgrade window closes, format 6 (requires >= 8.6) improves
+ # detection of misplaced data and protects the footer with a checksum;
+ # format 7 (requires >= 10.4) additionally supports custom compression.
+ # Changing this setting only affects new SSTs; lowering it does not convert
+ # existing files. set by jni: tableOptions.setFormatVersion
+ # https://github.com/facebook/rocksdb/blob/v10.10.1/include/rocksdb/table.h
  format_version=5
  # set by jni: tableOptions.setChecksumType
- checksum=kxxHash
\ No newline at end of file
+ checksum=kxxHash
diff --git a/pom.xml b/pom.xml
index 9c01dde078..90642c8ecc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -188,7 +188,7 @@
     <protoc.version>${protobuf.version}</protoc.version>
     
<protoc-gen-grpc-java.version>${grpc.version}</protoc-gen-grpc-java.version>
     <reflections.version>0.9.11</reflections.version>
-    <rocksdb.version>9.9.3</rocksdb.version>
+    <rocksdb.version>10.10.1.1</rocksdb.version>
     <shrinkwrap.version>3.3.0</shrinkwrap.version>
     <slf4j.version>2.0.12</slf4j.version>
     <slog.version>0.9.9</slog.version>

Reply via email to