RocksDB 6.26.0 发布,k-v 存储系统

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

内容简介:RocksDB 6.26.0 现已发布。RocksDB 是一个来自 Facebook 的可嵌入的支持持久化的 key-value 存储系统,也可作为 C/S 模式下的存储数据库。RocksDB 基于 LevelDB 构建。 该版本具体更新内容如下: Bug Fixes 修复了...

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

该版本具体更新内容如下:

Bug Fixes

  • 修复了在为同一 blob 文件中的 blob 调用 MultiGet() 时定向 IO 模式下的错误。该错误是由于未按文件偏移量对 blob 读取请求进行 排序 造成的。
  • 修复 WAL 和 DB 在不同目录时不正确禁用 SST 速率限制删除的问题。如果它在不同的目录中,则仅应禁用 WAL 速率限制删除。
  • 修复DisableManualCompaction()以取消压缩,即使它们因CompactRangeOptions::exclusive_manual_compactions == true正在等待自动压缩耗尽。
  • 修复Env::ReopenWritableFile()FileSystem::ReopenWritableFile()的契约,以指定任何现有文件不得删除或截断。
  • 修复了在调用​​​​​​​IngestExternalFiles()时对 multiple column families 的错误。在IngestExternalFiles()返回后,该错误可能会导致提取的 file keys 变得可见延迟。此外,当它们不可见时对摄取的 file keys 的突变可能已经被删除(不一定立即)。
  • 修复了一个可能的 race condition,影响了WriteBufferManager的用户,这些用户在构建WriteBufferManager时使用了allow_stall == true。该 race condition 导致了未定义的行为(通常是进程崩溃)。
  • 修复了一个错误,即用户在调用WriteBufferManager::SetBufferSize()时,如果new_size == 0,动态地禁用内存限制,那么停滞的写入将永远保持停滞。
  • 使DB::close()线程安全。
  • 修复 atomic flush 中的一个错误,其中一个 bg 刷新线程将永远等待前一个 bg 刷新线程将其结果提交到 MANIFEST,但遇到映射到 soft error 的错误(DB not stopped)。

New Features

  • 使用“ldb list_live_files_metadata”时 print 有关 blob 文件的信息
  • 提供了对用户定义时间戳的 SingleDelete 支持。
  • 实验性新函数 DB::GetLiveFilesStorageInfo 基本上提供了其他函数的统一版本,如 GetLiveFiles、GetLiveFilesChecksumInfo 和 GetSortedWalFiles。检查点和备份可以显示小的行为变化和/或改进的性能,因为它们现在使用这个新的 API。
  • 添加远程压缩读/写字节统计:REMOTE_COMPACT_READ_BYTESREMOTE_COMPACT_WRITE_BYTES.
  • 引入一个实验性功能,从 block cache 中转储 blocks 并将它们插入二级缓存以减少缓存预热时间(例如,在迁移 DB 实例时使用)。更多信息在rocksdb/utilities/cache_dump_load.hclass CacheDumperCacheDumpedLoader类中。此功能在未来可能会发生变化,它仍然是实验性的。
  • 引入了一个新的 BlobDB 配置选项blob_garbage_collection_force_threshold,当这些 Blob 文件中的垃圾比率达到或超过指定的阈值时,该选项可用于触发针对 SST 文件的压缩,这些 SST 文件引用了最旧的 Blob 文件。这可以减少偏斜工作负载的空间放大,其中受影响的 SST 文件可能不会被提取以进行压缩。
  • 添加了对稳定且普遍唯一的 table file (SST) 唯一标识符的实验性支持,可通过新函数GetUniqueIdFromTableProperties获得。只有 RocksDB >= 6.24 的 SST 文件支持 unique IDs。
  • 添加了对“rocksdb.dbstats”( DB::Properties::kDBStats) 的GetMapProperty()支持。作为映射属性,它包括在 DB 的生命周期内累积的 DB 级内部统计信息,例如用户写入相关的统计信息和正常运行时间。

Public API change

  • 使 SystemClock 扩展了 Customizable 类并添加了 CreateFromString 方法。实现需要使用 ObjectRegistry 注册并实现 Name() 方法才能通过此方法创建。
  • 使 SliceTransform 扩展了 Customizable 类并添加了一个 CreateFromString 方法。实现需要使用 ObjectRegistry 注册并实现 Name() 方法才能通过此方法创建。Capped 和 Prefixed 转换类返回一个短名称(无长度);使用 GetId 作为完全限定名称。
  • 使 FileChecksumGenFactory、SstPartitionerFactory、TablePropertiesCollectorFactory 和 WalFilter 扩展了 Customizable 类并添加了 CreateFromString 方法。
  • 为了与新基类 FileStorageInfo 兼容,SstFileMetaData 的一些字段被弃用。
  • 添加file_temperatureIngestExternalFileArg,这样在 ingesting SST 文件时,就能够显示这批文件的 temperature。
  • 如果DB::Close()以非中止状态失败,再次调用DB::Close()将返回原始状态而不是 Status::OK。
  • 将 CacheTier 添加到 advanced_options.h 以描述使用的缓存层。在DBOptions(immutable)中添加一个lowest_used_cache_tier的选项并将其传递给BlockBasedTableReader。默认情况下,它是CacheTier::kNonVolatileBlockTier,这意味着,总是同时使用块缓存(kVolatileTier)和二级缓存(kNonVolatileBlockTier)。将其设置为CacheTier::kVolatileTier,DB 将不使用二级缓存。
  • 即使当 options.max_compaction_bytes 被命中时,压缩输出文件也只会在它与 grandparent files 的边界对齐时被剪切。options.max_compaction_bytes 可能会因更改而略有违反,但违反的程度不会超过一个目标 SST 文件大小,通常要小得多。

Performance Improvements

  • 提高了构建 block-based table (SST) files 的 CPU 效率。(#9039#9040

Java API Changes

  • 为新的集成 BlobDB 选项添加 Java API 绑定
  • keyMayExist() 支持 ByteBuffer。
  • 修复 multiget 抛出 Null Pointer Exception for num of keys > 70k ( #8039 )

更新说明:https://github.com/facebook/rocksdb/releases/tag/v6.26.0

 


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

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

重新定义公司

重新定义公司

[美]埃里克·施密特 / 靳婷婷、陈序、何晔 / 中信出版社 / 2015-8 / 49.00

谷歌高管手绘风漫画视频: http://v.youku.com/v_show/id_XMTMxMzQ3NjMyMA==.html?from=y1.7-1.2 Google掌门人第一本国内引进作品 首次公开谷歌内部的管理与运营方法 全面解密执掌谷歌10余年的内幕故事 谷歌 创始人拉里•佩奇作序推荐 今日的谷歌是全球最具标志性的企业,在各个领域都有创新突破,并向技术......一起来看看 《重新定义公司》 这本书的介绍吧!

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

在线压缩/解压 JS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码