内容简介: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-stats
DB 属性公开了 blob 文件空间放大器。 - 在 ch 中引入
APIrocksdb_create_dir_if_missing
,调用底层文件系统的CreateDirIfMissing
API 来创建目录。 - 添加了最后一级和非最后一级读取统计信息:
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上的存储库
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据库系统概念
Abraham Silberschatz、Henry F. Korth、S. Sudarshan / 杨冬青、马秀莉、唐世渭 / 机械工业 / 2006-10-01 / 69.50元
本书是数据库系统方面的经典教材之一。国际上许多著名大学包括斯坦福大学、耶鲁大学、得克萨斯大学、康奈尔大学、伊利诺伊大学、印度理工学院等都采用本书作为教科书。我国也有许多所大学采用本书以前版本的中文版作为本科生和研究生的数据库课程的教材和主要教学参考书,收到了良好的效果。 本书调整和新增内容:调整了第4版的讲授顺序。首先介绍SQL及其高级特性,使学生容易接受数据库设计的概念。新增数据库设计的专......一起来看看 《数据库系统概念》 这本书的介绍吧!