Skip to content

RocksDB Release v5.16.6

Compare
Choose a tag to compare
@gfosco gfosco released this 12 Nov 21:13
· 2 commits to 5.16.fb since this release

Rocksdb Change Log

5.16.6 (10/24/2018)

Bug Fixes

  • Fix the bug that WriteBatchWithIndex's SeekForPrev() doesn't see the entries with the same key.

5.16.5 (10/16/2018)

Bug Fixes

  • Fix slow flush/compaction when DB contains many snapshots. The problem became noticeable to us in DBs with 100,000+ snapshots, though it will affect others at different thresholds.
  • Properly set the stop key for a truncated manual CompactRange

5.16.4 (10/10/2018)

Bug Fixes

  • Fix corner case where a write group leader blocked due to write stall blocks other writers in queue with WriteOptions::no_slowdown set.

5.16.3 (10/1/2018)

Bug Fixes

  • Fix crash caused when CompactFiles run with CompactionOptions::compression == CompressionType::kDisableCompressionOption. Now that setting causes the compression type to be chosen according to the column family-wide compression options.

5.16.2 (9/21/2018)

Bug Fixes

  • Fix bug in partition filters with format_version=4.

5.16.1 (9/17/2018)

Bug Fixes

  • Remove trace_analyzer_tool from rocksdb_lib target in TARGETS file.
  • Fix RocksDB Java build and tests.
  • Remove sync point in Block destructor.

5.16.0 (8/21/2018)

Public API Change

  • OnTableFileCreated will now be called for empty files generated during compaction. In that case, TableFileCreationInfo::file_path will be "(nil)" and TableFileCreationInfo::file_size will be zero.

  • Add FlushOptions::allow_write_stall, which controls whether Flush calls start working immediately, even if it causes user writes to stall, or will wait until flush can be performed without causing write stall (similar to CompactRangeOptions::allow_write_stall). Note that the default value is false, meaning we add delay to Flush calls until stalling can be avoided when possible. This is behavior change compared to previous RocksDB versions, where Flush calls didn't check if they might cause stall or not.

  • The merge operands are passed to MergeOperator::ShouldMerge in the reversed order relative to how they were merged (passed to FullMerge or FullMergeV2) for performance reasons

  • GetAllKeyVersions() to take an extra argument of max_num_ikeys.

New Features

  • Changes the format of index blocks by delta encoding the index values, which are the block handles. This saves the encoding of BlockHandle::offset of the non-head index entries in each restart interval. The feature is backward compatible but not forward compatible. It is disabled by default unless format_version 4 or above is used.
  • Add a new tool: trace_analyzer. Trace_analyzer analyzes the trace file generated by using trace_replay API. It can convert the binary format trace file to a human readable txt file, output the statistics of the analyzed query types such as access statistics and size statistics, combining the dumped whole key space file to analyze, support query correlation analyzing, and etc. Current supported query types are: Get, Put, Delete, SingleDelete, DeleteRange, Merge, Iterator (Seek, SeekForPrev only).
  • Add hash index support to data blocks, which helps reducing the cpu utilization of point-lookup operations. This feature is backward compatible with the data block created without the hash index. It is disabled by default unless BlockBasedTableOptions::data_block_index_type is set to data_block_index_type = kDataBlockBinaryAndHash.

Bug Fixes

  • Fix a bug in misreporting the estimated partition index size in properties block.
  • Avoid creating empty SSTs and subsequently deleting them in certain cases during compaction.