addbd279c2
Summary: 5.6.1 release blog post Closes https://github.com/facebook/rocksdb/pull/2638 Differential Revision: D5491168 Pulled By: yiwu-arbug fbshipit-source-id: 14e3a92a03684afa4bd19bfb3ffb053cc09f5d4a
1.9 KiB
1.9 KiB
title | layout | author | category |
---|---|---|---|
RocksDB 5.6.1 Released! | post | yiwu | blog |
Public API Change
- Scheduling flushes and compactions in the same thread pool is no longer supported by setting
max_background_flushes=0
. Instead, users can achieve this by configuring their high-pri thread pool to have zero threads. See https://github.com/facebook/rocksdb/wiki/Thread-Pool for more details. - Replace
Options::max_background_flushes
,Options::max_background_compactions
, andOptions::base_background_compactions
all withOptions::max_background_jobs
, which automatically decides how many threads to allocate towards flush/compaction. - options.delayed_write_rate by default take the value of options.rate_limiter rate.
- Replace global variable
IOStatsContext iostats_context
withIOStatsContext* get_iostats_context()
; replace global variablePerfContext perf_context
withPerfContext* get_perf_context()
.
New Features
- Change ticker/histogram statistics implementations to use core-local storage. This improves aggregation speed compared to our previous thread-local approach, particularly for applications with many threads. See http://rocksdb.org/blog/2017/05/14/core-local-stats.html for more details.
- Users can pass a cache object to write buffer manager, so that they can cap memory usage for memtable and block cache using one single limit.
- Flush will be triggered when 7/8 of the limit introduced by write_buffer_manager or db_write_buffer_size is triggered, so that the hard threshold is hard to hit. See https://github.com/facebook/rocksdb/wiki/Write-Buffer-Manager for more details.
- Introduce WriteOptions.low_pri. If it is true, low priority writes will be throttled if the compaction is behind. See https://github.com/facebook/rocksdb/wiki/Low-Priority-Write for more details.
DB::IngestExternalFile()
now supports ingesting files into a database containing range deletions.
Bug Fixes
- Shouldn't ignore return value of fsync() in flush.