前言
需要确认的地方!
1: 内存段中的数据删除后是否立即删除,查不到信息?即内存段,是否没有删除表?
是有的,读段都有delete map
2: 内核说,能查到标记删除的文档的版本号信息,
得到的是 add -- > delete ---> now 这里面的delete版本号信息吗? 我感觉可能是add的信息
,如果是的话,那么delete 需要记录版本号的信息, ES中delete也会存储一个版本号。
3: 解决的痛点是,段合并的时候查不到版本号信息,
也就是从3s - 15m -6h -- 1d - 30d - e,
如果一个帖子在e段中,此次被删除,那么会在e段加入标记删除表,
同时,需要增加一个新的map,策略如下(保留2m -1m的帖子)
--- 10:00 delete map --- 10:01 delete map ---- 10:02 delete map ----
启动,在当前时刻(10:00)生成一个delete map,存储参照删除表,但是需要带上version信息
从10:00 - 10:01 的删除帖子都会写入此 删除表中,
10:01到,生成新的删除表,并将后续帖子写入当前删除表,并准备清空上上个删除表,
查询的时候,从当前删除表和上分钟删除表中查版本号,
维护成本比较高,