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

基于DoDAF的衛(wèi)星應(yīng)用信息鏈體系結(jié)構(gòu)
米爾科技ARM體系結(jié)構(gòu)與編程介紹

Oracle體系結(jié)構(gòu)講解

評論