此版本更新内容如下: 新特性 Added experimental support for optimistic transactions. Added a new way to report QPS from db_bench (check out --report_file and --report_interval_seconds) Added a cache for individual rows. See DBOptions::row_cache for more info. Several new features on EventListener (see include/rocksdb/listener.h): OnCompationCompleted() now returns per-compaciton job statistics, defined in include/rocksdb/compaction_job_stats.h. Added OnTableFileCreated() and OnTableFileDeleted(). Add compaction_options_universal.enable_trivial_move to true 公共 API 改进 EventListener::OnFlushCompleted() now passes FlushJobInfo instead of a list of parameters. DB::GetDbIdentity() is now a const function. If this function is overridden in your application, be sure to also make GetDbIdentity() const to avoid compile error. Move listeners from ColumnFamilyOptions to DBOptions. Add max_write_buffer_number_to_maintain option DB::CompactRange()'s parameter reduce_level is changed to change_level, to allow users to move levels to lower levels if allowed. It can be used to migrate a DB from options.level_compaction_dynamic_level_bytes=false to options.level_compaction_dynamic_level_bytes.true. Change default value for options.compaction_filter_factory and options.compaction_filter_factory_v2 to nullptr instead of DefaultCompactionFilterFactory and DefaultCompactionFilterFactoryV2. If CancelAllBackgroundWork is called without doing a flush after doing loads with WAL disabled, the changes which haven't been flushed before the call to CancelAllBackgroundWork will be lost. WBWIIterator::Entry() now returns WriteEntry instead of const WriteEntry& options.hard_rate_limit is deprecated. When options.soft_rate_limit or options.level0_slowdown_writes_trigger is triggered, the way to slow down writes is changed to: write rate to DB is limited to to options.delayed_write_rate. DB::GetApproximateSizes() adds a parameter to allow the estimation to include data in mem table, with default to be not to include. DB::CompactRange() now accept CompactRangeOptions instead of multiple paramters. CompactRange() will now skip bottommost level compaction for level based compaction if there is no compaction filter, bottommost_level_compaction is introduced in CompactRangeOptions to control when it's possbile to skip bottommost level compaction. Add Cache.GetPinnedUsage() to get the size of memory occupied by entries that are in use by the system. DB:Open() will fail if the compression specified in Options is not linked with the binary. We changed how we account for memory used in block cache. Add BackupEngineImpl.options_.max_background_operations to specify the maximum number of operations that may be performed in parallel. 下载:https://github.com/facebook/rocksdb/archive/v3.12.zip。 RocksDB 是一个来自 facebook 的可嵌入式的支持持久化的 key-value 存储系统,也可作为 C/S 模式下的存储数据库,但主要目的还是嵌入式。RocksDB 基于 LevelDB 构建。关于 RocksDB 的性能说明。 RocksDB 3.12 发布,key-value 存储系统下载地址