其中,元數(shù)據(jù)層主要負(fù)責(zé)元數(shù)據(jù)的存取訪問服務(wù)以及事務(wù)控制。共享存儲(對象存儲)層負(fù)責(zé)用戶數(shù)據(jù)持久存儲,中間計(jì)算層為無狀態(tài)的計(jì)算服務(wù)。
當(dāng)然,龍趺集群規(guī)模不斷增大,其在數(shù)據(jù)存儲和使用中也會面臨一些挑戰(zhàn)。大量應(yīng)用接入數(shù)據(jù)庫,龍趺共享存儲中的文件數(shù)超過20億,而讀取訪問小文件對緩存影響極大,因此在高并發(fā)需求下規(guī)?;瘧?yīng)用如何提升本地緩存系統(tǒng)使用效率是一個挑戰(zhàn)。
服務(wù)器數(shù)量不斷增加,故障也隨之增多,資源動態(tài)調(diào)配和故障自愈能力這些操作也會帶來緩存部分失效,如何實(shí)現(xiàn)節(jié)點(diǎn)間緩存的共享,以此最大限度減少緩存加載對應(yīng)用的影響也是挑戰(zhàn)。
以傲騰為代表的SCM助力分布式數(shù)據(jù)庫應(yīng)對存儲挑戰(zhàn)
建設(shè)銀行建信金科基礎(chǔ)技術(shù)中心首席存儲專家徐寧表示這兩個問題可以從三個方向進(jìn)行優(yōu)化——數(shù)據(jù)分布,單機(jī)性能以及格式性能。其中,存儲介質(zhì)、緩存分層、文件系統(tǒng)和緩存粒度和緩存格式是基于SCM的進(jìn)一步優(yōu)化。
以傲騰為代表的SCM出現(xiàn)帶來了高級數(shù)據(jù)服務(wù)能力,且具備實(shí)際價值?;旌习葱枋褂肈RAM和SCM,將存儲層的高級數(shù)據(jù)服務(wù)移植到內(nèi)存層,如高性能備份和恢復(fù)等。SCM應(yīng)用可以簡化系統(tǒng)設(shè)計(jì),SCM的內(nèi)存特性簡化軟件棧,更易于定制化實(shí)現(xiàn)需求。
比如,在做MPP計(jì)算時不需要一個文件中所有數(shù)據(jù),而是把文件里部分?jǐn)?shù)據(jù)按照范圍加載到當(dāng)時的計(jì)算集群緩存部分,比如上圖里的Block 1和Block 2,然后加載到具體計(jì)算機(jī)群節(jié)點(diǎn)上,變成兩個小文件,這是對象局部緩存的設(shè)計(jì)。
在這個前提下進(jìn)行單機(jī)優(yōu)化首要考慮的是應(yīng)用的SCM介質(zhì)。龍趺MPP DB采用英特爾? 傲騰?持久內(nèi)存作為SCM介質(zhì)替代了一部分DRAM帶來性能提高和長壽命的優(yōu)勢。
DOIT總編宋家雨指出,內(nèi)存儲器如DRAM一旦出現(xiàn)故障,系統(tǒng)需要跨內(nèi)存儲器直接訪問外存儲器,消耗大量的網(wǎng)絡(luò)和存儲資源的同時導(dǎo)致性能大幅降低,而通過以傲騰為主的SCM+存儲分層是將熱數(shù)據(jù)緩存到新介質(zhì)上,冷數(shù)據(jù)則自動存儲到經(jīng)濟(jì)型介質(zhì)上,以此找到性能,容量和成本結(jié)合點(diǎn),最大限度減少緩存加載對應(yīng)用的影響。
另一方面,針對海量小文件帶來的訪問性能下降,建行采用了很多辦法,比如用RocksDB取代本地文件系統(tǒng),優(yōu)化后對16KB以下的小文件取得了較大的性能提高。但是RocksDB也會帶來新問題——LSM Tree帶來的寫放大,LSM Tree分層級,每次先寫journal(日志),再寫memory table(內(nèi)存表),然后并到leve1,leve2……重復(fù)寫入和數(shù)據(jù)逐級下沉造成了嚴(yán)重的寫放大問題。
因此,建設(shè)銀行在軟件方面采用了英特爾持久內(nèi)存開發(fā)工具包PMDK(Persistent Memory Development Kit),用pmemobj庫存放較大的值,然后用戶oid直接做索引,很好地解決寫放大的問題。
以libpmem庫為例,作為PMDK中的底層庫支持用內(nèi)存映射方式訪問持久內(nèi)存,一方面可將持久內(nèi)存上的文件映射到應(yīng)用的虛擬內(nèi)存空間進(jìn)行操作。通過規(guī)避內(nèi)核參與和上下文切換帶來的開銷,直接為上層應(yīng)用提供助力。
DOIT主編朱朋博表示,中國有句古話:勿以善小而不為。用傲騰部分替代DRAM,鑒于傲騰在容量密度和價格方面的優(yōu)勢,聚沙成塔,當(dāng)服務(wù)器用量動輒上萬時,其所帶來的容量優(yōu)勢不能低估。
傲騰持久內(nèi)存的技術(shù)展望
從建設(shè)銀行的數(shù)據(jù)庫案例來看,傲騰技術(shù)的引入幫助其完善了MPP數(shù)據(jù)庫的功能,為海量數(shù)據(jù)訪問和處理提供了強(qiáng)有力的支撐。未來,SCM解決方案除了作為緩存層,隨著傲騰技術(shù)不斷發(fā)展,容量與性能的擴(kuò)展,以及我們對內(nèi)存規(guī)模需求的不斷增加,是否會成為數(shù)據(jù)存儲的核心呢,畢竟技術(shù)新舊更迭是市場的運(yùn)行規(guī)則,接下來,傲騰觀察室將投入更多的時間和精力來觀察傲騰技術(shù)的新用例和新變化,敬請期待!