key-value 存儲系統,RocksDB 3.10 發布
RocksDB 是一個來自 非死book 的可嵌入式的支持持久化的 key-value 存儲系統,也可作為 C/S 模式下的存儲數據庫,但主要目的還是嵌入式。RocksDB 基于 LevelDB 構建。關于 RocksDB 的性能說明。
RocksDB 3.10 發布,此版本更新內容如下:新特性
-
GetThreadStatus() 現在可以報告詳細的線程狀態信息:
-
Thread Operation including flush and compaction.
-
The stage of the current thread operation.
-
The elapsed time in micros since the current thread operation started. More information can be found in include/rocksdb/thread_status.h. In addition, when running db_bench with --thread_status_per_interval, db_bench will also report thread status periodically.
-
修改 LRU 緩存算法
-
編譯優化
-
We now allow level-compaction to place files in different paths by specifying them in db_paths along with the target_size. Lower numbered levels will be placed earlier in the db_paths and higher numbered levels will be placed later in the db_paths vector.
-
潛在的性能提升
-
添加 BlockBasedTableOptions.format_version 選項
-
添加基于表格式的新塊
-
默認庫構建提供 MemEnv (env that stores data in memory)
-
添加 SliceTransform.SameResultWhenAppended()
-
Block based table now makes use of prefix bloom filter if it is a full fulter.
-
Block based table remembers whether a whole key or prefix based bloom filter is supported in SST files. Do a sanity check when reading the file with users' configuration.
-
Fixed a bug in ReadOnlyBackupEngine that deleted corrupted backups in some cases, even though the engine was ReadOnly
-
options.level_compaction_dynamic_level_bytes, a feature to allow RocksDB to pick dynamic base of bytes for levels. With this feature turned on, we will automatically adjust max bytes for each level. The goal of this feature is to have lower bound on size amplification. For more details, see comments in options.h.
-
Added an abstract base class WriteBatchBase for write batches
-
Fixed a bug where we start deleting files of a dropped column families even if there are still live references to it
Public API changes
-
Deprecated skip_log_error_on_recovery and table_cache_remove_scan_count_limit options.
-
Logger method logv with log level parameter is now virtual
RocksJava
-
Added compression per level API.
-
MemEnv is now available in RocksJava via RocksMemEnv class.
-
lz4 compression is now included in rocksjava static library when running
make rocksdbjavastatic
. -
Overflowing a size_t when setting rocksdb options now throws an IllegalArgumentException, which removes the necessity for a developer to catch these Exceptions explicitly.
此版本現已提供下載:https://github.com/非死book/rocksdb/archive/v3.10.zip。