dependabot[bot] opened a new pull request, #7974: URL: https://github.com/apache/ignite-3/pull/7974
Bumps [org.rocksdb:rocksdbjni](https://github.com/facebook/rocksdb) from 10.8.3 to 10.10.1.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/rocksdb/releases">org.rocksdb:rocksdbjni's releases</a>.</em></p> <blockquote> <h2>v10.10.1</h2> <h2>10.10.1 (02/02/2026)</h2> <h3>Bug Fixes</h3> <ul> <li>Fixed a bug in best-efforts recovery that causes use-after-free crashes when accessing SST files that were cached during the recovery.</li> <li>Fix resumable compaction incorrectly allowing resumption from a truncated range deletion that is not well handled currently.</li> <li>Fixed a bug in <code>PosixRandomFileAccess</code> IO uring submission queue ownership & management. Fix eliminates the false positive 'Bad cqe data' IO errors in <code>PosixRandomFileAccess::MultiRead</code> when interleaved with <code>PosixRandomFileAccess::ReadAsync</code> on the same thread.</li> <li>Fix Windows VS 2022 build errors.</li> </ul> <h2>v10.9.1</h2> <h2>10.9.1 (2025-12-11)</h2> <h3>Bug Fixes</h3> <ul> <li>Fix resumable compaction incorrectly allowing resumption from a truncated range deletion that is not well handled currently.</li> </ul> <h2>10.9.0 (2025-11-21)</h2> <h3>New Features</h3> <ul> <li>Added an auto-tuning feature for DB manifest file size that also (by default) improves the safety of existing configurations in case <code>max_manifest_file_size</code> is repeatedly exceeded. The new recommendation is to set <code>max_manifest_file_size</code> to something small like 1MB and tune <code>max_manifest_space_amp_pct</code> as needed to balance write amp and space amp in the manifest. Refer to comments on those options in <code>DBOptions</code> for details. Both options are (now) mutable.</li> <li>Added a new API to support option migration for multiple column families</li> <li>Added new option target_file_size_is_upper_bound that makes most compaction output SST files come close to the target file size without exceeding it, rather than commonly exceeding it by some fraction (current behavior). For now the new behavior is off by default, but we expect to enable it by default in the future.</li> <li>Add a new option allow_trivial_move in CompactionOptions to allow CompactFiles to perform trivial move if possible. By default the flag of allow_trivial_move is false, so it preserve the original behavior.</li> </ul> <h3>Public API Changes</h3> <ul> <li>To reduce risk of ODR violations or similar, <code>ROCKSDB_USING_THREAD_STATUS</code> has been removed from public headers and replaced with static <code>const bool ThreadStatus::kEnabled</code>. Some other uses of conditional compilation have been removed from public API headers to reduce risk of ODR violations or other issues.</li> </ul> <h3>Behavior Changes</h3> <ul> <li>PosixWritableFile now repositions the seek pointer to the new end of file after a call to Truncate.</li> <li>Updated standalone range deletion L0 file compaction behavior to avoid compacting with any newer L0 files (which is expensive and not useful).</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Fix a bug where compaction with range deletion can persist kTypeMaxValid in MANIFEST as file metadata. kTypeMaxValid is not supposed to be persisted and can change as new value types are introduced. This can cause a forward compatibility issue where older versions of RocksDB don't recognize kTypeMaxValid from newer versions. A new placeholder value type kTypeTruncatedRangeDeletionSentinel is also introduced to replace kTypeMaxValid when reading existing SST files' metadata from MANIFEST. This allows us to strengthen some checks to avoid using kTypeMaxValid in the future.</li> <li>Fixed a bug where <code>DB::GetSortedWalFiles()</code> could hang when waiting for a purge operation that found nothing to do (potentially triggered by iterator release, flush, compaction, etc.).</li> <li>Fixed a bug in MultiScan where <code>max_sequential_skip_in_iterations</code> could cause the iterator to seek backward to already-unpinned blocks when the same user key spans multiple data blocks, leading to assertion failures or seg fault.</li> <li>Fixed a bug for <code>WAL_ttl_seconds > 0</code> use cases where the newest archived WAL files could be incorrectly deleted when the system clock moved backwards.</li> </ul> <h3>Performance Improvements</h3> <ul> <li>Added optimization that allowed for the asynchronous prefetching of all data outlined in a multiscan iterator. This optimization was applied to the level iterator, which prefetches all data through each of the block-based iterators.</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/facebook/rocksdb/blob/main/HISTORY.md">org.rocksdb:rocksdbjni's changelog</a>.</em></p> <blockquote> <h1>Rocksdb Change Log</h1> <blockquote> <p>NOTE: Entries for next release do not go here. Follow instructions in <code>unreleased_history/README.txt</code></p> </blockquote> <h2>11.1.0 (03/23/2026)</h2> <h3>New Features</h3> <ul> <li>Add a new option <code>open_files_async</code>. The existing behavior is on DB open, we open all sst files and do basic validations. For very large DBs on remote filesystems with many ssts, this may take very long. This option performs these validations instead in the background. Open errors found by this async background task are surfaced as a new background error kAsyncFileOpen.</li> <li>Added <code>BlockBasedTableOptions::kAuto</code> index block search type that automatically selects between binary and interpolation search on a per-index-block basis. During SST construction, each index block's key distribution uniformity is analyzed using the coefficient of variation of key gaps, and index blocks with uniform keys use interpolation search while others fall back to binary search. The uniformity threshold is configurable via <code>BlockBasedTableOptions::uniform_cv_threshold</code> (default: 0.2).</li> <li>Introduced enforce_write_buffer_manager_during_recovery option to allow WriteBufferManager to be enforced during WAL recovery. (Default: true)</li> <li>Add <code>memtable_batch_lookup_optimization</code> option to use batch lookup optimization for memtable MultiGet. For skip list memtables, after each key lookup, the search path is cached and reused for the next key, reducing per-key cost from O(log N) to O(log d) where d is the distance between consecutive keys. Benchmarks show ~7% improvement in memtable-resident MultiGet throughput.</li> <li>Added <code>BlockBasedTableOptions::PrepopulateBlockCache::kFlushAndCompaction</code> to prepopulate the block cache during both flush and compaction. Compaction-warmed blocks are inserted at <code>BOTTOM</code> priority (vs <code>LOW</code> for flush) so they are evicted first under cache pressure. Recommended only for use cases where most or all of the database is expected to reside in cache (e.g., tiered or remote storage where the working set fits in cache).</li> <li>Added new mutable DB option <code>verify_manifest_content_on_close</code> (default: false). When enabled, on DB close the MANIFEST file is read back and all records are validated (CRC checksums and logical content). If corruption is detected, a fresh MANIFEST is written from in-memory state.</li> </ul> <h3>Behavior Changes</h3> <ul> <li>num_reads_sampled now factors in re-seeks and next/prev() on file iterators for files in L1+. next/prev() is discounted by 64x compared to seek due to being a much cheaper call.</li> <li>Remote compaction workers now skip WAL recovery when opening the secondary DB instance, since only the LSM state from MANIFEST is needed for compaction. This reduces I/O and speeds up remote compaction startup.</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Fix a bug in round-robin compaction that missed selecting input files that are needed to guarantee data correctness and cause crashing in debug builds or silent data corruption in release builds for Get().</li> </ul> <h2>11.0.0 (02/23/2026)</h2> <h3>New Features</h3> <ul> <li>Added support for storing wide-column entity column values in blob files. When <code>min_blob_size</code> is configured, large column values in wide-column entities will be stored in blob files, reducing SST file size and improving read performance.</li> <li>Added <code>CompactionOptionsFIFO::max_data_files_size</code> to support FIFO compaction trimming based on combined SST and blob file sizes. Added <code>CompactionOptionsFIFO::use_kv_ratio_compaction</code> to enable a capacity-derived intra-L0 compaction strategy optimized for BlobDB workloads, producing uniform-sized compacted files for predictable FIFO trimming.</li> <li>Include interpolation search as an alternative to binary search, which typically performs better when keys are uniformly distributed. This is exposed as a new table option <code>index_block_search_type</code>. The default is <code>binary_search</code>.</li> </ul> <h3>Public API Changes</h3> <ul> <li>Added new virtual methods <code>AbortAllCompactions()</code> and <code>ResumeAllCompactions()</code> to the <code>DB</code> class. Added new <code>Status::SubCode::kCompactionAborted</code> to indicate a compaction was aborted. Added <code>Status::IsCompactionAborted()</code> helper method to check if a status represents an aborted compaction.</li> <li>Drop support for reading (and writing) SST files using <code>BlockBasedTableOptions.format_version</code> < 2, which hasn't been the default format for about 10 years. An upgrade path is still possible with full compaction using a RocksDB version >= 4.6.0 and < 11.0.0 and then using the newer version.</li> <li>Remove deprecated raw <code>DB*</code> variants of <code>DB::Open</code> and related functions. Some other minor public APIs were updated as a result</li> <li>Remove deprecated <code>DB::MaxMemCompactionLevel()</code></li> <li>Remove useless option <code>CompressedSecondaryCacheOptions::compress_format_version</code></li> <li>Remove deprecated DB option <code>skip_checking_sst_file_sizes_on_db_open</code>. The option was deprecated in 10.5.0 and has been a no-op since then. File size validation is now always performed in parallel during DB open.</li> <li>Remove deprecated <code>SliceTransform::InRange()</code> virtual method and the <code>in_range</code> callback parameter from <code>rocksdb_slicetransform_create()</code> in the C API. <code>InRange()</code> was never called by RocksDB and existed only for backward compatibility.</li> <li>Remove deprecated, unused APIs and options: <code>ReadOptions::managed</code> and <code>ColumnFamilyOptions::snap_refresh_nanos</code>. Corresponding C and Java APIs are also removed.</li> <li>Remove deprecated <code>SstFileWriter::Add()</code> method (use <code>Put()</code> instead) and the deprecated <code>skip_filters</code> parameter from <code>SstFileWriter</code> constructors (use <code>BlockBasedTableOptions::filter_policy</code> set to <code>nullptr</code> to skip filter generation instead).</li> </ul> <h3>Behavior Changes</h3> <ul> <li>Change the default value of <code>CompactionOptionsUniversal::reduce_file_locking</code> from <code>false</code> to <code>true</code> to improve write stall and reduce read regression</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Fix longstanding failures that can arise from reading and/or compacting old DB dirs with range deletions (likely from version < 5.19.0) in many newer versions.</li> <li>Fix a bug where WritePrepared/WriteUnprepared TransactionDB with two_write_queues=true could experience "sequence number going backwards" corruption during recovery from a background error, due to allocated-but-not-published sequence numbers not being synced before creating new WAL files.</li> </ul> <h3>Performance Improvements</h3> <ul> <li>Add a new table option <code>separate_key_value_in_data_block</code>. When set to true keys and values will be stored separately in the data block, which can result in higher cpu cache hit rate and better compression. Works best with data blocks with sufficient restart intervals and large values. Previous versions of RocksDB will reject files written using this option.</li> </ul> <h2>10.11.0 (01/23/2026)</h2> <h3>Public API Changes</h3> <ul> <li>New SetOptions API that allows setting options for multiple CFs, avoiding the need to reserialize OPTIONS file for each CF</li> <li>Remove remaining pieces of Lua integration</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/facebook/rocksdb/commits">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
