深度 | X-Engine的In-Memory讀性能優化

5-6-3.gif

背景

雖然同爲LSM-tree架構,X-Engine的設計哲學與傳統基於LSM-tree架構的Rocksdb等引擎並不完全一致,如下圖所示:

image.png

設計關鍵點1:X-Engine磁盤上的數據,在常態下只有兩層(L1/L2),L0層是MemTable在compaction來不及的情況下暫存到磁盤上緩解內存壓力時才啓用的,正常情況下被凍結的MemTable可以直接和磁盤上的L1合併。

設計關鍵點2:在L1/L2之間的compaction合併過程中,X-Engine的冷熱合並算法傾向於將熱點數據保留在L1層(基於訪問頻度),將訪問較少的數據下刷到L2層並進行壓縮存儲。這是一個對數據在物理上進行冷熱分離的過程, 其結果是L1存儲的都是熱點數據,L2存儲的都是冷數據。對L1進行緩存時會有更高的內存利用率。

按照設計初衷,X-Engine正常運行時,Mem

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