github facebook/rocksdb v10.5.1

25 days ago

10.5.1 (08/04/2025)

Bug Fixes

  • 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)

10.5.0 (07/21/2025)

Public API Changes

  • 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.
  • GetTtl() API is now available in TTL DB

Behavior Changes

  • PessimisticTransaction::GetWaitingTxns now returns waiting transaction information even if the current transaction has timed out. This allows the information to be surfaced to users for debugging purposes once it is known that the timeout has occured.
  • A new API GetFileSize is added to FSRandomAccessFile interface class. It uses fstat vs stat on the posix implementation which is more efficient. Caller could use it to get file size faster. This function might be required in the future for FileSystem implementation outside of the RocksDB code base.
  • RocksDB now triggers eligible compactions every 12 hours when periodic compaction is configured. This solves a limitation of the compaction trigger mechanism, which would only trigger compaction after specific events like flush, compaction, or SetOptions.

Bug Fixes

  • Fix a bug in BackupEngine that can crash backup due to a null FSWritableFile passed to WritableFileWriter.
  • Fix DB::NewMultiScan iterator to respect the scan upper bound specified in ScanOptions

Performance Improvements

  • Optimized MultiScan using BlockBasedTable to coalesce I/Os and prefetch all data blocks.

Don't miss a new rocksdb release

NewReleases is sending notifications on new releases.