2024-05-03 9.2.1版本变动
新特性
- TieredAdmissionPolicy::kAdmPolicyAllowAll 从blockcache驱逐的cache会落到compressed secondary cache
- CacheDumper增加deadline/max_size_bytes 淘汰更快?
- WriteBatchWithIndex::GetEntityFromBatchAndDB 支持宽列点查/读自己写,接口类似GetFromBatchAndDB
- 两个实验特性CoalescingIterator/AttributeGroupIterator
- CoalescingIterator支持跨CF遍历,如果有相同key,前面的遍历会被后面的覆盖
- AttributeGroupIterator也支持跨CF遍历,同时收集每个CF的宽列wide column并生成 attribute group
- 新API SstFileReader::NewTableIterator支持把SST当raw table读
- WaitForCompact新配置WaitForCompactOptions::wait_for_purge 异步等待
- row cache和 DeleteRange不兼容
- 废弃CompactionOptions::compression 这个接口功能不完整,不安全,也可能不是必须的
- 使用OptionChangeMigration()支持从非FIFO向FIFO迁移时如果配置了Options::compaction_options_fifo.max_table_files_size,db会被看到配置的max_table_files_size大小,要注意
行为变化
- BlockBasedTableOptions::block_align和压缩 存在兼容性问题,同时开启CompactionOptions::compression/ColumnFamilyOptions::compression_per_level/ColumnFamilyOptions::bottommost_compression 会报错Status::InvalidArgument 注意
- CompactionOptions::compression默认kDisableCompressionOption,也就是说走ColumnFamilyOptions的配置
- BlockBasedTableOptions::optimize_filters_for_memory默认true,当partition_filters=false时,这个配置可能会增加blockcache的RSS 不过超出的内存使用时有限制的,这样内存使用碎片更小
- 如果SetDumpFilter没设置,cache dumper的实现是dump所有key
- CompactRange使用 CompactRangeOptions::change_level = true 同时CompactRangeOptions::target_level = 0会导致文件从非L0移动到L0,不符合逻辑,会返回Status::Aborted()
- 对于支持存储级别checksum/重建的文件系统 ,如果读发生block级别checksum失败/record级别checksum失败,会重试
- 对于所有的SST文件读和db开启时MANIFEST文件读都会重试
Bug修复
- BlockBasedTableOptions::block_align=true时 VerifyFileChecksums概率性假报错修复
- NewIterators() 提供consistent view
- 修复 DeleteRange()和ColumnFamilyOptions::memtable_insert_with_hint_prefix_extractor同时开启的bug。可能数据损坏
- 修复DisableManualCompactions 假死bug,compaction调度冲突导致compaction不能取消
- lockBasedTableOptions::block_align=true场景下VerifyFileChecksums()误报bug修复
- NewIterators一致性视图
- DeleteRange() 和ColumnFamilyOptions::memtable_insert_with_hint_prefix_extractor.不兼容,可能导致数据损坏/崩溃
- 修复compaction调度时调用DisableManualCompactions可能会卡死/取消不了
- 修复ColumnFamilyOptions::max_successive_merges > 0 CPU异常(判定merge有问题,除非设置了strict_max_successive_merges才会缓解)
- 修复ColumnFamilyOptions::enable_blob_files == true场景下MultiGet() / MultiGetEntity() 返回错误key、
- 修复创建文件时DataVerificationInfo::checksum使用错误padding
- PinnableWideColumns move语义修正
- 修复recycle_log_file_num使用场景,一个DB reopen且 recycle_log_file_num从0改成非0,会复用插入无效record
- 在 DB::Open途中,SstFileManager慢删除并没有限制住无用文件的删除
看到这里或许你有建议或者疑问或者指出错误,请留言评论! 多谢! 你的评论非常重要!也可以帮忙点赞收藏转发!多谢支持!
觉得写的不错那就给点吧, 在线乞讨