非易失性記憶體技術及資料庫

yzs87發表於2020-05-17

 

非易失性記憶體技術及資料庫

內容

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/


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

相關文章