SSD會顛覆數(shù)據(jù)庫市場嗎?
而SSD泛指使用NAND Flash組成的固態(tài)硬盤,其特別之處在于沒有機械結構,利用傳統(tǒng)的NAND Flash特性,以區(qū)塊寫入和抹除的方式作讀寫的功能,因此在讀寫的效率上,非常依賴讀寫技術上的設計,與目前的傳統(tǒng)硬盤相較,具有低耗電、耐震、穩(wěn)定性高、耐低溫等優(yōu)點。
筆者前段希望在SUN新型號服務器上使用SSD磁盤,但被告知僅支持36GB的容量。這簡直就是開玩笑嘛,誰家的數(shù)據(jù)庫只有幾十GB?
內存數(shù)據(jù)庫是高響應要求數(shù)據(jù)庫系統(tǒng)的最佳、甚至唯一選擇。現(xiàn)在,不僅僅電信級數(shù)據(jù)庫,甚至包括大型互聯(lián)網數(shù)據(jù)庫,也要求業(yè)務操作的響應時間為毫秒級。這對數(shù)據(jù)庫的響應速度提出了很苛刻的要求。唯一的途徑就是,將數(shù)據(jù)緩存在內存里。讓應用程序直接從內存里讀寫數(shù)據(jù),規(guī)避硬盤讀寫,從而極大的提高數(shù)據(jù)庫對外性能。
現(xiàn)在內存數(shù)據(jù)庫技術已經相對完善,有些主流大廠商已自主研發(fā)、或收購第三方軟件商,實現(xiàn)了該技術。主流內存數(shù)據(jù)庫技術解決了一個關鍵問題,其一,內存數(shù)據(jù)同步到磁盤的問題。
內存的數(shù)據(jù)畢竟是暫存,數(shù)據(jù)終歸要保存在硬盤上,一旦數(shù)據(jù)庫服務器因為斷電等問題意外關機或重啟,內存的數(shù)據(jù)肯定丟失殆盡。因此必須保證數(shù)據(jù)周期性存儲到磁盤上,但又不允許因批量磁盤存入,而導致影響性能。
數(shù)據(jù)中心軟件廠商異軍突起
隨著各行各業(yè)使用IT系統(tǒng)時間的加長,積累的歷史數(shù)據(jù)越來越多,另外,類似網絡游戲和C2C、B2C應用網站的大規(guī)模興起,眾多公司對海量數(shù)據(jù)的存儲,提取和處理,挖掘及分析提煉的要求變得愈加迫切。
傳統(tǒng)的主流數(shù)據(jù)庫軟件在大型數(shù)據(jù)中心上顯得很是力不從心。很多企業(yè)的數(shù)據(jù)中心,一天的數(shù)據(jù)導人就達到幾百GB,甚至若干TB,而且因為業(yè)務的需要,數(shù)據(jù)庫軟件需完成的操作不僅僅包括這些數(shù)據(jù)的插入,還包括將這些數(shù)據(jù)與歷史已有數(shù)據(jù)的對比,更新和刪除。傳統(tǒng)的數(shù)據(jù)庫軟件,無論采用多先進的技術,有一個事情是一定的,即基于單一的數(shù)據(jù)庫,雖然這個數(shù)據(jù)庫后面可以是SAN等很多磁盤陣列構成的存儲網絡予以支持。
這意味著,無論如何,你的處理速度受到極大的限制,即使有些數(shù)據(jù)庫廠商可以實現(xiàn)雙節(jié)點甚至多節(jié)點對數(shù)據(jù)庫存儲的并發(fā)訪問,但多節(jié)點的前置服務器,只能解決CPU和內存的問題,而磁盤作為主要瓶頸依然存在。另外,采用SAN存儲網絡等一個致命缺點是,價格過于昂貴,這并非一般公司所能接受,維護成本也相對非常的高。
有辦法解決大型數(shù)據(jù)中心的需求,且付出的費用卻相對十分低廉呢?答案是肯定的?,F(xiàn)在已有類似的數(shù)據(jù)庫廠商實現(xiàn)了此功能。這實際上是對傳統(tǒng)數(shù)據(jù)庫軟件設計和功能的顛覆性提高。這種實現(xiàn)的方法,類似于化整為零的思想。即,單個數(shù)據(jù)庫無法支持,那我們就采用多個數(shù)據(jù)庫來實現(xiàn)。這時,每個數(shù)據(jù)庫相互獨立,但又對外展現(xiàn)為單一的個體,供外部應用的訪問和操作。
這些數(shù)據(jù)庫使用各自的CPU、內存和磁盤,既然單一數(shù)據(jù)庫的磁盤存儲無法滿足需求,那我們設計這樣的系統(tǒng),允許無限制的增加數(shù)據(jù)庫,這樣就規(guī)避了單一存儲性能的問題,也規(guī)避了價格昂貴的SAN等存儲網絡。
這種架構下的服務器,采用價格低廉的PC服務器即可,費用比采用小型機等的數(shù)據(jù)庫,直降很多,另外,甚至不需采用服務器外掛的磁盤陣列了,直接使用服務器本地硬盤即可,現(xiàn)在ITB的SATA硬盤已經能夠做到價格低廉且比較穩(wěn)定。
這種架構下的數(shù)據(jù)庫軟件,完全可以采用業(yè)務免費穩(wěn)定的產品。根據(jù)一些網絡游戲公司的對比測試,采用專業(yè)數(shù)據(jù)中心軟件和架構下的數(shù)據(jù)提取等操作,并對比傳統(tǒng)數(shù)據(jù)庫軟件,耗費的時間從20到30小時,縮短到1到2小時,速度提高很多倍。而且提升的速度,隨著獨立數(shù)據(jù)庫的增加,可提升空間更多。
開源數(shù)據(jù)庫前景仍然光明
今年Oracle收購SUN的大事件,曾經讓業(yè)界十分擔心MySQL的存亡問題,畢竟MySQL早已被SUN公司收購。MySQL是免費開源數(shù)據(jù)庫軟件,這和Oracle這種純商業(yè)軟件是直接沖突的。Oracle之前已收購了INNODB數(shù)據(jù)引擎,而后者恰恰是吸引大量用戶依然使用MySQL的十分重要的一個理由。MySQL數(shù)據(jù)庫最令人欣賞的特性之一在于,他是一種開放式的架構,甚至允許第三方開發(fā)自己的數(shù)據(jù)存儲引擎,這吸引了大量第三方公司的注意并樂于投身于此。但最優(yōu)秀的引擎當屬INNODB,INNODB支持事務處理,鎖的機制做得也不錯,足以支持中小企業(yè)的一般性業(yè)務需求。并可見,Oracle對MySQL窺視已久,并非因其是免費開源數(shù)據(jù)庫而忽略。
因此Oracle是否讓MySQL自此消失,或者對MySQL不管不問任其自然消亡嗎?目前來看,這種可能性不大。MySQL因其免費、開源、結構開放,且對事務的支持較好等特性,占據(jù)了大量的市場,并擁有自己堅定的使用群體。MySQL目前受到不僅僅預算緊張的中小企業(yè)的青睞,而且也受到新型行業(yè)的廣泛應用。
互聯(lián)網時代已經真正開始,一個搜索引擎,購物網站或者平臺,一個網絡游戲,往往并發(fā)使用者數(shù)以十萬。這樣龐大的并發(fā)訪問,即使如Oracle數(shù)據(jù)庫系統(tǒng),也無法支撐。反而通過化整為零的思想,利用若干MySQL數(shù)據(jù)庫,組合起來得以實現(xiàn)。
事實上,Oracle在最近開始透露其將來針對MySQL的真正意圖,即利用MySQL和微軟的Microsoft SQL Server在中小企業(yè)進行抗衡。Microsoft SQL Server因為其較低的價格,不斷改進的數(shù)據(jù)庫技術和較簡單的管理維護等特性,也占據(jù)了不小的市場。Oracle數(shù)據(jù)庫的劣勢之一是,日常運維和維護成本較高,企業(yè)為此負擔的人員成本和后期投入較多,而這剛好是Microsoft SQL Server和MySQL的優(yōu)勢所在。