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


RocksDB 7.6.0 现已发布,RocksDB 是一个来自 Facebook 的可嵌入的支持持久化的 key-value 存储系统,也可作为 C/S 模式下的存储数据库,基于 LevelDB 构建。更新内容如下:

新的功能

  • 添加prepopulate_blob_cache到 ColumnFamilyOptions。
  • 支持使用 blob 缓存的二级缓存。在创建 Blob 缓存时,用户可以通过配置 LRUCacheOptions 中的secondary_cache来设置二级 Blob 缓存。
  • 当 blob 缓存和 block 缓存的 backing 缓存不同时,计费 blob 缓存的内存使用量。
  • 改进 subcompaction 范围划分,使其可能更均匀。subcompaction 的更均匀分布将提高某些工作负载的压缩吞吐量。
  • 添加 CompactionPri::kRoundRobin,这是一种 compaction picking 模式,它以循环方式处理所有带有 compact cursor 的文件。此功能从 7.5 开始可用。
  • 为 user_defined_timestamp 提供了对 subcompactions 的支持。
  • 添加了一个选项memtable_protection_bytes_per_key,开启了每个 memtable entry 的校验和保护。
  • 添加了特定于 blob 的缓存优先级 - bottom level。

Public API changes

  • 删除了对 RateLimiter 的 Customizable 支持并删除了它的 CreateFromString() 和 Type() 函数。
  • CompactRangeOptions::exclusive_manual_compaction现在默认为 false。这确保了 RocksDB 默认不会引入人为的并行限制。
  • Tiered Storage:更改bottommost_temperturelast_level_temperture。保留旧选项名称仅用于迁移,请使用新选项。行为已更改为仅对last_levelSST 文件 apply temperature 。
  • 添加了一个名为 optimize_multiget_for_io 的新实验性 ReadOption flag,该标志在设置时尝试通过为多级的键生成 coroutines 来减少 MultiGet 延迟。

