Releases: facebook/rocksdb
Releases · facebook/rocksdb
RocksDB v5.13.2
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 forCompressionOptions::level
. Previously the level defaulted to -1, which gave poor compression ratios in ZSTD.
Bug Fixes
RocksDB 5.13.1
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
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 wheninclude_end == false
inDeleteFilesInRange()
. - Add
CompactRangeOptions::allow_write_stall
, which makesCompactRange
start working immediately, even if it causes user writes to stall. The default value is false, meaning we add delay toCompactRange
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 returnedStatus::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 byGetSortedWalFiles()
to not return obsolete WAL files thatPurgeObsoleteFiles()
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
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 wheninclude_end == false
inDeleteFilesInRange()
. - Add
CompactRangeOptions::allow_write_stall
, which makesCompactRange
start working immediately, even if it causes user writes to stall. The default value is false, meaning we add delay toCompactRange
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 returnedStatus::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 byGetSortedWalFiles()
to not return obsolete WAL files thatPurgeObsoleteFiles()
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
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
andgetBytesPerSecond()
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
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
andgetBytesPerSecond()
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
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
andgetBytesPerSecond()
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
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
andgetBytesPerSecond()
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
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 variableUSE_SSE
set andPORTABLE
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
andkey_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 aDeleteRange()
marker.
rocksdb-5.10.4
Update HISTORY.md