Public API Change

  • NewLRUCache() will determine number of shard bits automatically based on capacity, if the user doesn’t pass one. This also impacts the default block cache when the user doesn’t explict provide one.
  • Change the default of delayed slowdown value to 16MB/s and further increase the L0 stop condition to 36 files.

New Features

  • Added new overloaded function GetApproximateSizes that allows to specify if memtable stats should be computed only without computing SST files’ stats approximations.
  • Added new function GetApproximateMemTableStats that approximates both number of records and size of memtables.
  • (Experimental) Two-level indexing that partition the index and creates a 2nd level index on the partitions. The feature can be enabled by setting kTwoLevelIndexSearch as IndexType and configuring index_per_partition.

Bug Fixes

  • RangeSync() should work if ROCKSDB_FALLOCATE_PRESENT is not set
  • Fix wrong results in a data race case in Get()
  • Some fixes related to 2PC.
  • Fix several bugs in Direct I/O supports.
  • Fix a regression bug which can cause Seek() to miss some keys if the return key has been updated many times after the snapshot which is used by the iterator.