|
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.0.0 (02/21/2025) |
| 5 | +### New Features |
| 6 | +* Introduced new `auto_refresh_iterator_with_snapshot` opt-in knob that (when enabled) will periodically release obsolete memory and storage resources for as long as the iterator is making progress and its supplied `read_options.snapshot` was initialized with non-nullptr value. |
| 7 | +* Added the ability to plug-in a custom table reader implementation. See include/rocksdb/external_table_reader.h for more details. |
| 8 | +* Experimental feature: RocksDB now supports FAISS inverted file based indices via the secondary indexing framework. Applications can use FAISS secondary indices to automatically quantize embeddings and perform K-nearest-neighbors similarity searches. See `FaissIVFIndex` and `SecondaryIndex` for more details. Note: the FAISS integration currently requires using the BUCK build. |
| 9 | +* Add new DB property `num_running_compaction_sorted_runs` that tracks the number of sorted runs being processed by currently running compactions |
| 10 | +* Experimental feature: added support for simple secondary indices that index the specified column as-is. See `SimpleSecondaryIndex` and `SecondaryIndex` for more details. |
| 11 | +* Added new `TransactionDBOptions::txn_commit_bypass_memtable_threshold`, which enables optimized transaction commit (see `TransactionOptions::commit_bypass_memtable`) when the transaction size exceeds a configured threshold. |
| 12 | + |
| 13 | +### Public API Changes |
| 14 | +* Updated the query API of the experimental secondary indexing feature by removing the earlier `SecondaryIndex::NewIterator` virtual and adding a `SecondaryIndexIterator` class that can be utilized by applications to find the primary keys for a given search target. |
| 15 | +* Added back the ability to leverage the primary key when building secondary index entries. This involved changes to the signatures of `SecondaryIndex::GetSecondary{KeyPrefix,Value}` as well as the addition of a new method `SecondaryIndex::FinalizeSecondaryKeyPrefix`. See the API comments for more details. |
| 16 | +* Minimum supported version of ZSTD is now 1.4.0, for code simplification. Obsolete `CompressionType` `kZSTDNotFinalCompression` is also removed. |
| 17 | + |
| 18 | +### Behavior Changes |
| 19 | +* `VerifyBackup` in `verify_with_checksum`=`true` mode will now evaluate checksums in parallel. As a result, unlike in case of original implementation, the API won't bail out on a very first corruption / mismatch and instead will iterate over all the backup files logging success / _degree_of_failure_ for each. |
| 20 | +* Reversed the order of updates to the same key in WriteBatchWithIndex. This means if there are multiple updates to the same key, the most recent update is ordered first. This affects the output of WBWIIterator. When WriteBatchWithIndex is created with `overwrite_key=true`, this affects the output only if Merge is used (#13387). |
| 21 | +* Added support for Merge operations in transactions using option `TransactionOptions::commit_bypass_memtable`. |
| 22 | + |
| 23 | +### Bug Fixes |
| 24 | +* Fixed GetMergeOperands() API in ReadOnlyDB and SecondaryDB |
| 25 | +* Fix a bug in `GetMergeOperands()` that can return incorrect status (MergeInProgress) and incorrect number of merge operands. This can happen when `GetMergeOperandsOptions::continue_cb` is set, both active and immutable memtables have merge operands and the callback stops the look up at the immutable memtable. |
| 26 | + |
4 | 27 | ## 9.11.0 (01/17/2025)
|
5 | 28 | ### New Features
|
6 | 29 | * Introduce CancelAwaitingJobs() in CompactionService interface which will allow users to implement cancellation of running remote compactions from the primary instance
|
|
0 commit comments