Internet Marketing Blog Everything about Internet and Marketing

14四月/11關閉

Google公開Megastore白皮書

實際上,作為一個建立於Bigtable之上的分散式存儲系統,Megastore已經被穀歌使用了數年。Google在2008年的SIGMOD大會上就已經開始討論它了,但相關技術資訊直到最近才被公佈,在上個月舉行的創新資料系統研討會上(CIDR),Google公開了其Megastore分散式存儲技術的白皮書。

論文下載穀歌Megastore論文.pdf

【如果直接點擊下載不成功,請使用:右擊—目標另存為】

在該白皮書上,Google對於Megastore的功能描述是——高擴展性並具有高密度交互的可用存儲服務,其在Google的基礎系統之中,其主要用來解決Appengine的資料存儲問題。

Megastore融合NoSQLSQL

提到Google的Bigtable,必然會提到NoSQL,對於廣大的NoSQL研發人員而言,當前最核心問題正糾結於如何將NoSQL與傳統的關係型數據庫融合,而Megastore就是專門用來解決這一問題的。

Megastore用一種新穎的方式把NoSQL資料存儲的可擴展性和傳統的關係型數據庫融合在一起,並為一致性和高可用性提供了強有力的保證。Google在該論文中指出。目前提供的資料完全按照ACID語義序列進行高密度的排序。

Google重點談到了現今的Web應用,白皮書中指出,所有的Web應用都面臨以下技術瓶頸:可擴展性、快速的爭取並發展用戶、延遲反應、使用者資料(雲環境下要保證任何時候都可用)。

“但實際上,這些需求是衝突的”,白皮書指出。“關聯式資料庫提供了一組豐富且方便構建應用程式的功能,但是它們很難擴展到數以億計的用戶。非關聯式資料庫則有高度的可擴展性。例如穀歌的Bigtable,Apache Hadoop的HBase,或者Facebook的cassandra。但其API有限且鬆散一致性模型不利於開發應用。在遠端資料中心之間傳送資料,同時保證低延遲是具有挑戰性的。要注意保證所複製資料的一致性,尤其是傳送過程中的錯誤。”

關係型數據庫在Google沒有未來

傳統的關聯式資料庫管理系統已經被Google所否定,比如MySQL。在該檔中指出,“昂貴的商業資料庫系統,如Oracle資料庫,會大幅加大用戶在雲中大幅部署的總成本”。

Megastore的設計原理在於,能夠在廣域網路中同步複製檔寫操作、可接受的延時、支援跨資料中心的故障遷移。在兩個可擴展的非關聯式資料庫的中間地帶,比一個傳統的關聯式資料庫更為方便。

Google在該論文中還透露,目前Google100多個生產應用Megastore作為存儲服務,而這些應用的可靠度在99.99%100%之間。根據資料中心的距離和寫入資料的大小,應用程式的平均讀取延遲在萬分之一毫秒之內,平均寫入延遲在100400毫秒之間。

NoSQL專家——ACID令人印象深刻

曾經關注了Megastore多年,並不停更新關於Megastore的技術資訊的Amazon的技術大牛——James Hamilton日前在其博客中公開表示,很欽佩該技術,他在博客中寫道:“Megastore一貫支持閱讀和完整更新ACID語義使人印象深刻,即便不能夠更新比'每秒數'限制更多的實體組限制。”

CSDN觀察:實際上,Megastore已經是Google過時的存儲技術,但聊勝於無,Google選擇在此時將此論文公開,對於NoSQL的整體技術進步無疑還是有好處的。

Google目前正在使用的存儲系統是Spanner架構,在Google的技術規劃中,Spanner能夠控制一百萬到一千萬台伺服器,包括10萬億(1013)目錄和一千萬億(1018)位元組的存儲空間。而這所有一切分散在世界各地的資料中心,而Spanner的最強大之處在於能夠為50微妙之內的資料傳遞提供通道——即便這兩個資料中心分佈於地球的兩端。

原文連結:http://www.informationweek.com/news/internet/google/showArticle.jhtml?articleID=229205494&cid=RSSfeed_IWK_All