Google利用Megastore解決NoSQL、SQL融合難題
實(shí)際上,作為一個建立于Bigtable之上的分布式存儲系統(tǒng),Megastore已經(jīng)被谷歌使用了數(shù)年。Google在2008年的SIGMOD大會上就已經(jīng)開始討論它了,但相關(guān)技術(shù)信息直到最近才被公布,在上個月舉行的創(chuàng)新數(shù)據(jù)系統(tǒng)研討會上(CIDR),Google公開了其Megastore分布式存儲技術(shù)的白皮書。
論文地址下載:http://www.cidrdb.org/cidr2011/Papers/CIDR11_Paper32.pdf
在該白皮書上,Google對于Megastore的功能描述是——高擴(kuò)展性并具有高密度交互的可用存儲服務(wù),其在Google的基礎(chǔ)系統(tǒng)之中,其主要用來解決Appengine的數(shù)據(jù)存儲問題。
Megastore融合NoSQL和SQL
提到Google的Bigtable,必然會提到NoSQL,對于廣大的NoSQL研發(fā)人員而言,當(dāng)前最核心問題正糾結(jié)于如何將NoSQL與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫融合,而Megastore就是專門用來解決這一問題的。
Megastore用一種新穎的方式把NoSQL數(shù)據(jù)存儲的可擴(kuò)展性和傳統(tǒng)的關(guān)系型數(shù)據(jù)庫融合在一起,并為一致性和高可用性提供了強(qiáng)有力的保證。Google在該論文中指出。目前提供的數(shù)據(jù)完全按照ACID語義序列進(jìn)行高密度的排序。
Google重點(diǎn)談到了現(xiàn)今的Web應(yīng)用,白皮書中指出,所有的Web應(yīng)用都面臨以下技術(shù)瓶頸:可擴(kuò)展性、快速的爭取并發(fā)展用戶、延遲反應(yīng)、用戶數(shù)據(jù)(云環(huán)境下要保證任何時候都可用)。
“但實(shí)際上,這些需求是沖突的”,白皮書指出。“關(guān)系數(shù)據(jù)庫提供了一組豐富且方便構(gòu)建應(yīng)用程序的功能,但是它們很難擴(kuò)展到數(shù)以億計(jì)的用戶。非關(guān)系數(shù)據(jù)庫則有高度的可擴(kuò)展性。例如谷歌的Bigtable,Apache Hadoop的HBase,或者Facebook的cassandra。但其API有限且松散一致性模型不利于開發(fā)應(yīng)用。在遠(yuǎn)程數(shù)據(jù)中心之間傳送數(shù)據(jù),同時保證低延遲是具有挑戰(zhàn)性的。要注意保證所復(fù)制數(shù)據(jù)的一致性,尤其是傳送過程中的錯誤。”
關(guān)系型數(shù)據(jù)庫在Google沒有未來
傳統(tǒng)的關(guān)系數(shù)據(jù)庫管理系統(tǒng)已經(jīng)被Google所否定,比如MySQL。在該文件中指出,“昂貴的商業(yè)數(shù)據(jù)庫系統(tǒng),如Oracle數(shù)據(jù)庫,會大幅加大用戶在云中大幅部署的總成本”。
Megastore的設(shè)計(jì)原理在于,能夠在廣域網(wǎng)中同步復(fù)制文件寫操作、可接受的延時、支持跨數(shù)據(jù)中心的故障遷移。在兩個可擴(kuò)展的非關(guān)系數(shù)據(jù)庫的中間地帶,比一個傳統(tǒng)的關(guān)系數(shù)據(jù)庫更為方便。
Google在該論文中還透露,目前Google有100多個生產(chǎn)應(yīng)用Megastore作為存儲服務(wù),而這些應(yīng)用的可靠度在99.99%到100%之間。根據(jù)數(shù)據(jù)中心的距離和寫入數(shù)據(jù)的大小,應(yīng)用程序的平均讀取延遲在萬分之一毫秒之內(nèi),平均寫入延遲在100至400毫秒之間。
NoSQL專家——ACID令人印象深刻
曾經(jīng)關(guān)注了Megastore多年,并不停更新關(guān)于Megastore的技術(shù)信息的Amazon的技術(shù)大牛——James Hamilton日前在其博客中公開表示,很欽佩該技術(shù),他在博客中寫道:“Megastore一貫支持閱讀和完整更新ACID語義使人印象深刻,即便不能夠更新比'每秒數(shù)'限制更多的實(shí)體組限制。”
CSDN觀察:實(shí)際上,Megastore已經(jīng)是Google過時的存儲技術(shù),但聊勝于無,Google選擇在此時將此論文公開,對于NoSQL的整體技術(shù)進(jìn)步無疑還是有好處的。
Google目前正在使用的存儲系統(tǒng)是Spanner架構(gòu),在Google的技術(shù)規(guī)劃中,Spanner能夠控制一百萬到一千萬臺服務(wù)器,包括10萬億(1013)目錄和一千萬億(1018)字節(jié)的存儲空間。而這所有一切分散在世界各地的數(shù)據(jù)中心,而Spanner的最強(qiáng)大之處在于能夠?yàn)?0微妙之內(nèi)的數(shù)據(jù)傳遞提供通道——即便這兩個數(shù)據(jù)中心分布于地球的兩端。
原文鏈接:http://www.informationweek.com/news/internet/google/showArticle.jhtml?articleID=229205494&cid=RSSfeed_IWK_All
【編輯推薦】