RocksDB 7.0.0 已发布,Facebook 开发的 k-v 存储系统

栏目: 软件资讯 · 发布时间: 2年前

内容简介: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_LEVELNUM_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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

OKR:源于英特尔和谷歌的目标管理利器

OKR:源于英特尔和谷歌的目标管理利器

(美) 保罗R.尼文(Paul R. Niven)、本•拉莫尔特(Ben Lamorte) / 况阳 / 机械工业出版社 / 2017-8-1 / 59.00元

内在动机驱动,而非绩效考核驱动 尤其适用快速扩张和转型期组织 谷歌、英特尔、领英、推特、星佳等硅谷知名企业成功的法宝 OKR(目标与关键结果法)是一套严密的思考框架和持续的纪律要求,旨在确保员工紧密协作,把精力聚焦在能促进组织成长的、可衡量的贡献上。 如何更好地将OKR集成到企业现有的绩效评估体系中? 如何确保OKR由高管团队来领导,而不仅仅是HR、IT或财务等职能部......一起来看看 《OKR:源于英特尔和谷歌的目标管理利器》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换