騰訊2021sigmod論文Spitfire分析
Spitfire:易失和非易失性內存的三層buffer管理
Spitfire: A Three-Tier Buffer Manager for Volatile and Non-Volatile Memory
機制
1、cache line page


將page分割成cache line大小,一個cache line為64字節。由于PM可以字節尋址,所以可以以cache line的粒度進行讀寫page。頁頭結構中有標記哪個cache line為臟的位圖表,1表示臟。并且有resident字段位圖標記哪個cache line加載到了內存,若無加載,這部分在內存中不占空間,節省內存。
2、HYMEM
《managing nvm in database system》分三層架構DRAM-NVM-SSD。
1)SSD上數據頁大小16kb,當事務請求時加載到DRAM
2)使用時鐘算法替換DRAM中的數據頁,PM中使用同樣算法
3)判斷什么條件下降DRAM中數據頁持久化到PM?
4)采用一個準入PM的隊列來協助是否將數據頁持久化到PM。
5)默認的讀路徑:SSD->NVM->DRAM->CPU
6)默認的寫路徑:CPU->DRAM->NVM->SSD
7)讀時首先看是否在DRAM,不在時看是否在NVM,都不在則需要將SSD上全頁直接加載到DRAM
8)DRAM替換數據頁時,首先看他在沒在準入隊列,若在則將其從隊列刪除,并持久化到PM;否則將其標記到準入隊列,將該頁直接持久化到SSD
9)優點:減少了PM寫,以及不同層級之間數據的移動
缺點:非并發操作,沒有在真實的PM環境上測試。
3、spitfire

使用概率的方法控制不同層級之間數據的遷移,實現冷熱數據分離。確保DRAM中是熱數據,NVM中是溫數據,SSD中是冷數據。
1)Dr:讀時,將NVM移動到DRAM中的概率。比如0.01表示每讀取100次,才將NVM中數據頁遷移到DRAM
2)Dw:寫時需要輔助DRAM的概率
3)Nr:讀操作時,將SSD遷移到NVM的概率
4)Nw:寫的過程中,buffer管理器將DRAM遷移到NVM的概率
5)數據遷移這些概率依賴于工作負載,自適應調整。

6)通過對每層加一個latch,遷移時用到哪層,就對哪層加鎖,實現并發
請輸入評論內容...
請輸入評論/評論長度6~500個字


分享













