新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 內存數據庫系統,NVDIMM和數據持久性

        內存數據庫系統,NVDIMM和數據持久性

        作者: 時間:2016-09-12 來源:網絡 收藏

        測試應用程序執行5次操作,每次循環構成一個事務,并包含至少兩個操作實例(見圖2)。基準應用程序記錄在兩種類型中的每一個(磁盤上的數據庫管理系統和帶事務日志的內存數據庫系統,或“IMDS+TL”)和兩種內存(和傳統DRAM)情況下每毫秒完成的循環次數。測試應用程序使用了eXtremeDB自己的C/C++應用編程接口(API)。

        圖2:測試應用程序操作。

        支持數據庫恢復的測試應用程序代碼可以充分利用eXtremeDB功能,而這種功能原本是增加來用于支持電池供電型RAM作為存儲器。這種功能可以在系統重啟后重新連接到NVRAM管理的eXtremeDB數據庫,啟動任何必需的清零工作,然后恢復正常工作。應用程序的恢復算法假設分配作為MCO_MEMORY_ASSIGN_DATABASE的數據庫內存器件的內存塊可以在應用程序崩潰或電源故障之后重新使用,方法是用另外的標志MCO_DB_OPEN_EXISTING重新打開它。

        基準測試結果

        從故障恢復是通過重啟測試系統中間執行程序進行測試的。當系統恢復后,測試程序自動重新啟動,訪問前故障狀態的eXtremeDB數據庫(在恢復時,已經將數據庫從閃存加載到DRAM),檢查數據庫的一致性并恢復操作,并從與系統重啟之前使用的相同存儲空間訪問數據庫。

        在比較將NVDIMM用作主內存的“pure”內存數據庫系統(沒有事務日志)和使用傳統DRAM的相同數據庫配置下速度的測試中,兩種存儲類型之間的任何差距都是可以忽略的。待測所有數據庫操作--插入、更新、刪除、索引搜索和表格遍歷--的性能差異都在所用測量技術的誤差范圍之內。有人可能將這種等效性歸因于加載進CPU緩存的完整數據庫,以及在那里發生而不是在DRAM或NVDIMM那里發生的數據訪問。然而,接近12MB的測試數據庫尺寸大大超過5MB的CPU緩存大小,測試應用程序則依靠隨機密鑰從數據庫中尋找隨機頁。

        剩余測試專注于事務日志對內存數據庫系統性能的影響。內存數據庫供應商提供事務日志來減輕“pure”內存數據存儲的易失性。然而,事務日志要求永久存儲(進行記錄),這會影響到內存數據庫系統的性能。正是出于這個理由,內存數據庫系統供應商經常被問到,他們的產品性能在采用事務日志部署時是否仍然超過磁盤上的數據庫管理系統。

        上述測試力求回答這個問題。用于永久存儲的“硬盤”實際上是一個將NVDIMM用作內存的RAM盤(基于內存的磁盤類存儲器)。這種做法一方面是想進一步測試AgigA Tech公司的產品(也就是說,為了確認它是否能創建RAM盤,并有一個數據庫系統能與它交互),另一方面也是想證明采用事務日志的內存數據庫系統性能為何能夠超過磁盤上的數據庫管理系統。

        除了它們使用的存儲器件(磁盤上的數據庫管理系統用的是硬盤或固態硬盤,內存數據庫系統用的是DRAM)外,內存數據庫系統與磁盤上的數據庫管理系統還有很重要的區別。內存數據庫系統取消了緩沖管理、文件I/O和傳統數據庫管理系統架構中固有的其它開銷源。取消硬盤--代之以RAM盤--可以消除因存儲器件的物理操作引起的開銷,從而突出內存數據庫系統的流線型設計的延時效應,它比磁盤上的數據庫管理系統更為復雜的處理強得多。

        測試表明,對于插入、更新和刪除操作來說,采用事務日志的內存數據庫系統性能明顯超過傳統磁盤上的數據庫管理系統(同樣,兩者都使用RAM作為它們的“永久”存儲)。圖3顯示了每種配置條件下單位為循環/毫秒的結果,以及通過IMDS+TL所表現出來的性能翻倍。舉例來說,在數據庫刪除測試中,IMDS+TL要比磁盤上的數據庫管理系統快12.77倍。圖3還顯示了關閉事務日志、讓eXtremeDB作為將NVDIMM用作主存的“pure”IMDS進行操作的性能影響。

        圖3:結果。

        數據庫索引搜索和表格遍歷表明,在從磁盤上的數據庫管理系統轉移到IMDS+TL時,幾乎沒有性能上的變化。這種結果是在預料之中的,因為與插入、更新和刪除操作相比,這種數據庫“讀取”操作不會改變數據庫內容,在性能方面的成本通常低得多。

        討論

        NVDIMM在用作內存數據庫系統存儲器時可以匹配傳統DRAM的速度,同時提供完整的內存數據庫持久性。那么為什么還有人要用帶延時誘導事務日志的內存數據庫系統呢?這里有多種理由,包括成本,因為GB規模的NVDIMM成本要大于DRAM;想要使用非Intel Romley和Grantley的平臺;要求的數據庫大小(AgigA Tech公司的NVDIMM支持高達128GB的總內存容量)。如上述數字所示,增加事務日志實現數據持久性將降低內存數據庫系統的性能,但IMDS+TL組合在插入、更新和刪除操作時仍能超越傳統磁盤型數據庫管理系統的性能。

        今后用戶會遇到的另外一個問題是他們所選的內存數據庫系統是否支持將NVDIMM用作主要內存。如前所述,McObject的eXtremeDB內存數據庫系統包括許多功能--在產品開發早期就加入的,用于支持與電池供電型RAM的交互--這些功能可以用NVDIMM平順地恢復數據庫。使用沒有這些功能的內存數據庫系統可能導致更高的復雜性,并且在實現可工作的解決方案之前需要很大的開發和測試工作量。

        另外值得注意的是,本文討論的數據庫持久性--也就是確保數據庫和所有提交的事務能在發生系統故障事件時得到恢復--有別于高可用性,或不停工操作的能力。雖然兩種技術都是想幫助數據庫經受住故障,但如前所述,高可用性通常是通過復制實現的,故障轉移時間單位是毫秒。相反,持久性--帶事務日志的內存數據庫系統或將NVDIMM用作主存所能達到的--不保證消除停工時間。使用NVDIMM或事務日志進行數據庫恢復通常是自動的,但兩者最有可能的使用場景是在意外的系統宕機之后,這意味著冷重啟(如重新啟動)這樣的時長為分鐘級的過程。開發人員在考慮用這些技術克服易失性問題時應該理解數據庫高可用性和持久性之間的區別。



        關鍵詞: 數據庫 NVDIMM

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 金昌市| 漾濞| 库车县| 淳安县| 黄山市| 南木林县| 永德县| 宜兰市| 苏尼特右旗| 怀集县| 肥乡县| 策勒县| 屯留县| 利辛县| 宣恩县| 永胜县| 富顺县| 宜都市| 定襄县| 南投市| 喜德县| 滨州市| 济阳县| 祁东县| 义马市| 漳州市| 阿克陶县| 屯昌县| 搜索| 正阳县| 望都县| 灵璧县| 东兴市| 突泉县| 龙南县| 云安县| 松潘县| 南川市| 松桃| 阿克陶县| 磐石市|