SAP HANA 和非易失性存儲
一種新硬件產(chǎn)品的推廣,必然需要有配套的軟件產(chǎn)品來助陣。SAP HANA 作為一款著名的企 業(yè)級內(nèi)存數(shù)據(jù)庫產(chǎn)品,正是持久化內(nèi)存最合適的場景之一。所以,SAP 和 Intel 二者很早 就開始相關(guān)產(chǎn)品的研發(fā)合作,這是一件再自然不過的事情了。SAP HANA 是市場上第一個針 對 DCPMM(即Optane數(shù)據(jù)中心持久化內(nèi)存)優(yōu)化過的主流數(shù)據(jù)庫產(chǎn)品,SAP HANA 2.0 SPS 03 就已經(jīng)支持 DCPMM 了1。
SAP HANA 的架構(gòu)
SAP HANA 本質(zhì)上是一個內(nèi)存數(shù)據(jù)庫,它也是最早提出 HTAP 的企業(yè)級數(shù)據(jù)庫產(chǎn)品。因此, SAP HANA 給人的第一印象就是需要很多的內(nèi)存,例如好幾個 TiB。因此,云廠商的超大內(nèi) 存規(guī)格就是為了 SAP HANA 這樣的產(chǎn)品準備的。這也是為什么 DCPMM 作為一種新介質(zhì),很 早就吸引了 SAP HANA 的研發(fā)投入。
內(nèi)存數(shù)據(jù)庫的操作是以內(nèi)存為中心的,而不是像磁盤數(shù)據(jù)庫那樣將內(nèi)存作為磁盤的緩存。為 了保證數(shù)據(jù)的持久化,它仍然要依賴 WAL 機制先寫日志,也需要依賴檢查點等機制將數(shù)據(jù) 持久化。磁盤數(shù)據(jù)庫遇到重啟的時候,需要執(zhí)行崩潰恢復過程,才能提供服務;內(nèi)存數(shù)據(jù)庫 也不例外,不過它的操作以內(nèi)存為中心,還需要將大量數(shù)據(jù)加載到內(nèi)存才可以工作。加速重 啟的恢復過程也是企業(yè)級數(shù)據(jù)庫一個很重要的優(yōu)化。從內(nèi)存和外存的角度看,SAP HANA 的 宏觀結(jié)構(gòu)如下2:
為了在 OLAP 和 OLTP 類訪問中獲得平衡,SAP HANA 在列存和壓縮的基礎(chǔ)上,將每列數(shù)據(jù) 分為兩個部分:Main 和 Delta。前者主要是只讀的,為 OLAP 類訪問優(yōu)化;后者為寫服務, 為 OLTP 類訪問優(yōu)化。為了支持并發(fā)訪問,這兩部分都實現(xiàn)了 MVCC 。大致的架構(gòu)如下:
實際的系統(tǒng)結(jié)構(gòu)遠比這個結(jié)構(gòu)圖要復雜,畢竟 SAP HANA 是一個完備的產(chǎn)品,也實現(xiàn)了很多 內(nèi)存數(shù)據(jù)庫、列存引擎的經(jīng)典特性。更多的資料請移步 SAP HANA 官網(wǎng)3。
SAP HANA 的優(yōu)化思路
在其他的文章中我已經(jīng)分析過 DCPMM 之類介質(zhì)的特點,例如帶寬要稍遜于 DRAM,讀寫速度 不對稱等。SAP HANA 也對介質(zhì)的特點做了仔細的考量,結(jié)合 Main 內(nèi)存的訪問特點(例如 容量大、讀多寫少等),很自然的,先把 DCPMM 當做字節(jié)尋址的持久化介質(zhì)用于 Main 內(nèi) 存的優(yōu)化。為了做到務實的架構(gòu)設(shè)計,SAP 不可能對 HANA 大動干戈,為了 DCPMM 做全面 的改造,畢竟系統(tǒng)的備份、恢復、復制等都存在依賴。這也是寫 PAPER,做原型和在產(chǎn)品上 做改進的重要區(qū)別。
SAP HANA 的優(yōu)化結(jié)果
原型系統(tǒng)2中討論較多場景下的性能改進,例如簡單的 INSERT、SELECT、類 TPC-H 查詢、系統(tǒng)恢復時間等。但是需要注意的是,數(shù)據(jù)都是用 DRAM 附加延遲等模擬出來的, 不能代表實際的系統(tǒng)數(shù)據(jù)。產(chǎn)品1的性能給出的主要是系統(tǒng)恢復時間的減少, 以及 DCPMM 帶來的相對 DRAM 的增加。
從圖中可以看出,系統(tǒng)啟動的時間從 50 分鐘下降到了 4 分鐘,可以大大減少系統(tǒng)的停機 時間。
SAP HANA 的啟示
一種新硬件產(chǎn)品的推廣從來都不是凌空出世的,它需要很多年研究和開發(fā)的積累。與此同時, 硬件還需要操作系統(tǒng)等基礎(chǔ)軟件環(huán)境的支撐,才可能被更上層的應用軟件所用。此外,硬件 要被廣泛采用,必須要獲得 Killer Application 的支持。DCPMM 之類的新硬件,因為它獨 特的特性,存在很多種用法。至于實際的系統(tǒng)中應該采用哪種用法,就是應用軟件各顯神通 之處了。
SAP HANA 產(chǎn)品中對新存儲介質(zhì)的引入必然是慎重的。首先是企業(yè)的預研部門對新介質(zhì)的用 法做出評估,并在以原型等形式予以實現(xiàn)和驗證,其次才是真正的在產(chǎn)品中引入。最后,改 進后的產(chǎn)品要真正發(fā)布給客戶并在實際系統(tǒng)中應用。
Footnotes
1 https://blogs.saphana.com/2018/11/29/sap-hana-persistent-memory/
2 http://www.vldb.org/pvldb/vol10/p1754-andrei.pdf
3 https://www.sap.com/products/hana.html
-
DRAM
+關(guān)注
關(guān)注
40文章
2349瀏覽量
185679 -
非易失性存儲器
+關(guān)注
關(guān)注
0文章
109瀏覽量
23719
發(fā)布評論請先 登錄
TPL1401數(shù)字電位器易失性和非易失性的區(qū)別是什么?
如何存儲應用程序中使用的非易失性數(shù)據(jù)?
Cypress非易失性SRAM技術(shù)
非易失性串行FRAM有哪些優(yōu)勢
非易失性內(nèi)存有寫入限制嗎?
利用SD存儲介質(zhì)擴展MAXQ2000的非易失性數(shù)據(jù)存儲空間

新型非易失存儲MVM數(shù)據(jù)管理

F-RAM非易失性存儲技術(shù)優(yōu)勢與安全氣囊設(shè)計資料下載

SAP HANA如何使用非易失性內(nèi)存

評論