内容简介:RocksDB 7.0.0 现已发布,RocksDB 是一个来自 Facebook 的可嵌入的支持持久化的 key-value 存储系统,也可作为 C/S 模式下的存储数据库,基于 LevelDB 构建。 RocksDB 7.0.0 Bug修复 修复了当启用 memtable Bloom...
RocksDB 7.0.0 现已发布,RocksDB 是一个来自 Facebook 的可嵌入的支持持久化的 key-value 存储系统,也可作为 C/S 模式下的存储数据库,基于 LevelDB 构建。
RocksDB 7.0.0
Bug修复
- 修复了当启用 memtable Bloom 过滤器 (memtable_prefix_bloom_size_ratio > 0) 时,批量 MultiGet 可能返回由 DeleteRange 删除的键的旧值的主要错误。
- 修复了更多 EventListener::OnTableFileCreated 调用的情况,状态为 OK,file_size==0,且没有保留 SST 文件。
- 修复了
DB::GetMergeOperands(). - 修复并发事务提交和 memtable 切换导致的 2PC 写提交事务的数据丢失问题(#9571)。
- 修复了
NUM_INDEX_AND_FILTER_BLOCKS_READ_PER_LEVEL、NUM_DATA_BLOCKS_READ_PER_LEVEL和NUM_SST_READ_PER_LEVEL统计信息,每个级别的每个MultiGet批次报告一次。
性能改进
- 减少了构建在线 LSM 树一致性检查所使用的文件位置哈希表的开销,这可以提高某些工作负载的性能(参见#9351)。
- 切换到使用排序
std::vector而不是std::map存储 blob 文件的元数据对象,可以提高某些工作负载的性能,尤其是当 blob 文件的数量很大时。 - DisableManualCompaction() 不必等待计划的手动压缩在线程池中执行以取消作业。
行为改变
- 禁止
DBOptions.use_direct_io_for_flush_and_compaction == true和DBOptions.writable_file_max_buffer_size == 0的组合,这种组合会导致WritableFileWriter::Append()永远循环,在直接 IO 中没有多大意义。 ReadOptions::total_order_seek不再影响DB::Get(),这种交互已经过时,因为 RocksDB 已经能够检测当前的前缀提取器是否与用于生成表文件的前缀提取器兼容。
新特性
- 引入了
BlockBasedTableOptions::detect_filter_construct_corruption在 Bloom Filter (format_version >= 5) 和 Ribbon Filter 构建期间检测损坏的选项。 - 改进了 SstDumpTool 以从表属性中读取比较器,并使用它来读取 SST 文件。
- 扩展了信息日志中的列族统计信息,还会记录 blob 文件中的垃圾总量和 blob 文件空间放大系数,还通过
rocksdb.blob-statsDB 属性公开了 blob 文件空间放大器。 - 在 ch 中引入
APIrocksdb_create_dir_if_missing,调用底层文件系统的CreateDirIfMissingAPI 来创建目录。 - 添加了最后一级和非最后一级读取统计信息:
LAST_LEVEL_READ_*、NON_LAST_LEVEL_READ_*。 - 实验性:在 FSRandomAccessFile 中添加对新 API ReadAsync 的支持,以异步读取数据,并在 FileSystem 中添加 Poll API 以检查请求的读取请求是否已完成。ReadAsync 采用回调函数。轮询 API 检查读取 IO 请求的完成情况,并应调用回调函数来指示读取请求的完成。
RocksDB 7.0.1
- 修复使用
DisableManualCompaction取消手动压缩时的竞争条件,DB close 也可以取消手动压缩线程。 - 修复了
DBImpl::ResumeImpl()和等待恢复完成的线程之间的 versions_ 数据竞争 - 修复了由刷新、传入写入和拍摄快照之间的竞争导致的错误,对使用这些竞争条件创建的快照查询可能会返回不正确的结果,例如重新显示已删除的数据。
7.0.0 版本还有海量公共 API 更改,详情查看更新公告:https://github.com/facebook/rocksdb/releases/tag/v7.0.1
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- iOS开发--沙盒存储
- iOS OpenGL开发(四) - 存储着色器分类
- 持久存储为云原生开发人员带来更多自由
- WordPress插件开发 -- 在插件使用数据库存储数据
- PHP微信开发之微信录音临时转永久存储
- Web开发者须知:9个流行于GitHub上的存储库
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Google's PageRank and Beyond
Amy N. Langville、Carl D. Meyer / Princeton University Press / 2006-7-23 / USD 57.50
Why doesn't your home page appear on the first page of search results, even when you query your own name? How do other web pages always appear at the top? What creates these powerful rankings? And how......一起来看看 《Google's PageRank and Beyond》 这本书的介绍吧!