Bug 修复

  • 修复从 7.4.0 开始的错误,即在一个 DB 上的任何 DropColumnFamily 之后,一些 fsync 操作可能被跳过,直到它被重新打开。这可能会导致断电时的数据丢失
  • 修复一个错误,当用户配置一个包围它的结构时,GenericRateLimiter 可能会使用 SetBytesPerSecond() 动态地恢复设置的带宽,例如,使用 GetOptionsFromString() 配置一个引用现有 RateLimiter 对象的选项
  • 修复GenericRateLimiter中的 race conditions
  • 修复FIFOCompactionPicker::PickTTLCompactiontotal_size 计算可能导致下溢的错误
  • 修复 hash linked list memtable 中的 race bug
  • 修复了一个 bug,即 best_efforts_recovery 可能无法通过 mmap 读取来打开数据库
  • 修复了压缩期间读取的 blob 会污染缓存的错误
  • 修复了与 secondary_cache 一起使用时 LRUCache 中的 data race
  • 修复了即使将fill_cache读取选项设置为 false ,迭代器读取的 blob 也会插入缓存的错误
  • 修复了CompressedSecondaryCache::SplitValueIntoChunks()MergeChunksIntoValueTestAllocateData()导致的 segfault
  • 修复了 BlobDB 中的一个 bug,即 inlined 和 blob 值的混合可能导致将不正确的值传递给 compaction filter(参阅#10391)
  • 修复了压力测试中由FaultInjectionSecondaryCache引起的内存泄露问题

性能改进

  • 与其在每次读取操作中构建FragmentedRangeTombstoneList,现在它被构建一次并存储在不可变的 memtable s中。这提高了从不可变的 memtables 中查询 range tombstones 的速度。
  • 将迭代器与集成的 BlobDB 实现结合使用时,现在会在迭代器的位置更改时立即释放 Blob cache handles。
  • 如果设置了 optimize_multiget_for_io ReadOption flag,MultiGet 现在可以通过从多级读取 SST 文件中的 data blocks 来并行执行更多 IO。

更多详情可查看:https://github.com/facebook/rocksdb/releases/tag/v7.6.0 

 


相關推薦

2022-06-11

RocksDB 7.3.1 现已发布,RocksDB 是一个来自 Facebook 的可嵌入的支持持久化的 key-value 存储系统,也可作为 C/S 模式下的存储数据库,基于 LevelDB 构建。更新内容如下: Bug 修复 修复 WAL 跟踪中的错误。在此 PR ( #10087 )

2023-03-21

中恢复的错误 …… 更多详情可查看:https://github.com/facebook/rocksdb/releases/tag/v8.0.0

2023-06-30

努力。 关键特性 Kvrocks 是⼀款分布式 KV 数据库,使⽤ RocksDB 作为底层存储引擎并兼容 Redis 协议,旨在解决Redis 内存成本⾼以及容量有限的问题,亦可作为海量 KV 数据存储的解决方案。具备以下关键特性: 兼容 Redis 协议,

2023-08-16

引时使用变量,具体 pr 参见:#5468、#5553 支持并行启动 RocksDB 实例以加快 Storage 服务的启动速度,具体 pr 参见:#5521 优化 RocksDB 迭代器执行 DeleteRange 操作后的前缀搜索性能,具体 pr 参见:#5525 优化 appendLog 发送逻辑以避免

2022-11-03

elog Disabled 对比 (详细配置请参考文档 [16] ) RocksDB Rescaling 改进及性能测试 对于使用 Flink 构建的云服务应用来说,Rescaling 是一种非常频繁的操作。这个版本使用了 RocksDB 的区间删除 [17] 来优化增量 RocksDB Stat

2022-08-17

及谷歌 strictest guidelines 的关注则均为 9%;随后则是针对 Facebook 的 medium level 安全说明,为 7%。 对于服务设置,用户最感兴趣的是谷歌 (22%)、WhatsApp (14%)、操作系统隐私规则和 Chrome (各 12%)。Instagram (11%) 排名第五,今年在 requests&

2022-07-05

少数几个特定的文件。 为了改变这一情况,近日来自 Facebook/Meta 的两名工程师向 Fedora 项目提交了一项名为 Linux Firmware Minimization 的提议(Linux 固件最小化),他们希望通过拆分 linux-firmware,然后根据实际使用的硬件来安装固

2024-07-13

Facebook 开源了其内部用于计算机视觉 (CV) 和 增强现实 (AR) 应用程序的框架 Ocean,用于执行各种任务,包括计算机视觉、几何、媒体处理、网络和渲染。 Ocean 主要使用 C++ 编写,且不依赖于特定平台: Ocean 是一个独立于平

2022-12-02

Dante Cloud 是一款企业级微服务架构和服务能力开发平台。首个全面拥抱 Spring Authorization Server 的版本,基于Spring Authorization Server 0.4.0、Spring Boot 2.7.6、Spring Cloud 2021.0.5、Spring Cloud Alibaba 2021.0.4.0、Nacos 2.1.2 等最新版本开发的多租户

2022-08-13

前,Dain Sundstrom、Martin Traverso、David Phillips 和 Eric Hwang 在 Facebook 共同创建了最初的 Presto,这是一种大规模并行处理 SQL 引擎,旨在解决 Facebook 大型数据集的快速分析和查询问题。 在此之前,Facebook 的数据分析师依靠的还是 Apa

2021-11-11

的博客系统的核心(WordPress), 足以运行最大的社交网络(facebook), 它的易用程度足以成为初学者的首选服务器端语言! 什么是 PHP 文件? PHP 文件的后缀是 ".php"PHP 文件能够包含文本、HTML、CSS 以及 PHP 代码PHP 代码在服务器

2022-02-22

Zstd 支持进一步扩展其压缩能力。 Zstd (Zstandard) 是由 Facebook 开源的快速无损压缩算法,主要应用于 zlib 级别的实时压缩场景,并且具有更好的压缩比。Zstd 还可以以压缩速度为代价提供更强的压缩比,速度与压缩权衡可通过小

2022-09-14

在 Meta (原 Facebook)、AMD、AWS、谷歌云、微软和 NVIDIA 等大厂的联合推动下,PyTorch 基金会成立了。PyTorch 基金会隶属于 Linux 基金会,其管理委员会由上述六个公司的代表组成。 PyTorch 是一个由  Meta (原 Facebook)开源的 Py

2022-12-21

中,Zstd 内核代码已针对 v1.5.2 上游进行了更新,以便与 Facebook/Meta 维护的上游代码保持一致。对于使用 Zstandard 压缩算法的内核用户,这意味着他们能够使用更快的 Zstd 压缩/解压缩。 这项计划很早之前就已被提出,维护者最