內(nèi)存計(jì)算技術(shù)可以規(guī)避存儲(chǔ)系統(tǒng)在操作硬盤和SSD讀寫時(shí)產(chǎn)生的延遲,但同時(shí)也需要考慮對(duì)后端存儲(chǔ)系統(tǒng)帶來的影響。
內(nèi)存數(shù)據(jù)庫的性能遠(yuǎn)遠(yuǎn)超過使用前端緩存和基于磁盤的數(shù)據(jù)庫。內(nèi)存數(shù)據(jù)庫免除了大多數(shù)不必要的I/O操作,包括緩存讀寫和僅用于更新數(shù)據(jù)庫條目的其它進(jìn)程。利用內(nèi)存可以實(shí)現(xiàn)極快速的寫后讀校驗(yàn)操作。
使用內(nèi)存存儲(chǔ)還可以消除有關(guān)獲取磁盤數(shù)據(jù)位置和解析目錄樹的全部存儲(chǔ)層工作。內(nèi)存計(jì)算技術(shù)可以使數(shù)據(jù)庫提速高達(dá)100倍,從而縮短業(yè)務(wù)響應(yīng)時(shí)間,減少數(shù)據(jù)庫集群所需的服務(wù)器數(shù)量。
NVDIMM備援
然而,內(nèi)存數(shù)據(jù)庫引出了一個(gè)新問題:雖然在動(dòng)態(tài)RAM(DRAM)中進(jìn)行的所有操作會(huì)獲得極佳的性能,但是如果服務(wù)器出現(xiàn)故障,DRAM將立即變?yōu)榭瞻锥覕?shù)據(jù)會(huì)全部丟失。確保部分或者全部數(shù)據(jù)庫數(shù)據(jù)條目保留在持久性存儲(chǔ)內(nèi),這是內(nèi)存數(shù)據(jù)庫技術(shù)的有效擴(kuò)展選項(xiàng),但同時(shí)也帶來了對(duì)后端存儲(chǔ)需求的變化。
早期的建議是將全部數(shù)據(jù)都保存到NVMe SSD或?qū)S瞄W存卡。這些措施是將數(shù)據(jù)從DRAM移動(dòng)到持久存儲(chǔ)的最快方式。
今天,組織還應(yīng)該將NVDIMM視為DRAM池的持久存儲(chǔ)保障。NVDIMM是安裝在DIMM插槽上的數(shù)TB閃存或類似的存儲(chǔ)器。
因?yàn)榘惭b在高速總線上并采用和內(nèi)存相同的I/O方式,NVDIMM的速度極快,大約比最快的SSD還快四倍。NVDIMM與DRAM結(jié)合使用后,內(nèi)存數(shù)據(jù)庫可以獲得連續(xù)和更大容量的內(nèi)存空間,并避免分片問題。更重要的是,IT人員可以維護(hù)內(nèi)存中數(shù)據(jù)的映像,或針對(duì)寫入事務(wù)創(chuàng)建日志文件并且不影響業(yè)務(wù)運(yùn)作。
然而,和通常的SSD相比,NVDIMM的容量擴(kuò)展受到一定限制。這種限制對(duì)于大數(shù)據(jù)業(yè)務(wù)尤其明顯,此類業(yè)務(wù)中的數(shù)據(jù)集是大量連續(xù)流或大量單純的數(shù)據(jù),而其中大部分?jǐn)?shù)據(jù)幾乎從來不被訪問。在這種情況下有兩種選擇:IT管 理員可以使用NVMe驅(qū)動(dòng)器組成網(wǎng)絡(luò)存儲(chǔ),也可以使用大量較慢的SSD驅(qū)動(dòng)器。后一種方式提供的性能可能只有NVMe驅(qū)動(dòng)器的10%,但是便宜得多,而且并行處理程度也很高。如何選擇要根據(jù)使用場(chǎng)景來確定。
高帶寬的接口可以為內(nèi)存計(jì)算提供有力的支持。管理員可以使用以太網(wǎng)遠(yuǎn)程直接內(nèi)存訪問(RDMA)來在不同的系統(tǒng)內(nèi)存之間共享數(shù)據(jù),并且可以將數(shù)據(jù)互通擴(kuò)展到任何基于驅(qū)動(dòng)器的存儲(chǔ)設(shè)施。
基礎(chǔ)設(shè)施的下一個(gè)形態(tài)會(huì)怎樣?
內(nèi)存計(jì)算基礎(chǔ)設(shè)施正在迅速發(fā)展。最有趣的潛在變化來自NVDIMM和CPU架構(gòu)。
例如,Intel產(chǎn)品路線圖中的Optane技術(shù)具有字節(jié)級(jí)的可尋址性。這將使程序能夠操作CPU寄存器到內(nèi)存的指令、將單個(gè)字節(jié)寫入Optane存儲(chǔ)器。與當(dāng)前的NVDIMM所使用的4KB最小I/O單位的訪問方法相比,單字節(jié)方式要快得多。當(dāng)前的方式是,在應(yīng)用程序中創(chuàng)建一個(gè)數(shù)據(jù)塊,然后通過存儲(chǔ)堆棧軟件,最后在單次CPU操作中最少傳輸4KB數(shù)據(jù)。整個(gè)過程只需要一到兩個(gè)機(jī)器時(shí)鐘周期。
實(shí)現(xiàn)字節(jié)級(jí)別的可尋址性需要修改系統(tǒng)中的每一段代碼。但是,比起將其應(yīng)用于傳統(tǒng)的大型應(yīng)用程序,將這個(gè)思路應(yīng)用于數(shù)據(jù)庫引擎要容易很多,預(yù)計(jì)數(shù)據(jù)庫領(lǐng)域?qū)?huì)首先見到成效。理論上,該概念可以擴(kuò)展到集群,使用RDMA技術(shù)來互聯(lián)NVMe Optane驅(qū)動(dòng)器。
在大數(shù)據(jù)環(huán)境中,網(wǎng)絡(luò)帶寬和本地存儲(chǔ)可能成為系統(tǒng)能力發(fā)揮的關(guān)鍵瓶頸。解決辦法是對(duì)數(shù)據(jù)進(jìn)行壓縮。壓縮比取決于數(shù)據(jù)內(nèi)容,典型情況下會(huì)有5倍的數(shù)據(jù)縮減。在CPU方面,服務(wù)器內(nèi)的扁平化布局拓?fù)浣Y(jié)構(gòu)非常引人注目,其中內(nèi)存,GPU,CPU和驅(qū)動(dòng)器都共享相同的超快速架構(gòu),而且可以耦合到群集架構(gòu)。
另一個(gè)新的CPU研發(fā)方向是,讓CPU和內(nèi)存更近距離耦合,從而提升DRAM容量和性能。有多家初創(chuàng)公司都選擇了混合內(nèi)存立方體的思路。
這些公司的目標(biāo)是實(shí)現(xiàn)每秒千兆字節(jié)的內(nèi)存速度、降低內(nèi)存能耗,以及使用融合DRAM、閃存和CPU模塊的架構(gòu),所有這些措施都可以顯著加速內(nèi)存計(jì)算性能。 這些先進(jìn)的創(chuàng)新公司們?cè)诓粩喟l(fā)展的過程中可能會(huì)選擇不同的技術(shù)路線,但都致力于實(shí)現(xiàn)性能的巨大提升,從而在內(nèi)存計(jì)算系統(tǒng)和相關(guān)的新一代存儲(chǔ)領(lǐng)域開辟更大空間。