Skip to content

Releases: facebook/rocksdb

RocksDB 3.5 Release

12 Sep 16:59
Compare
Choose a tag to compare

New Features

  • Add include/utilities/write_batch_with_index.h, providing a utility class to query data out of WriteBatch when building it.
  • new ReadOptions.total_order_seek to force total order seek when block-based table is built with hash index.

Public API changes

  • The Prefix Extractor used with V2 compaction filters is now passed user key to SliceTransform::Transform instead of unparsed RocksDB key.
  • Move BlockBasedTable related options to BlockBasedTableOptions from Options. Change corresponding JNI interface. Options affected include: no_block_cache, block_cache, block_cache_compressed, block_size, block_size_deviation, block_restart_interval, filter_policy, whole_key_filtering. filter_policy is changed to shared_ptr from a raw pointer.
  • Remove deprecated options: disable_seek_compaction and db_stats_log_interval
  • OptimizeForPointLookup() takes one parameter for block cache size. It now builds hash index, bloom filter, and block cache.

RocksDB 3.4 Release

28 Aug 15:32
Compare
Choose a tag to compare

New Features

  • Support Multiple DB paths in universal style compactions
  • Add feature of storing plain table index and bloom filter in SST file.
  • CompactRange() will never output compacted files to level 0. This used to be the case when all the compaction input files were at level 0.

Public API changes

  • DBOptions.db_paths now is a vector of a DBPath structure which indicates both of path and target size
  • NewPlainTableFactory instead of bunch of parameters now accepts PlainTableOptions, which is defined in include/rocksdb/table.h
  • Moved include/utilities/.h to include/rocksdb/utilities/.h
  • Statistics APIs now take uint32_t as type instead of Tickers. Also make two access functions getTickerCount and histogramData const
  • Add DB property rocksdb.estimate-num-keys, estimated number of live keys in DB.
  • Add DB::GetIntProperty(), which returns DB properties that are integer as uint64_t.

Other notes

  • Fixed a data race bug that might cause segment fault
  • Fixed a bug of manual compaction.

RocksDB 3.3

29 Jul 18:15
Compare
Choose a tag to compare

New Features

  • JSON API prototype.
  • Performance improvement on HashLinkList: We addressed performance outlier of HashLinkList caused by skewed bucket by switching data in the bucket from linked list to skip list. Add parameter threshold_use_skiplist in NewHashLinkListRepFactory().
  • More effective on storage space reclaim: RocksDB is now able to reclaim storage space more effectively during the compaction process. This is done by compensating the size of each deletion entry by the 2X average value size, which makes compaction to be triggerred by deletion entries more easily.
  • TimeOut API to write: Now WriteOptions have a variable called timeout_hint_us. With timeout_hint_us set to non-zero, any write associated with this timeout_hint_us may be aborted when it runs longer than the specified timeout_hint_us, and it is guaranteed that any write completes earlier than the specified time-out will not be aborted due to the time-out condition.
  • rate_limiter option: We added an option that controls total throughput of flush and compaction. The throughput is specified in bytes/sec. Flush always has precedence over compaction when available bandwidth is constrained.

Public API changes

  • Removed NewTotalOrderPlainTableFactory because it is not used and implemented semantically incorrect.

RocksDB 3.2 release

27 Jun 19:13
Compare
Choose a tag to compare

New Features in RocksDB 3.2:

  • PlainTable now supports a new key encoding: for keys of the same prefix, the prefix is only written once. It can be enabled through encoding_type paramter of NewPlainTableFactory()
  • Add AdaptiveTableFactory, which is used to convert from a DB of PlainTable to BlockBasedTabe, or vise versa. It can be created using NewAdaptiveTableFactory()

Public API changes

  • We removed seek compaction as a concept from RocksDB because:
  • Add two paramters to NewHashLinkListRepFactory() for logging on too many entries in a hash bucket when flushing.
  • Added new option BlockBasedTableOptions::hash_index_allow_collision. When enabled, prefix hash index for block-based table will not store prefix and allow hash collision, reducing memory consumption.

All the commits: 3.1.fb...3.2.fb

RocksDB 3.1

22 May 17:26
Compare
Choose a tag to compare

New features in RocksDB 3.1:

  • Materialize hash index
  • FIFO Compaction

Change LOG: https://github.com/facebook/rocksdb/blob/3.1.fb/HISTORY.md
All the commits: 3.0.fb...3.1.fb

RocksDB 3.0

19 May 21:24
Compare
Choose a tag to compare

New features in RocksDB 3.0:

RocksDB 2.8

21 May 22:32
Compare
Choose a tag to compare

RocksDB 2.8 release is mostly focused on improving performance for in-memory use cases