GitHub user qiwei9743 edited a discussion: CompactOnExpiredCollector的工作不符合预期

hi master,

代码里为meta cf和subkey cf配置了:新生成的sst文件中,删除/过期key比率达到30%时候,继续compact 
当前sst文件的行为。但是存在以下2个问题
1. meta cf计算CompactOnExpiredCollector::NeedCompact不正确;计算delete 
key时候,算上了subkey的数量,然后subkey并不存在meta cf中,继续compact看起来不能带来收益,例如,h1, 200fields, 
h2,100fields, h3,100fields。 h1 expires,  deletekeys=201, totalkeys=303,   
deletekeys/totalkeys > 0.3,经过compact后,只是回收了 h1, 这一个key,并不会回收subkey 
cf中对应的key,没看出来收益是什么? 功能上,和trigger_threshold不是很相符。

2. MetadataFilter::Filter 过滤掉了过期的meta cf 导致 
#1的逻辑不会生效;调用MetadataFilter::Filter,发现meta key过期了,那么过期的meta key不会调用 
CompactOnExpiredCollector::AddUserKey。  
当前,有时间差的情况,当调用MetadataFilter::Filter时候,metakey没过期,调用CompactOnExpiredCollector::AddUserKey的时候过期了的情况。当时我相信CompactOnExpiredCollector
 不是为了这种情况设计的吧。因为这两个函数调用时间间隔非常短(毫秒的级别?)

烦请帮忙看一下,上面分析是否正确。




GitHub link: https://github.com/apache/kvrocks/discussions/2898

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to