导读 RocksDB 是一个高性能键值数据的嵌入式数据库,它是 Google LevelDB 的一个分叉,经过优化,可以利用更多 CPU 核心,并有效地利用快速存储。它是用 C++ 编写的,并为 C++、C 和 Java 提供官方语言绑定,同时还有许多第三方语言绑定。

行为改变
  • ReadOptions::verify_checksums=false 禁用了对非 CacheEntryRole::kDataBlock 块的更多读取的校验和验证。
  • 在启用 async_io 的扫描情况下,如果 posix 不支持 IOUring,Status::NotSupported 错误将返回给用户。
  • 功能删除
  • 删除 RocksDB Lite。
  • 删除 block_cache_compressed 功能,与之相关的统计数据也被移除
  • 删除已弃用的 Env::LoadEnv(),使用 Env::CreateFromString() 代替。
  • 删除已弃用的 FileSystem::Load()。使用 FileSystem::CreateFromString() 代替。
  • 删除了这些实用函数的废弃版本和相应的 Java 绑定: LoadOptionsFromFile、 LoadLatestOptions、 CheckOptionsCompatibility。
  • 从可定制的帮助方法中移除 LoadObject 方法的 FactoryFunc
  • 构建变化
  • 现在 make build 默认会构建一个共享库而不是静态库,使用 LIB_MODE=static 来重写
  • 新功能
  • 通过 FilterV3 的 API,现在支持宽列实体的压缩过滤器
  • 为 CompressedSecondaryCacheOptions 添加了 do_not_compress_roles,以禁止对某些类型的块进行压缩。过滤器块现在默认不被 CompressedSecondaryCache 压缩。
  • 增加了一个新的 MultiGetEntity API,可以进行批量的宽列点查询
  • 修复
  • 修正了 ColumnFamilyData::flush_reason 上由并发刷新引起的数据竞赛。
  • 修正了当用户定义的时间戳与 BlobDB 结合启用时,Get 和 MultiGet 的问题。
  • 修正了 LockWAL() 的一些非典型行为
  • 修正了一个功能交互错误,即对于 Blobs, GetEntity 会显示 Blobs 引用而不是 Blobs 值。
  • 当 ReadOptions::async_io 标志为真且未启用 IOuring 时,向 MultiGet 调用者返回正确的错误( Status::NotSupported() )。以前,当实际故障是缺乏异步 IO 支持时,会返回 Status::Corruption()。
  • 修正了 DB 打开 / 从压缩的 WAL 中恢复的错误
  • ……
  • 原文来自:https://www.oschina.net/news/233403/rocksdb-8-0-0-released

    本文地址:https://www.linuxprobe.com/rfb.html编辑:王婷,审核员:清蒸github

    Linux命令大全:https://www.linuxcool.com/

    Linux系统大全:https://www.linuxdown.com/

    红帽认证RHCE考试心得:https://www.rhce.net/