深入探討LSM Compaction機制

compaction策略

compaction的主要作用是數據的gc和歸併排序,是lsm-tree系統正常運轉必須要做的操作,但是compaction任務運行期間會帶來很大的資源開銷,壓縮/解壓縮、數據拷貝和compare消耗大量cpu,讀寫數據引起disk I/O。compaction策略約束了lsm-tree的形狀,決定哪些文件需要合併、任務的大小和觸發的條件,不同的策略對讀寫放大、空間放大和臨時空間的大小有不同的影響,一般系統會支持不同的策略並配有多個調整參數,可根據不同的應用場景選取更合適的方式。

基礎概念

讀放大

每次讀請求帶來的讀盤次數

寫放大

每寫1byte數據帶來n bytes的數據寫盤,寫放大爲n。本質上寫放大需要跟全局有序做權衡,對序要求越高的系統寫放大就會越嚴重,B-Tree系列是隨時有序的代表,寫放大也更爲嚴重,而LS

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