|
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 | +## 10.6.0 (08/22/2025) |
| 5 | +### New Features |
| 6 | +* Introduce column family option `cf_allow_ingest_behind`. This option aims to replace `DBOptions::allow_ingest_behind` to enable ingest behind at the per-CF level. `DBOptions::allow_ingest_behind` is deprecated. |
| 7 | +* Introduce `MultiScanArgs::io_coalesce_threshold` to allow a configurable IO coalescing threshold. |
| 8 | + |
| 9 | +### Public API Changes |
| 10 | +* `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. |
| 11 | +* `decouple_partitioned_filters = true` is now the default in BlockBasedTableOptions. |
| 12 | +* GetTtl() API is now available in TTL DB |
| 13 | +* Minimum supported version of LZ4 library is now 1.7.0 (r129 from 2015) |
| 14 | +* Some changes to experimental Compressor and CompressionManager APIs |
| 15 | +* 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. |
| 16 | + |
| 17 | +### Behavior Changes |
| 18 | +* 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. |
| 19 | + |
| 20 | +### Bug Fixes |
| 21 | +* Files in dropped column family won't be returned to the caller upon successful, offline MANIFEST iteration in `GetFileChecksumsFromCurrentManifest`. |
| 22 | +* Fix a bug in MultiScan that causes it to fall back to a normal scan when dictionary compression is enabled. |
| 23 | +* Fix a crash in iterator Prepare() when fill_cache=false |
| 24 | +* Fix a bug in MultiScan where incorrect results can be returned when a Scan's range is across multiple files. |
| 25 | +* 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) |
| 26 | +* Allow a user defined index to be configured from a string. |
| 27 | +* Make the User Defined Index interface consistently use the user key format, fixing the previous mixed usage of internal and user key. |
| 28 | + |
| 29 | +### Performance Improvements |
| 30 | +* 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. |
| 31 | + |
4 | 32 | ## 10.5.0 (07/18/2025) |
5 | 33 | ### Public API Changes |
6 | 34 | * DB option skip_checking_sst_file_sizes_on_db_open is deprecated, in favor of validating file size in parallel in a thread pool, when db is opened. When DB is opened, with paranoid check enabled, a file with the wrong size would fail the DB open. With paranoid check disabled, the DB open would succeed, the column family with the corrupted file would not be read or write, while the other healthy column families could be read and write normally. When max_open_files option is not set to -1, only a subset of the files will be opened and checked. The rest of the files will be opened and checked when they are accessed. |
|
0 commit comments