Skip to content

RocksDB 9.6.2

Compare
Choose a tag to compare
@pdillinger pdillinger released this 01 Nov 16:06
· 165 commits to main since this release

9.6.2 (10/31/2024)

Bug Fixes

  • Fix a leak of obsolete blob files left open until DB::Close(). This bug was introduced in version 9.4.0.

9.6.1 (08/24/2024)

Bug Fixes

  • Fix correctness of MultiGet across column families with user timestamp.

9.6.0 (08/19/2024)

New Features

  • *Best efforts recovery supports recovering to incomplete Version with a clean seqno cut that presents a valid point in time view from the user's perspective, if versioning history doesn't include atomic flush.
  • New option BlockBasedTableOptions::decouple_partitioned_filters should improve efficiency in serving read queries because filter and index partitions can consistently target the configured metadata_block_size. This option is currently opt-in.
  • Introduce a new mutable CF option paranoid_memory_checks. It enables additional validation on data integrity during reads/scanning. Currently, skip list based memtable will validate key ordering during look up and scans.

Public API Changes

  • Add ticker stats to count file read retries due to checksum mismatch
  • Adds optional installation callback function for remote compaction

Behavior Changes

  • There may be less intra-L0 compaction triggered by total L0 size being too small. We now use compensated file size (tombstones are assigned some value size) when calculating L0 size and reduce the threshold for L0 size limit. This is to avoid accumulating too much data/tombstones in L0.

Bug Fixes

  • *Make DestroyDB supports slow deletion when it's configured in SstFileManager. The slow deletion is subject to the configured rate_bytes_per_sec, but not subject to the max_trash_db_ratio.
  • Fixed a bug where we set unprep_seqs_ even when WriteImpl() fails. This was caught by stress test write fault injection in WriteImpl(). This may have incorrectly caused iteration creation failure for unvalidated writes or returned wrong result for WriteUnpreparedTxn::GetUnpreparedSequenceNumbers().
  • Fixed a bug where successful write right after error recovery for last failed write finishes causes duplicate WAL entries
  • Fixed a data race involving the background error status in unordered_write mode.
  • *Fix a bug where file snapshot functions like backup, checkpoint may attempt to copy a non-existing manifest
    file. #12882
  • Fix a bug where per kv checksum corruption may be ignored in MultiGet().
  • Fix a race condition in pessimistic transactions that could allow multiple transactions with the same name to
    be registered simultaneously, resulting in a crash or other unpredictable behavior.