Rocksdb 7.0.0 ~ 7.10.2 重要版本特性

7.9.0 (2022-11-21)

  • 现在可以提供对宽列数据模型的基本支持。可以使用 API 存储宽列实体PutEntity,并使用GetEntity和迭代器的新columnsAPI 进行检索。为了兼容,经典 APIGet和MultiGet以及迭代器的valueAPI 返回宽列实体的匿名默认列的值;此外,GetEntity和迭代器的 APIcolumns以仅具有匿名默认列的实体的形式返回任何普通键值。Merge(和GetMergeOperands)目前也适用于默认列;实体的任何其他列均不受Merge操作影响。请注意,某些功能(如压缩过滤器、事务、用户定义的时间戳和 SST 文件编写器)尚不支持宽列实体;此外,目前没有MultiGet类似的 API 可以一次检索多个实体。我们计划逐步弥补上述差距,并实现新功能,如列级操作(例如,仅更新或查询实体的某些列)。

7.8.0 (2022-10-22)

  • 尝试将压缩输出文件边界与下一级边界对齐,这可以为默认级别压缩减少 10% 以上的压缩负载。此功能默认启用,若要禁用,请设置AdvancedColumnFamilyOptions.level_compaction_dynamic_file_size为 false。作为副作用,它可以创建大于 target_file_size(上限为 target_file_size 的 2 倍)或更小的文件的 SST。

7.6.0 (2022-08-19)

  • 改进通用分层存储压缩选择器,以避免因大小放大而触发额外的主要压缩。如果preclude_last_level_data_seconds启用,则仅在非 last_level 数据内计算大小放大,跳过最后一级并使用倒数第二级作为大小基础。
  • 构造WriteBufferManager的allow_stall == false不再会通过抖动隐式触发写入停顿,直到达到内存表计数限制。相反,列族可以在该 CF 刷新时继续累积写入,这意味着内存可能会增加。喜欢停顿写入的用户现在必须明确设置allow_stall == true。

7.5.0 (2022-07-15)

  • 在动态分级压缩中,由于 L0 过大,级别乘数不再调整。相反,压缩分数通过增加来自上级的传入字节来增加级别目标大小来调整。如果来自 L0 的更多数据到来,这将降低来自上级的压缩的优先级。这是为了修复由于级别目标的急剧变化而导致的一些不必要的完全停滞,同时在写入过载时不会浪费写入带宽进行压缩。
posted @ 2024-09-23 15:17  morningli  阅读(20)  评论(0编辑  收藏  举报