訂閱
糾錯(cuò)
加入自媒體

騰訊2021sigmod論文Spitfire分析

2021-03-05 10:01
yzsDBA
關(guān)注

Spitfire:易失和非易失性內(nèi)存的三層buffer管理

Spitfire: A Three-Tier Buffer Manager for Volatile and Non-Volatile Memory

機(jī)制

1、cache line page

將page分割成cache line大小,一個(gè)cache line為64字節(jié)。由于PM可以字節(jié)尋址,所以可以以cache line的粒度進(jìn)行讀寫page。頁頭結(jié)構(gòu)中有標(biāo)記哪個(gè)cache line為臟的位圖表,1表示臟。并且有resident字段位圖標(biāo)記哪個(gè)cache line加載到了內(nèi)存,若無加載,這部分在內(nèi)存中不占空間,節(jié)省內(nèi)存。

2、HYMEM

《managing nvm in database system》分三層架構(gòu)DRAM-NVM-SSD。

1)SSD上數(shù)據(jù)頁大小16kb,當(dāng)事務(wù)請(qǐng)求時(shí)加載到DRAM

2)使用時(shí)鐘算法替換DRAM中的數(shù)據(jù)頁,PM中使用同樣算法

3)判斷什么條件下降DRAM中數(shù)據(jù)頁持久化到PM?

4)采用一個(gè)準(zhǔn)入PM的隊(duì)列來協(xié)助是否將數(shù)據(jù)頁持久化到PM。

5)默認(rèn)的讀路徑:SSD->NVM->DRAM->CPU

6)默認(rèn)的寫路徑:CPU->DRAM->NVM->SSD

7)讀時(shí)首先看是否在DRAM,不在時(shí)看是否在NVM,都不在則需要將SSD上全頁直接加載到DRAM

8)DRAM替換數(shù)據(jù)頁時(shí),首先看他在沒在準(zhǔn)入隊(duì)列,若在則將其從隊(duì)列刪除,并持久化到PM;否則將其標(biāo)記到準(zhǔn)入隊(duì)列,將該頁直接持久化到SSD

9)優(yōu)點(diǎn):減少了PM寫,以及不同層級(jí)之間數(shù)據(jù)的移動(dòng)

  缺點(diǎn):非并發(fā)操作,沒有在真實(shí)的PM環(huán)境上測試。

3、spitfire

使用概率的方法控制不同層級(jí)之間數(shù)據(jù)的遷移,實(shí)現(xiàn)冷熱數(shù)據(jù)分離。確保DRAM中是熱數(shù)據(jù),NVM中是溫?cái)?shù)據(jù),SSD中是冷數(shù)據(jù)。

1)Dr:讀時(shí),將NVM移動(dòng)到DRAM中的概率。比如0.01表示每讀取100次,才將NVM中數(shù)據(jù)頁遷移到DRAM

2)Dw:寫時(shí)需要輔助DRAM的概率

3)Nr:讀操作時(shí),將SSD遷移到NVM的概率

4)Nw:寫的過程中,buffer管理器將DRAM遷移到NVM的概率

5)數(shù)據(jù)遷移這些概率依賴于工作負(fù)載,自適應(yīng)調(diào)整。

6)通過對(duì)每層加一個(gè)latch,遷移時(shí)用到哪層,就對(duì)哪層加鎖,實(shí)現(xiàn)并發(fā)

聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長度6~500個(gè)字

您提交的評(píng)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評(píng)論

暫無評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)