Spitfire騰訊2021sigmod論文分析

yzs87發表於2021-02-06

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 ,遷移時用到哪層,就對哪層加鎖,實現併發

 

原文

 

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31493717/viewspace-2756568/,如需轉載,請註明出處,否則將追究法律責任。

相關文章