Skip to content

RocksDB release 9.9.3

Latest
Compare
Choose a tag to compare
@jowlyzhang jowlyzhang released this 17 Dec 18:06
· 54 commits to main since this release

9.9.3 (12/03/2024)

Performance Improvements

  • In buffered IO mode, try to align writes on power of 2 if checksum handoff is not enabled for the file type being written.

9.9.2 (11/22/2024)

Bug Fixes

  • Honor ConfigOptions.ignore_unknown_options in ParseStruct()

9.9.1 (11/30/2024)

Behavior Changes

  • Updates the hidden hook RocksDbThreadYieldAndCheckAbort() to support MySQL to abort long-running query.

9.9.0 (11/18/2024)

New Features

  • Multi-Column-Family-Iterator (CoalescingIterator/AttributeGroupIterator) is no longer marked as experimental
  • Adds a new table property "rocksdb.newest.key.time" which records the unix timestamp of the newest key. Uses this table property for FIFO TTL and temperature change compaction.

Public API Changes

  • Added a new API Transaction::GetAttributeGroupIterator that can be used to create a multi-column-family attribute group iterator over the specified column families, including the data from both the transaction and the underlying database. This API is currently supported for optimistic and write-committed pessimistic transactions.
  • Added a new API Transaction::GetCoalescingIterator that can be used to create a multi-column-family coalescing iterator over the specified column families, including the data from both the transaction and the underlying database. This API is currently supported for optimistic and write-committed pessimistic transactions.

Behavior Changes

  • BaseDeltaIterator now honors the read option allow_unprepared_value.

Bug Fixes

  • BaseDeltaIterator now calls PrepareValue on the base iterator in case it has been created with the allow_unprepared_value read option set. Earlier, such base iterators could lead to incorrect values being exposed from BaseDeltaIterator.
  • Fix a leak of obsolete blob files left open until DB::Close(). This bug was introduced in version 9.4.0.
  • Fix missing cases of corruption retry during DB open and read API processing.
  • Fix a bug for transaction db with 2pc where an old WAL may be retained longer than needed (#13127).
  • Fix leaks of some open SST files (until DB::Close()) that are written but never become live due to various failures. (We now have a check for such leaks with no outstanding issues.)
  • Fix a bug for replaying WALs for WriteCommitted transaction DB when its user-defined timestamps setting is toggled on/off between DB sessions.

Performance Improvements

  • Fix regression in issue #12038 due to Options::compaction_readahead_size greater than max_sectors_kb (i.e, largest I/O size that the OS issues to a block device defined in linux)