RocksDB 5.10.2 已发布,该版本的更新包括 Public API 的修改、新增特性和修复 Bug。
RocksDB 是一个来自 Facebook 的可嵌入的支持持久化的 key-value 存储系统,也可作为 C/S 模式下的存储数据库。RocksDB 基于 LevelDB 构建。
主要变化:
API 变化
- 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.
新特性
- 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 修复
- 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. - Fix DB::Flush() keep waiting after flush finish under certain condition.
下载地址:
转自 http://www.oschina.net/news/93114/rocksdb-5-10-2-released