現(xiàn)在,一些高端數(shù)據(jù)庫已經(jīng)了取消硬盤,直接把數(shù)據(jù)存在內(nèi)存里,不知道硬盤還能活多久。
無論是家用電器里微小的嵌入式控制器,還是企業(yè)級(jí)服務(wù)器,內(nèi)存(RAM,隨機(jī)存取存儲(chǔ)器)都是其計(jì)算機(jī)系統(tǒng)必不可少的一個(gè)組成部分。RAM包括靜態(tài)(SRAM)和動(dòng)態(tài)(DRAM)兩種形式,處理器工作時(shí)處理的數(shù)據(jù)就暫時(shí)存放在這里。然而,隨著RAM的價(jià)格不斷下跌,在大容量的持久性存儲(chǔ)設(shè)備(硬盤)和RAM之間傳輸數(shù)據(jù)的傳統(tǒng)計(jì)算模式可能將不復(fù)存在。
RAM的價(jià)格會(huì)隨市場(chǎng)變化而出現(xiàn)暫時(shí)的波動(dòng),但從長(zhǎng)期來看,其價(jià)格保持著平穩(wěn)下降的趨勢(shì)。回溯到2000年,那時(shí)一個(gè)1G的內(nèi)存售價(jià)約為1000美元(相當(dāng)于那時(shí)候的800英鎊);而如今最低不到5美元(約5英鎊)。這樣低廉的價(jià)格為計(jì)算機(jī)的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)提供了諸多新思路。
傳統(tǒng)數(shù)據(jù)庫往往將數(shù)據(jù)存在硬盤上,然后在需要時(shí)把信息讀取到RAM中,再以某種方式對(duì)其進(jìn)行處理。RAM與硬盤的存儲(chǔ)量通常會(huì)相差幾個(gè)數(shù)量級(jí)。一般提到RAM用的都是GB,而硬盤則用TB。不過,隨著RAM容量的增加,把更多的數(shù)據(jù)直接存入RAM,從而減少硬盤讀寫的次數(shù),似乎是個(gè)提高效率的好方法。由于RAM的價(jià)格也在持續(xù)下跌,開始有人將整個(gè)數(shù)據(jù)庫從硬盤讀入內(nèi)存中進(jìn)行操作,之后再重新寫回持久存儲(chǔ)器中。而現(xiàn)在還有人干脆不把數(shù)據(jù)庫再放回到持久存儲(chǔ)器中,而是直接存在易失性RAM里。
內(nèi)存的存取速度一般為納秒級(jí)的,而硬盤的尋道時(shí)間通常是毫秒級(jí)的,也就是說存儲(chǔ)器比硬盤的讀寫速度快了約一百萬倍。不過RAM的傳輸速度并沒有比磁盤快出那么多:RAM一般每秒傳輸幾G,而速度快一些的磁盤也能達(dá)到每秒百M(fèi)。但不管怎么說,RAM的傳輸速度肯定是比磁盤高出一個(gè)數(shù)量級(jí)的。
隨著RAM的價(jià)格降低,一些高端企業(yè)和數(shù)據(jù)中心已經(jīng)將單臺(tái)服務(wù)器配上了幾TB大的存儲(chǔ)器。當(dāng)然,除了需要很大的存儲(chǔ)量以外,要想將數(shù)據(jù)庫儲(chǔ)存在RAM上,還得跨越“持久性”這一個(gè)障礙。RAM是易失存儲(chǔ)器,每當(dāng)電源關(guān)閉或者系統(tǒng)受到損害時(shí),它的存儲(chǔ)的信息都會(huì)永久丟失。這對(duì)于那些想滿足“ACID”( 原子性Atomicity、一致性Consistency、隔離性Isolation、持久性durability)、力求可靠的數(shù)據(jù)庫來說確實(shí)是個(gè)不小的挑戰(zhàn)。
所幸,我們可以利用磁盤快照和日志來彌補(bǔ)這個(gè)缺陷。就像我們會(huì)定期將磁盤上的數(shù)據(jù)庫備份一樣,一個(gè)內(nèi)存數(shù)據(jù)庫也能進(jìn)行復(fù)制備份。創(chuàng)建磁盤快照意味著要與其他讀取過程競(jìng)爭(zhēng)資源,所以建立檢查點(diǎn)的頻率需要在性能和恢復(fù)能力之間進(jìn)行權(quán)衡。而這個(gè)缺陷也可以用日志來彌補(bǔ),這種技術(shù)也被稱為“更新記錄”(journalling)。 日志把數(shù)據(jù)備份發(fā)生的變化全部記錄下來,根據(jù)它就可以從早期的快照中恢復(fù)出后期的數(shù)據(jù)版本。但不管怎樣,只要數(shù)據(jù)庫是保存在非持久性存儲(chǔ)器上的,它的冗余度就會(huì)降低。
我們也可以壓縮數(shù)據(jù)庫,來最大限度地利用 RAM的存儲(chǔ)空間,尤其是對(duì)于那些面向列的數(shù)據(jù)系統(tǒng)(以列的形式存儲(chǔ)表格)。相鄰的數(shù)據(jù)屬于同一種類型,表格中各列基本也是同一類型時(shí),壓縮的效果相對(duì)較好。而且,當(dāng)壓縮產(chǎn)生計(jì)算開銷時(shí),按列儲(chǔ)存可以較好地應(yīng)對(duì)龐大數(shù)據(jù)集帶來的復(fù)雜請(qǐng)求,這也就是大數(shù)據(jù)從業(yè)人員和數(shù)據(jù)科學(xué)家們對(duì)此充滿興趣的原因了。
放眼全球數(shù)據(jù)處理量最大的地方之——谷歌等公司已將數(shù)據(jù)庫的主體從硬盤轉(zhuǎn)移到RAM上,因?yàn)檫@樣可以保證以較快速度完成大量的搜索任務(wù)。但是真要在一個(gè)任務(wù)中用上超大量?jī)?nèi)存仍會(huì)遇到許多難題,因?yàn)閮H憑一塊主板有限的空間只能容納一定數(shù)量的RAM,而且這么多RAM分享一塊主板本身還會(huì)產(chǎn)生額外的延遲。
“后RAM”時(shí)代
但是到目前為止,我們很難說使用易失性內(nèi)存進(jìn)行數(shù)據(jù)處理是不是未來的主導(dǎo)方向,因?yàn)槭褂梅且资訰AM(NVRAM)進(jìn)行計(jì)算的競(jìng)爭(zhēng)模式已經(jīng)出現(xiàn)了。NVRAM的結(jié)構(gòu)與現(xiàn)有硬盤的結(jié)構(gòu)類似,這其中就有已為廣大用戶所熟知的固態(tài)硬盤(SSD)。目前,固態(tài)硬盤主要是基于NAND閃存,這種存儲(chǔ)設(shè)備的讀寫速度遠(yuǎn)比普通硬盤快,但同時(shí)也有它自身的缺陷。從原理上來說,閃存是通過保持電荷來存儲(chǔ)信息,它需要以較高的電壓完成寫入,而且會(huì)逐漸損耗。為了處理損耗問題,閃存使用了損耗平衡算法來控制讀寫,存在收益遞減問題。
上圖由前計(jì)算機(jī)科學(xué)教授John C McCallum繪制,在圖中我們可以發(fā)現(xiàn),硬盤與RAM價(jià)格的下降速度非常接近。因?yàn)閮r(jià)格走低,SSD在數(shù)據(jù)中心和本地系統(tǒng)(on-premises)中被廣泛使用,但是該技術(shù)的未來發(fā)展形勢(shì)仍不明朗。今年二月,一篇關(guān)于谷歌公司6年以來SSD布設(shè)情況的論文揭示:閃存驅(qū)動(dòng)器遠(yuǎn)不如硬盤驅(qū)動(dòng)器可靠,因?yàn)樗鼈儠?huì)產(chǎn)生更多無法糾正的錯(cuò)誤,盡管它們不需要頻繁更換。而且,與工業(yè)指標(biāo)宣稱的不同,企業(yè)級(jí)的SSD實(shí)際上并不比個(gè)人用戶使用的版本更可靠。
但是,其他形式的NVRAM也開始在市場(chǎng)出現(xiàn)。鐵電RAM((FRAM))曾經(jīng)被視作RAM和移動(dòng)設(shè)備中閃存的替代產(chǎn)品,但業(yè)界的注意力現(xiàn)在轉(zhuǎn)向了磁阻式RAM(MRAM)。MRAM的讀寫速度接近于易失性RAM,延遲時(shí)間約為50納秒。雖比DRAM的10納秒慢了一些,但是比起NAND閃存的毫秒級(jí)還是快上千倍。
不同于傳統(tǒng)的利用電荷儲(chǔ)存信息,MRAM通過不同的磁性取向來存儲(chǔ)信息,這主要基于一種叫作磁隧道結(jié)(MTJ)的薄膜結(jié)構(gòu)。“旋轉(zhuǎn)切換”的MRAM已經(jīng)被某些產(chǎn)品所使用,比如戴爾公司“EqualLogic”存儲(chǔ)陣列,但它目前只負(fù)責(zé)少部分的日志記錄功能。
自旋力矩轉(zhuǎn)移MRAM(ST-MRAM)則采用一種更為復(fù)雜的結(jié)構(gòu),這樣可以為未來增加存儲(chǔ)密度留下空間。這款產(chǎn)品目前由Everspin公司出售,該公司最近剛剛在納斯達(dá)克上市。正在開發(fā)同類技術(shù)的其他公司還包括Crocus、鎂光(Micron)、高通、三星, 自旋轉(zhuǎn)移技術(shù)公司(Spin Transfer Technologies ,STT) 和東芝(Toshiba)。
與此同時(shí),英特爾已經(jīng)開始與鎂光公司合作,共同完成一款叫做“3D XPoint”的NVRAM。根據(jù)去年官方給出的消息來看,這是一款電阻式RAM(ReRAM),屬于相變內(nèi)存(PCM)中的一種。因其具有多層結(jié)構(gòu)的特征,為它命名時(shí)還特意增加了“3D”。英特爾公司曾宣稱,XPoint的讀寫速度與耐用性將是NAND閃存的1000倍,儲(chǔ)存密度會(huì)高達(dá)NAND閃存的10倍,但最近看來,這些宣稱性能要打個(gè)折扣。不管最后的實(shí)測(cè)表現(xiàn)到底如何,3D XPoint的定價(jià)估計(jì)將會(huì)在同等大小的閃存與DRAM之間。這樣的價(jià)格普通消費(fèi)者和桌面用戶應(yīng)該不會(huì)接受,但在大規(guī)模存儲(chǔ)領(lǐng)域,它的性價(jià)比應(yīng)該可以超過內(nèi)存和SSD。
IBM也在開發(fā)它的相變內(nèi)存。和英特爾的一樣,IBM的相變內(nèi)存也以硫族化物玻璃作為主要的可擦寫光學(xué)媒質(zhì)(rewritable optical media)材料。這種內(nèi)存通過某種電設(shè)備將材料從非結(jié)晶態(tài)轉(zhuǎn)變成三種不同的結(jié)晶態(tài)。IBM稱他們的產(chǎn)品將在存儲(chǔ)密度上有所突破,這也將使其售價(jià)低于DRAM。
RAM行業(yè)的競(jìng)爭(zhēng)將影響計(jì)算領(lǐng)域的方方面面。對(duì)于消費(fèi)者來說,如果有一些針對(duì)臺(tái)式機(jī)系統(tǒng)的存儲(chǔ)產(chǎn)品可以將內(nèi)存由8G升至16G,那無疑將大大增加我們電腦日常的多任務(wù)處理速度,而那些對(duì)系統(tǒng)要求更高的應(yīng)用,如高分辨率照片和視頻編輯,從中受益更大。
在超極本市場(chǎng),SSD已經(jīng)司空見慣。不斷增加的存儲(chǔ)量使其有望成為機(jī)械硬盤的替代品,正式“轉(zhuǎn)正”,不再是從前的“硬盤+SSD”?!叭S堆疊NAND”(3D layered NAND)也叫做“垂直NAND” (V-NAND),它的出現(xiàn)意味著新一代產(chǎn)品的到來。憑借其出色的效能與更高的密度,其生產(chǎn)公司三星預(yù)測(cè):到2020年該系列將會(huì)推出512G的消費(fèi)級(jí)SSD,而其價(jià)格僅與今天1TB的硬盤相當(dāng)。
對(duì)于中型企業(yè)與研究機(jī)構(gòu)而言,只要軟件跟得上,那么用上更快、更便宜、存儲(chǔ)量更大的RAM也就意味著他們內(nèi)存數(shù)據(jù)庫的分析將更快速、更深入且更有見地。舉個(gè)例子,柱狀數(shù)據(jù)庫管理系統(tǒng)SAP HANA為用戶提供了可用于多種云或本地商業(yè)解決方案的平臺(tái),這使小型公司也能玩得起“大數(shù)據(jù)”。此外,IBM和甲骨文(Oracle)這樣的超大企業(yè)也在使用類似的內(nèi)存柱狀數(shù)據(jù)庫管理系統(tǒng)。
RAM還是影響技術(shù)普及化的因素之一。當(dāng)技術(shù)變得越來越廉價(jià)且供應(yīng)充足,組織規(guī)模的大小差別將不再顯得如此重要。而且,小型機(jī)構(gòu)還可通過合作來彌補(bǔ)規(guī)模的劣勢(shì)。
最后來談?wù)劤?jí)計(jì)算機(jī)。下一代超級(jí)計(jì)算機(jī)肯定都會(huì)盡其所能地配備更多內(nèi)存。目前領(lǐng)跑世界的中國(guó)超級(jí)計(jì)算機(jī)“神威太湖之光”裝有1300T的DDR3型DRAM,而這相對(duì)于它每秒93千萬億次浮點(diǎn)運(yùn)算(petaflops)的速度而言已經(jīng)算是相當(dāng)小。這也使得它耗電較低(只有15.3百萬瓦特),但恐怕限制了整體性能。
超級(jí)計(jì)算機(jī)的生產(chǎn)者們都在沖著“萬萬億次浮點(diǎn)運(yùn)算” 1000 petaflops)的目標(biāo)努力著。繼“京”(K)之后,日本又將發(fā)布“京二代”(post-K)超級(jí)計(jì)算機(jī),它由日本理化學(xué)研究所(Riken research institution)和富士通合作設(shè)計(jì),預(yù)計(jì)將于2020年正式開始運(yùn)行。它將配備鎂光公司的多層堆疊式DRAM“混合式內(nèi)存立方 ”(Hybrid Memory Cube) ,還有可能裝上“3D XPoint”NVRAM。
此外,歐盟資助的超級(jí)計(jì)算機(jī)項(xiàng)目“NEXTGenIO計(jì)劃”也在進(jìn)行中。承擔(dān)該項(xiàng)目的愛丁堡超級(jí)計(jì)算中心(Edinburgh Supercomputing Centre)已經(jīng)宣布,他們的原型系統(tǒng)將于2022年面世。這款超級(jí)計(jì)算機(jī)也將使用3D XPoint技術(shù),這是他們?cè)凇叭f萬億次級(jí)”超級(jí)計(jì)算機(jī)研制中的一個(gè)重要階段。
美國(guó)的“萬萬億次”項(xiàng)目是奧巴馬提出的“國(guó)家戰(zhàn)略計(jì)算計(jì)劃(NSCI)”的一部分。該項(xiàng)目預(yù)計(jì)能在2023年前制造出2臺(tái)全新的百萬兆次級(jí)超級(jí)計(jì)算機(jī)。雖然它們的架構(gòu)設(shè)計(jì)還未最終確定,但因其注重實(shí)用性和能效,RAM必定是整個(gè)計(jì)算機(jī)的核心技術(shù)。