非易失性內存技術及數據庫

 

非易失性內存技術及數據庫

內容

“2013年開始這個項目的研究,當時不確定非易失性內存技術是否可商用。2019年Intel商用了NVM產品,NVM對下一代數據庫系統的影響吸引了廣大研究者”--Joy Arulraj和Andrew Pavlo。

採訪了《非易失性內存數據庫管理系統》的作者:Joy Arulraj和Andrew Pavlo。談論了非易失性內存NVM技術及NVM對下一代數據庫系統的影響。

Q1:非易失性內存技術是什麼?

Arulraj,Pavlo:他是一種廣泛的技術,包括相變內存和憶阻器。具有低延遲讀、堪比DRAM的寫速度,並具有持久特性和堪比SSD的大存儲容量。市場上Intel基於3D XPoint技術[1]出產了傲騰DC NVM模塊的產品。

Q2:基於易失性內存和持久內存的數據庫管理系統有哪些潛在的變化?

Arulraj,Pavlo:現有的數據庫管理系統分爲兩大類:1)面向磁盤;2)面向內存。面向磁盤的數據庫管理系統和1970年代的第一代關係數據庫基於的假設相同,比如IBM的R系統。基於兩層存儲,用易失性的內存比如DRAM作爲緩存,使用慢速、非易失的塊設備作爲持久存儲器,比如SSD。這些系統基於一個悲觀的假設:事務可以訪問不在內存中的數據,爲了訪問磁盤上數據需要很長延遲。採用傳統技術,比如沉重的併發控制機制來客服這些限制。

    最近出現的商品化產品大大擴展了單機DRAM內存。但是面向磁盤的數據庫系統並不是針對數據全部駐留在內存場景而設計。針對NVM,面向磁盤數據庫許多部件都顯得冗餘。

    相反,面向內存的數據庫架構假設所有數據都在內存,因此不需要慢速、面向磁盤的部件。因此面向內存的數據庫優於面向磁盤的數據庫。但是由於DRAM易失,系統崩潰後,爲了恢復仍需要沉重的部件。隨着NVM的出現,面向磁盤和麪向內存的數據庫架構都將發生顛覆性影響。

Q3:現存的數據庫管理系統爲什麼不能充分利用NVM技術優點?

Arulraj,Pavlo:NVM特性有:

1)可字節尋址:NVM和其他非易失性存儲(僅支持以塊爲單位進行數據傳輸)不同,支持字節可尋址。

2)高速寫負載:相比SSD,NVM寫速度能高一個數量級。更重要的是隨機寫和順序寫差距很小。

3)讀寫不對稱。某些NVM技術,寫會比讀花費的時間長。另外,過度寫單個內存單元會損壞它。

    NVM優點顯而易見,在數據庫系統中充分利用他們非常重要。我們對面向磁盤和麪向內存數據庫在NVM上進行了評估,他們性能差不多。當前數據庫管理系統假設內存是易失的,因此他們的架構需要將數據持久化到持久設備。這說明爲充分利用NVM特性,需要重構數據庫管理系統。

Q4:利用NVM,哪些傳統數據庫系統部件不是必要的?

Arulraj,Pavlo:針對NVM,需要重新設計數據庫系統的幾個關鍵部件:1)日誌和恢復協議;2)存儲和buffer管理;3)索引數據結構

舉例說明日誌和恢復協議。一個數據庫系統需要確保數據的完整性。更新操作的事務在返回應用成功前,需要將其數據持久化到持久設備如SSD。這樣的存儲設備比DRAM慢,尤其在隨機寫上,只支持以block爲單位的傳輸。

事務處理過程中,如果在提交前需要覆蓋數據庫內容,那麼必須執行隨機寫到磁盤。通過將隨機寫轉換成日誌順序寫來提高數據庫性能。

NVM顛覆了WAL協議的設計,因爲他支持快速的隨機寫。因此我們需要爲NVM重新定製新協議。例如write behind logging(WBL)。WBL不僅能提高性能,也能使崩潰重啓恢復時快速完成。WBL追蹤數據庫哪些部分發生更改,而不是如何更改。用這樣的日誌方法,數據庫可以不將數據記錄到日誌,直接將其刷寫。通過排序寫到NVM,確保事務持久性和原子性,使每個事務寫更少數據,提高NVM設備生命週期。

Q5:你們已經設計開發了適配NVM的數據庫系統存儲引擎,關鍵模塊是什麼?

Arulraj,Pavlo:傳統的數據庫系統基於兩層架構:DRAM+SSD。這些設備具有各自的硬件特性和約束,傳統數據庫系統架構基於減少這些影響的設計。例如依賴於這些設備,維護兩種元組佈局。由於DRAM字節尋址並高效處理隨機讀寫,所以內存中的元組可以報考non-lined字段。而存儲在SSD上的元組只存在inlined字段以避免隨機寫。爲分攤訪問持久設備的開銷,這些引擎通過批量寫入和刷新的方法進行延遲操作。然而,在具有NVM的存儲層次結構的系統中,許多這樣的技術將不再是必要模塊。我們採用傳統引擎的存儲和恢復機制以利用NVM的特性。

例如,採用in-place update的NVM-aware存儲引擎。當一個事務插入一個元組的時候,不需將其拷貝到WAL中以備恢復等,這個存儲引擎只需要在WAL中記錄一個元組的非易失指針即可。這非常高效,因爲指針和元組都存儲在NVM上。因此係統重啓後,可以通過指針訪問元組,而不需要回放WAL。同樣將索引作爲非易失的B+tree,系統重啓後無需重建可立即訪問。因爲事務提交時,修改立即持久化,所以系統重啓後提交的事務也是持久的。因爲內存控制器刷寫對於的cache lines時機不確定,所以未提交事務進行的修改可能也持久化了。因此存儲引擎需要通過WAL回滾這些事務。由於恢復協議不包含redo處理流程,和傳統存儲引擎相比NVM-aware引擎具有更小的恢復延遲。

Q6:這邊書的要點是什麼?

Arulraj, Pavlo: 這本書介紹了適配NVM的關鍵算法和數據結構,不僅提升性能和減小操作消耗,而且簡化了開發和崩潰恢復時間。我們的項目從2013年開始。我們也不太確定NVM技術是否能落地,但是2019年intel基於3D Xpoint技術的傲騰系列使之商品化。我們對NVM對下一代數據庫系統的影響感到興奮。

原文

http://www.odbms.org/blog/2019/05/on-databases-and-non-volatile-memory-technologies-interview-with-joy-arulraj-and-andrew-pavlo/

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