背景 數據庫復制是在事務(transaction)的更改提交到本地存儲之前將其復制到輔助站點來執行。如果主數據庫站點宕機,輔助站點可作為熱備份。事務日志記錄和日志傳輸是在數據管理系統中提供可恢復性和高可用性的標準技術。它們需要在每個事務中更新一個本地日志文件(寫入存儲)和一個遠程站點(通過網絡交換數據),這兩者都是相對昂貴的操作。現代數據庫已經利用了諸如持久性內存(PM)和支持RDMA的網絡等技術來盡可能快地執行這些更新。 圖1描述了一個典型的系統,使用PM和RDMA執行日志寫入和交付。數據庫系統負責協調幾個不同的步驟,有時是針對本地PM,有時是通過啟用RDMA的NIC的遠程PM或內存,最后是快速SSD設備。例如,圖1的流程為:(1)該數據庫會將日志數據寫入到PM中。(2)通過RDMA將數據傳輸到遠端PM。(3)使用第二個RDMA操作來將日志所描述的更改轉換到遠端主機的內存中。(4a/b)兩個主機都需要在PM上騰出空間,通過將其部分內容復制到SSD中來實現。 圖1 使用PM和RDMA執行日志記錄和復制路徑 問題 現有技術的組合存在幾個缺點:缺乏可移植性、數據路徑的復雜性和互操作性。具體包括: ? RDMA和PM的相互作用很復雜且難以理解。例如,使用RDMA更新遠端機器上的PM支持的地址可能會使更新可見,但不能保證該更新是持久的。如果機器崩潰,復制操作的正確性可能會受到影響。 ? 雖然可以通過簡單的load/store內存訪問PM指令、編程正確、持久的數據結構是一項艱巨的工作。軟件崩潰可以使結構處于任意狀態,然后數據庫需要從中恢復。 ? 用于PM的每個DIMM插槽都不用于DRAM,這迫使系統設計人員在DRAM或PM容量之間進行選擇。 ? Optane和配有后備電池的DRAM需要特定的服務器支持,并且不能在沒有某些特性的情況下跨服務器移植。特別是Optane在AMD平臺上不受支持。 方法 為了解決這些問題,本文設計了一個新的存儲體系結構X-SSD,實現數據庫日志記錄和復制從PM和快速網絡中獲益。通過將PM從CPU路徑移到SSD中,并允許SSD代表數據庫管理本地或遠程對PM的訪問。X-SSD包含基于PM和NAND閃存的本地聯網存儲。該體系結構提供了一個獨立的、快速的數據路徑和接口,完全專門用于事務日志寫入,并提供了數據傳播服務,包括跨服務器,可以在這些服務上構建數據庫復制。圖2顯示了如何使用X-SSD設備來簡化日志記錄和復制數據路徑。步驟順序和傳統系統相同,但X-SSD設備負責在步驟 (2) 和 (4a/b) 中傳播數據,而遠程內存的更新由遠程數據庫(3)完成。 圖2 使用X-SSD設備的日志記錄和復制路徑 ? X-SSD架構 圖3為X-SSD的邏輯架構,該架構在同一設備中包含常規端和快速端。常規端是一個獨立的以Flash為介質的SSD設備,而快速端是僅附加工作負載的高性能暫存區域,為PM設備。保存來自循環緩沖區上的字節尋址接口的數據,最終會將數據轉移到常規端的指定循環緩沖區中(也可以選擇對等X-SSD)。快速端由電容器提供支持,即使在突然斷電的情況下也可以轉移數據。因此,可以在到達常規端之前向應用程序確認快速端寫入。 X-SSD的設計原理是讓應用程序在兩個IO配置文件之間進行選擇,但使用單個設備并確保配置文件無縫集成。 圖3?X-SSD邏輯架構 ? X-SSD功能如下: 僅附加工作負載的字節尋址接口:X-SSD不僅僅提供傳統的塊接口,還提供了可字節尋址接口。塊設備操作通常由塊接口處理。字節級操作由基于CMB的接口處理。CMB接口由應用程序通過load和store指令訪問的MMIO區域組成。某種形式的PM支持CMB領域。本文通過假設電池后備使其持久化,來評估SRAM和DRAM的可行性。 數據傳播服務:快速端寫入的語義與傳統端不同。針對CMB的快速寫入最終將按照發出的順序降級到設備的常規端。降級發生時無需來自發出寫入的應用程序的任何干預。快速端在概念上是應用程序寫入的環。在后臺,該設備不斷地將數據從這個環移動到常規端。X-SSD設備的常規端還保留了一個環形的轉儲區域,但比快速端的要大得多。該快速寫入也可以發送到配置為副本的Villars設備。本文評估使用 PCIe NTB 作為互連的遠程連接,但其他網絡技術(如RDMA)也是可能的。 崩潰一致性:后備電池允許設備完成對快速端上存在的任何數據的降級,來應對電源突然中斷的情況。重新啟動后,應用程序將在設備常規端看到崩潰期間傳輸中的數據。 記錄狀態監視器:X-SSD提供了一個控制接口,應用程序使用它來查詢上述數據移動的進度。例如,應用程序可以檢查給定的寫入是否已持久保存在遠程X-SSD設備上。 設備設置界面:一個額外的控制接口允許應用程序配置設備(例如,PM區域的大小或用于長期存儲的常規側的區域),并識別并連接到對等X-SSD設備。本文還討論了如何支持允許X-SSD設備的多線程或多客戶端使用X-SSD設備的高級設置。 Villars設備:X-SSD體系結構的參考設計 Villars是一個成熟的NVMe設備,是直接連接的PCIe SSD的標準。Villars設備可以從現代數據庫中吸收事務日志工作負載,與直接操作數據庫相比,它具有更簡單的接口、可比較的延遲和更清晰的崩潰行為語義。 Villars設備大致由三個模塊組成,如圖4所示:CMB模塊、Transport模塊和Destage模塊。 CMB模塊是頂級模塊,它處理應用程序所使用的字節可尋址接口。將CMB備份內存公開給數據庫。 Transport模塊負責連接到遠程對等的Villars設備,并通過它們復制CMB寫入流。 Destage模塊連接Villars設備的兩端,將CMB的PM后備存儲器中的數據降級到傳統端的 Flash。 圖4:X-SSD物理架構 ? 總結 X-SSD是針對事務日志工作負載而設計的SSD架構。快速端用于服務低延遲的字節可尋址請求,用于事務日志記錄;常規端是一個傳統的SSD塊接口來服務常規工作負載。雙方緊密集成,允許數據無縫地從快速端移動到常規端。此外,不同設備實例的快速端也可以進行通信,允許在X-SSD設備之間以低延遲遠程發送日志工作負載。數據庫可以使用這些數據傳播特性來構建不同的事務日志記錄和基于日志傳送的復制方案。本文還介紹了一種針對X-SSD體系結構的Villars器件的參考設計。提供更簡單的接口、可比較的延遲和更清晰的崩潰行為語義。
-
接口
+關注
關注
33文章
8685瀏覽量
151640 -
監視器
+關注
關注
1文章
780瀏覽量
33192 -
SSD
+關注
關注
21文章
2881瀏覽量
117662
原文標題:X-SSD:原生支持數據庫日志記錄和復制的存儲系統
文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論