刪除隊列實現

 

前言

需要確認的地方!

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到,生成新的刪除表,並將後續帖子寫入當前刪除表,並準備清空上上個刪除表,

 

查詢的時候,從當前刪除表和上分鐘刪除表中查版本號,

 

維護成本比較高,需要額外線程資源。

 

 

4: 後續

能否在wtable中做CAS,判斷是否能發送索引操作??

不行,wtable和索引是兩個存儲,在操作的時候是分開的,在wtable cas判斷成功後,併發執行索引的順序沒辦法保證。

 

 

 

正文

 

需要解決一種場景

新增要被拋棄,但是正確執行了!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章