10.6.2 (09/15/2025)
Bug Fixes
- Fix a race condition in FIFO size-based compaction where concurrent threads could select the same non-L0 file, causing assertion failures in debug builds or "Cannot delete table file from LSM tree" errors in release builds.
10.6.1 (09/05/2025)
New Features
- Add the fail_if_no_udi_on_open flag in BlockBasedTableOption to control whether a missing user defined index block in a SST is a hard error or not.
- Add new option
MultiScanArgs::max_prefetch_size
that limits the memory usage of per file pinning of prefetched blocks.
10.6.0 (08/22/2025)
New Features
- Introduce column family option
cf_allow_ingest_behind
. This option aims to replaceDBOptions::allow_ingest_behind
to enable ingest behind at the per-CF level.DBOptions::allow_ingest_behind
is deprecated. - Introduce
MultiScanArgs::io_coalesce_threshold
to allow a configurable IO coalescing threshold.
Public API Changes
IngestExternalFileOptions::allow_db_generated_files
now allows files ingestion of any DB generated SST file, instead of only the ones with all keys having sequence number 0.decouple_partitioned_filters = true
is now the default in BlockBasedTableOptions.- GetTtl() API is now available in TTL DB
- Minimum supported version of LZ4 library is now 1.7.0 (r129 from 2015)
- Some changes to experimental Compressor and CompressionManager APIs
- A new Filesystem::SyncFile function is added for syncing a file that was already written, such as on file ingestion. The default implementation matches previous RocksDB behavior: re-open the file for read-write, sync it, and close it. We recommend overriding for FileSystems that do not require syncing for crash recovery or do not handle (well) re-opening for writes.
Behavior Changes
- When
allow_ingest_behind
is enabled, compaction will no longer drop tombstones based on the absence of underlying data. Tombstones will be preserved to apply to ingested files.
Bug Fixes
- Files in dropped column family won't be returned to the caller upon successful, offline MANIFEST iteration in
GetFileChecksumsFromCurrentManifest
. - Fix a bug in MultiScan that causes it to fall back to a normal scan when dictionary compression is enabled.
- Fix a crash in iterator Prepare() when fill_cache=false
- Fix a bug in MultiScan where incorrect results can be returned when a Scan's range is across multiple files.
- Fixed a bug in remote compaction that may mistakenly delete live SST file(s) during the cleanup phase when no keys survive the compaction (all expired)
- Allow a user defined index to be configured from a string.
- Make the User Defined Index interface consistently use the user key format, fixing the previous mixed usage of internal and user key.
Performance Improvements
- Small improvement to CPU efficiency of compression using built-in algorithms, and a dramatic efficiency improvement for LZ4HC, based on reusing data structures between invocations.