9.8.0 版本改动 (10/25/2024)
新特性
- BlockBasedTableOptions 中所有”简单”选项现在可以通过 DB::SetOptions() 修改 64bit以下 非指针特性
- BlobDB iiterator支持按需加载 大value,重大特性,需要配置 allow_unprepared_value和使用PrepareValue 接口
- 导入支持IngestExternalFileOptions::fill_cache,重大特性,之前我也讨论过,可以选择放到block cache
- allow_unprepared_value支持跨CF遍历,比如CoalescingIterator/AttributeGroupIterator
- 如果导入了一个简单的range deletion文件,会标记成compaction
行为变更
- 文件导入期间 重叠文件分批导入,可能会分配在更低层,而不是总在L0
- remote worker 加载 OPTIONS 文件现在会被保留,防止被宿主机删除 min_options_file_numbers_统计这个东西。实现原理类似保留sst文件原理 (这条之前介绍过)
- scan时调整readahead_size,当ReadOptions::auto_readahead_size=true且ReadOptions::prefix_same_as_start = true 时,不会prefetch不同前缀的key的数据
- 导入文件分配层逻辑和compaction逻辑归一,旧的逻辑总是放到L0,新逻辑可以尽可能放到底层
Bug 修复
- 修复SetOptions block_based_table_factory存在竞态问题
- 注意这个修复,iterator需要主动调用Iterator::Refresh()才能使用新的factory
- compressed secondary cache内存计数不准问题修复
- GetApproximateMemTableStats 改进,原来的接口存在5-25%概率返回不准的估计值,新改动估计值没问题,CPU消耗和以前相同
- 当 DB 选项 lowest_used_cache_tier 为 kVolatileTier 时跳过插入secondary cache,上期也介绍了
- 修复一个小compaction bug #13054 需要展开看一下
- 修复GetOptionsFromString导致的配置丢失,受影响的配置background_close_inactive_wals/write_dbid_to_manifest/write_identity_file/prefix_seek_opt_in_only
看到这里或许你有建议或者疑问或者指出错误,请留言评论! 多谢! 你的评论非常重要!也可以帮忙点赞收藏转发!多谢支持!
觉得写的不错那就给点吧, 在线乞讨