|
1 | 1 | # Rocksdb Change Log |
2 | 2 | > NOTE: Entries for next release do not go here. Follow instructions in `unreleased_history/README.txt` |
3 | 3 |
|
| 4 | +## 11.0.0 (02/20/2026) |
| 5 | +### New Features |
| 6 | +* Added `CompactionOptionsFIFO::max_data_files_size` to support FIFO compaction trimming based on combined SST and blob file sizes. Added `CompactionOptionsFIFO::use_kv_ratio_compaction` to enable a capacity-derived intra-L0 compaction strategy optimized for BlobDB workloads, producing uniform-sized compacted files for predictable FIFO trimming. |
| 7 | +* 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 `index_block_search_type`. The default is `binary_search`. |
| 8 | + |
| 9 | +### Public API Changes |
| 10 | +* Added new virtual methods `AbortAllCompactions()` and `ResumeAllCompactions()` to the `DB` class. Added new `Status::SubCode::kCompactionAborted` to indicate a compaction was aborted. Added `Status::IsCompactionAborted()` helper method to check if a status represents an aborted compaction. |
| 11 | +* Drop support for reading (and writing) SST files using `BlockBasedTableOptions.format_version` < 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. |
| 12 | +* Remove deprecated raw `DB*` variants of `DB::Open` and related functions. Some other minor public APIs were updated as a result |
| 13 | +* Remove deprecated `DB::MaxMemCompactionLevel()` |
| 14 | +* Remove useless option `CompressedSecondaryCacheOptions::compress_format_version` |
| 15 | +* Remove deprecated DB option `skip_checking_sst_file_sizes_on_db_open`. 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. |
| 16 | +* Remove deprecated `SliceTransform::InRange()` virtual method and the `in_range` callback parameter from `rocksdb_slicetransform_create()` in the C API. `InRange()` was never called by RocksDB and existed only for backward compatibility. |
| 17 | +* Remove deprecated, unused APIs and options: `ReadOptions::managed` and `ColumnFamilyOptions::snap_refresh_nanos`. Corresponding C and Java APIs are also removed. |
| 18 | +* Remove deprecated `SstFileWriter::Add()` method (use `Put()` instead) and the deprecated `skip_filters` parameter from `SstFileWriter` constructors (use `BlockBasedTableOptions::filter_policy` set to `nullptr` to skip filter generation instead). |
| 19 | + |
| 20 | +### Behavior Changes |
| 21 | +* Change the default value of `CompactionOptionsUniversal::reduce_file_locking` from `false` to `true` to improve write stall and reduce read regression |
| 22 | + |
| 23 | +### Bug Fixes |
| 24 | +* 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. |
| 25 | +* 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. |
| 26 | + |
4 | 27 | ## 10.11.0 (01/23/2026) |
5 | 28 | ### Public API Changes |
6 | 29 | * New SetOptions API that allows setting options for multiple CFs, avoiding the need to reserialize OPTIONS file for each CF |
|
0 commit comments