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

科技资讯 投稿 61300 0 评论

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

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

RocksDB 7.3.1 Bug 修复

  • 修复 WAL 跟踪中的错误。在此 PR ( #10087  之前,在数据库唯一的 WAL 文件上调用 SyncWAL ( 不会在 MANIFEST 中记录该事件,因此即使 WAL 文件丢失或损坏,也允许后续的 DB::Open。

  • 修复了具有 Avoid_flush_during_recovery = true 和 TransactionDB 的非 TransactionDB 的错误,如果发生崩溃,min_log_number_to_keep 可能不会在恢复时更改,并为某些 column families 保留具有高级 log_numbers 的新 MANIFEST,导致第二次恢复时出现 “column family inconsistency” 错误。作为一种解决方案,RocksDB 会在成功同步新的 WAL 后 syncing 新的 MANIFEST。如果未来的恢复从新的 MANIFEST 开始,则意味着新的 WAL 已成功同步。由于一开始的 sentinel empty write batch,WAL 的 kPointInTimeRecovery 被保证在此点之后进行。如果以后的恢复从旧的 MANIFEST 开始,则意味着写入新的 MANIFEST 失败。不会出现 “SST ahead of WAL” 的错误了。

  • 修复了 RocksDB DB::Open ( 可能在恢复成功之前创建并写入两个新的 MANIFEST 文件的错误。现在,只有在恢复成功后写到 MANIFEST 的数据才会被保留下来。

编程笔记 » Facebook 开发的 k-v 存储系统,RocksDB 7.3.1 发布

赞同 (116) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