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