Skip to content

Releases: facebook/rocksdb

RocksDB v5.13.2

25 May 23:43
Compare
Choose a tag to compare

5.13.2 (5/25/2018)

Public API Change

  • Introduced CompressionOptions::kDefaultCompressionLevel, which is a generic way to tell RocksDB to use the compression library's default level. It is now the default value for CompressionOptions::level. Previously the level defaulted to -1, which gave poor compression ratios in ZSTD.

Bug Fixes

  • Fix segfault caused by object premature destruction (PR #3898)
  • Fix an issue with unnecessary capture in lambda expressions (PR #3904)

RocksDB 5.13.1

14 May 19:16
Compare
Choose a tag to compare

5.13.1 (4/30/2018)

New Features

  • Add Env::LowerThreadPoolCPUPriority(Priority) method, which lowers the CPU priority of background (esp. compaction) threads to minimize interference with foreground tasks.
  • Eliminate use of temporary directories in BackupEngine to improve reliability on distributed file systems.

5.13.0 (3/20/2018)

Public API Change

  • RocksDBOptionsParser::Parse()'s ignore_unknown_options argument will only be effective if the option file shows it is generated using a higher version of RocksDB than the current version.
  • Remove CompactionEventListener.

New Features

  • SstFileManager now can cancel compactions if they will result in max space errors. SstFileManager users can also use SetCompactionBufferSize to specify how much space must be leftover during a compaction for auxiliary file functions such as logging and flushing.
  • Avoid unnecessarily flushing in CompactRange() when the range specified by the user does not overlap unflushed memtables.
  • If ColumnFamilyOptions::max_subcompactions is set greater than one, we now parallelize large manual level-based compactions.
  • Add "rocksdb.live-sst-files-size" DB property to return total bytes of all SST files belong to the latest LSM tree.

Bug Fixes

  • Fix a leak in prepared_section_completed_ where the zeroed entries would not removed from the map.
  • Fix WAL corruption caused by race condition between user write thread and backup/checkpoint thread.
  • Fsync after writing global seq number to the ingestion file in ExternalSstFileIngestionJob.
  • Fix memory leak when pin_l0_filter_and_index_blocks_in_cache is used with partitioned filters

Java API Changes

  • Add BlockBasedTableConfig.setBlockCache to allow sharing a block cache across DB instances.

RocksDB 5.12.4

23 Apr 18:47
Compare
Choose a tag to compare

5.12.4 (4/23/2018)

Bug Fixes

  • Fix memory leak in two_level_iterator

5.12.3 (4/23/2018)

Bug Fixes

  • Fix memory leak when pin_l0_filter_and_index_blocks_in_cache is used with partitioned filters

5.12.2 (3/23/2018)

Bug Fixes

  • Fsync after writing global seq number to the ingestion file in ExternalSstFileIngestionJob.

Java API Changes

  • Add BlockBasedTableConfig.setBlockCache to allow sharing a block cache across DB instances.

5.12.1 (3/16/2018)

Public API Change

  • RocksDBOptionsParser::Parse()'s ignore_unknown_options argument will only be effective if the option file shows it is generated using a higher version of RocksDB than the current version.

New Features

  • Avoid unnecessarily flushing in CompactRange() when the range specified by the user does not overlap unflushed memtables.

Bug Fixes

  • Fix WAL corruption caused by race condition between user write thread and backup/checkpoint thread.

5.12.0 (2/14/2018)

Public API Change

  • Iterator::SeekForPrev is now a pure virtual method. This is to prevent user who implement the Iterator interface fail to implement SeekForPrev by mistake.
  • Add include_end option to make the range end exclusive when include_end == false in DeleteFilesInRange().
  • Add CompactRangeOptions::allow_write_stall, which makes CompactRange start working immediately, even if it causes user writes to stall. The default value is false, meaning we add delay to CompactRange calls until stalling can be avoided when possible. Note this delay is not present in previous RocksDB versions.
  • Creating checkpoint with empty directory now returns Status::InvalidArgument; previously, it returned Status::IOError.
  • Adds a BlockBasedTableOption to turn off index block compression.
  • Close() method now returns a status when closing a db.

New Features

  • Improve the performance of iterators doing long range scans by using readahead.
  • Add new function DeleteFilesInRanges() to delete files in multiple ranges at once for better performance.
  • FreeBSD build support for RocksDB and RocksJava.
  • Improved performance of long range scans with readahead.
  • Updated to and now continuously tested in Visual Studio 2017.

Bug Fixes

  • Fix DisableFileDeletions() followed by GetSortedWalFiles() to not return obsolete WAL files that PurgeObsoleteFiles() is going to delete.
  • Fix Handle error return from WriteBuffer() during WAL file close and DB close.
  • Fix advance reservation of arena block addresses.
  • Fix handling of empty string as checkpoint directory.

RocksDB 5.12.2

03 Apr 23:47
Compare
Choose a tag to compare

5.12.2 (3/23/2018)

Bug Fixes

  • Fsync after writing global seq number to the ingestion file in ExternalSstFileIngestionJob.

Java API Changes

  • Add BlockBasedTableConfig.setBlockCache to allow sharing a block cache across DB instances.

5.12.1 (3/16/2018)

Public API Change

  • RocksDBOptionsParser::Parse()'s ignore_unknown_options argument will only be effective if the option file shows it is generated using a higher version of RocksDB than the current version.

New Features

  • Avoid unnecessarily flushing in CompactRange() when the range specified by the user does not overlap unflushed memtables.

Bug Fixes

  • Fix WAL corruption caused by race condition between user write thread and backup/checkpoint thread.

5.12.0 (2/14/2018)

Public API Change

  • Iterator::SeekForPrev is now a pure virtual method. This is to prevent user who implement the Iterator interface fail to implement SeekForPrev by mistake.
  • Add include_end option to make the range end exclusive when include_end == false in DeleteFilesInRange().
  • Add CompactRangeOptions::allow_write_stall, which makes CompactRange start working immediately, even if it causes user writes to stall. The default value is false, meaning we add delay to CompactRange calls until stalling can be avoided when possible. Note this delay is not present in previous RocksDB versions.
  • Creating checkpoint with empty directory now returns Status::InvalidArgument; previously, it returned Status::IOError.
  • Adds a BlockBasedTableOption to turn off index block compression.
  • Close() method now returns a status when closing a db.

New Features

  • Improve the performance of iterators doing long range scans by using readahead.
  • Add new function DeleteFilesInRanges() to delete files in multiple ranges at once for better performance.
  • FreeBSD build support for RocksDB and RocksJava.
  • Improved performance of long range scans with readahead.
  • Updated to and now continuously tested in Visual Studio 2017.

Bug Fixes

  • Fix DisableFileDeletions() followed by GetSortedWalFiles() to not return obsolete WAL files that PurgeObsoleteFiles() is going to delete.
  • Fix Handle error return from WriteBuffer() during WAL file close and DB close.
  • Fix advance reservation of arena block addresses.
  • Fix handling of empty string as checkpoint directory.

RocksDB 5.11.3

12 Mar 18:56
Compare
Choose a tag to compare

5.11.2 (02/24/2018)

Bug Fixes

  • Fix bug in iterator readahead causing blocks to incorrectly be considered truncated (corrupted).

5.11.1 (02/22/2018)

New Features

  • Follow rsync-style naming convention for BackupEngine tempfiles. This enables some optimizations when run on GlusterFS.

5.11.0 (01/08/2018)

Public API Change

  • Add autoTune and getBytesPerSecond() to RocksJava RateLimiter

New Features

  • Add a new histogram stat called rocksdb.db.flush.micros for memtable flush.
  • Add "--use_txn" option to use transactional API in db_stress.
  • Disable onboard cache for compaction output in Windows platform.
  • Improve the performance of iterators doing long range scans by using readahead.

Bug Fixes

  • Fix a stack-use-after-scope bug in ForwardIterator.
  • Fix builds on platforms including Linux, Windows, and PowerPC.
  • Fix buffer overrun in backup engine for DBs with huge number of files.
  • Fix a mislabel bug for bottom-pri compaction threads.
  • Fix DB::Flush() keep waiting after flush finish under certain condition.

rocksdb-5.11.3

12 Mar 18:52
Compare
Choose a tag to compare

5.11.2 (02/24/2018)

Bug Fixes

  • Fix bug in iterator readahead causing blocks to incorrectly be considered truncated (corrupted).

5.11.1 (02/22/2018)

New Features

  • Follow rsync-style naming convention for BackupEngine tempfiles. This enables some optimizations when run on GlusterFS.

5.11.0 (01/08/2018)

Public API Change

  • Add autoTune and getBytesPerSecond() to RocksJava RateLimiter

New Features

  • Add a new histogram stat called rocksdb.db.flush.micros for memtable flush.
  • Add "--use_txn" option to use transactional API in db_stress.
  • Disable onboard cache for compaction output in Windows platform.
  • Improve the performance of iterators doing long range scans by using readahead.

Bug Fixes

  • Fix a stack-use-after-scope bug in ForwardIterator.
  • Fix builds on platforms including Linux, Windows, and PowerPC.
  • Fix buffer overrun in backup engine for DBs with huge number of files.
  • Fix a mislabel bug for bottom-pri compaction threads.
  • Fix DB::Flush() keep waiting after flush finish under certain condition.

RocksDB 5.11.2

12 Mar 17:30
Compare
Choose a tag to compare

5.11.2 (02/24/2018)

Bug Fixes

  • Fix bug in iterator readahead causing blocks to incorrectly be considered truncated (corrupted).

5.11.1 (02/22/2018)

New Features

  • Follow rsync-style naming convention for BackupEngine tempfiles. This enables some optimizations when run on GlusterFS.

5.11.0 (01/08/2018)

Public API Change

  • Add autoTune and getBytesPerSecond() to RocksJava RateLimiter

New Features

  • Add a new histogram stat called rocksdb.db.flush.micros for memtable flush.
  • Add "--use_txn" option to use transactional API in db_stress.
  • Disable onboard cache for compaction output in Windows platform.
  • Improve the performance of iterators doing long range scans by using readahead.

Bug Fixes

  • Fix a stack-use-after-scope bug in ForwardIterator.
  • Fix builds on platforms including Linux, Windows, and PowerPC.
  • Fix buffer overrun in backup engine for DBs with huge number of files.
  • Fix a mislabel bug for bottom-pri compaction threads.
  • Fix DB::Flush() keep waiting after flush finish under certain condition.

rocksdb-5.11.2

12 Mar 17:33
Compare
Choose a tag to compare

5.11.2 (02/24/2018)

Bug Fixes

  • Fix bug in iterator readahead causing blocks to incorrectly be considered truncated (corrupted).

5.11.1 (02/22/2018)

New Features

  • Follow rsync-style naming convention for BackupEngine tempfiles. This enables some optimizations when run on GlusterFS.

5.11.0 (01/08/2018)

Public API Change

  • Add autoTune and getBytesPerSecond() to RocksJava RateLimiter

New Features

  • Add a new histogram stat called rocksdb.db.flush.micros for memtable flush.
  • Add "--use_txn" option to use transactional API in db_stress.
  • Disable onboard cache for compaction output in Windows platform.
  • Improve the performance of iterators doing long range scans by using readahead.

Bug Fixes

  • Fix a stack-use-after-scope bug in ForwardIterator.
  • Fix builds on platforms including Linux, Windows, and PowerPC.
  • Fix buffer overrun in backup engine for DBs with huge number of files.
  • Fix a mislabel bug for bottom-pri compaction threads.
  • Fix DB::Flush() keep waiting after flush finish under certain condition.

RocksDB 5.10.4

01 Mar 19:17
Compare
Choose a tag to compare

5.10.4 (02/22/2018)

New Features

  • Follow rsync-style naming convention for BackupEngine tempfiles. This enables some optimizations when run on GlusterFS.

Bug fixes

  • Fix regression of Java build break on Windows.

5.10.3 (02/21/2018)

Bug fixes

  • Fix build break regression using gcc-7
  • Direct I/O writable file should do fsync in Close()

New Features

  • Add rocksdb.iterator.internal-key property

5.10.1 (01/18/2018)

Bug Fixes

  • Fix DB::Flush() keep waiting after flush finish under certain condition.

5.10.0 (12/11/2017)

Public API Change

  • When running make with environment variable USE_SSE set and PORTABLE unset, will use all machine features available locally. Previously this combination only compiled SSE-related features.

New Features

  • CRC32C is now using the 3-way pipelined SSE algorithm crc32c_3way on supported platforms to improve performance. The system will choose to use this algorithm on supported platforms automatically whenever possible. If PCLMULQDQ is not supported it will fall back to the old Fast_CRC32 algorithm.
  • Provide lifetime hints when writing files on Linux. This reduces hardware write-amp on storage devices supporting multiple streams.
  • Add a DB stat, NUMBER_ITER_SKIP, which returns how many internal keys were skipped during iterations (e.g., due to being tombstones or duplicate versions of a key).
  • Add PerfContext counters, key_lock_wait_count and key_lock_wait_time, which measure the number of times transactions wait on key locks and total amount of time waiting.

Bug Fixes

  • Fix IOError on WAL write doesn't propagate to write group follower
  • Make iterator invalid on merge error.
  • Fix performance issue in IngestExternalFile() affecting databases with large number of SST files.
  • Fix possible corruption to LSM structure when DeleteFilesInRange() deletes a subset of files spanned by a DeleteRange() marker.

rocksdb-5.10.4

01 Mar 19:17
Compare
Choose a tag to compare
Update HISTORY.md