GitHub user git-hulk added a comment to the discussion: CompactOnExpiredCollector的工作不符合预期
> 经过compact后,只是回收了 h1, 这一个key,并不会回收subkey cf中对应的key,没看出来收益是什么? > 功能上,和trigger_threshold不是很相符。 对于 SubKey Column Family 的回收是在 Compaction Checker 里面实现,里面的逻辑会依赖 Collector 生成的数据。NeedCompact 仅针对 Metadata Column Family 这个逻辑没有问题 > MetadataFilter::Filter 过滤掉了过期的meta cf 导致 > #1的逻辑不会生效;调用MetadataFilter::Filter,发现meta key过期了,那么过期的meta key不会调用 > CompactOnExpiredCollector::AddUserKey。 Collector 只会在 Table Builder 阶段调用,Metadata Key 过期不需要去更新 Collector 的数据。也就是这些过期数据一定程度上必然不是实时的,所以依赖于 Compaction Checker 在时间上强制去做 Compaction 来更新这些数据。 我可能没有完全理解上面想表达的优化点是什么?如果有更好的策略也欢迎提出来。 GitHub link: https://github.com/apache/kvrocks/discussions/2898#discussioncomment-12930827 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected]
