github facebook/rocksdb v9.4.0
RocksDB 9.4.0

latest releases: v9.6.1, v9.5.2
2 months ago

9.4.0 (2024-06-23)

New Features

  • Added a CompactForTieringCollectorFactory to auto trigger compaction for tiering use case.
  • Optimistic transactions and pessimistic transactions with the WriteCommitted policy now support the GetEntityForUpdate API.
  • Added a new "count" command to the ldb repl shell. By default, it prints a count of keys in the database from start to end. The options --from= and/or --to= can be specified to limit the range.
  • Add rocksdb_writebatch_update_timestamps, rocksdb_writebatch_wi_update_timestamps in C API.
  • Add rocksdb_iter_refresh in C API.
  • Add rocksdb_writebatch_create_with_params, rocksdb_writebatch_wi_create_with_params to create WB and WBWI with all options in C API

Public API Changes

  • Deprecated names LogFile and VectorLogPtr in favor of new names WalFile and VectorWalPtr.
  • Introduce a new universal compaction option CompactionOptionsUniversal::max_read_amp which allows user to define the limit on the number of sorted runs separately from the trigger for compaction (level0_file_num_compaction_trigger) #12477.

Behavior Changes

  • Inactive WALs are immediately closed upon being fully sync-ed rather than in a background thread. This is to ensure LinkFile() is not called on files still open for write, which might not be supported by some FileSystem implementations. This should not be a performance issue, but an opt-out is available with with new DB option background_close_inactive_wals.

Bug Fixes

  • Fix a rare case in which a hard-linked WAL in a Checkpoint is not fully synced (so might lose data on power loss).
  • Fixed the output of the ldb dump_wal command for PutEntity records so it prints the key and correctly resets the hexadecimal formatting flag after printing the wide-column entity.
  • Fixed an issue where PutEntity records were handled incorrectly while rebuilding transactions during recovery.
  • Various read operations could ignore various ReadOptions that might be relevant. Fixed many such cases, which can result in behavior change but a better reflection of specified options.

Performance Improvements

  • Improved write throughput to memtable when there's a large number of concurrent writers and allow_concurrent_memtable_write=true(#12545)

Don't miss a new rocksdb release

NewReleases is sending notifications on new releases.