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