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
- 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
- Overflowing a size_t when setting rocksdb options now throws an IllegalArgumentException, which removes the necessity for a developer to catch these Exceptions explicitly.