搜尋本站文章

2012年9月20日 星期四

谷歌利用 GPS 和原子鐘使資料庫全球範圍資訊同步!

據國外媒體報導,谷歌將 GPS 天線和高精度的原子鐘裝到了它的伺服器中,並通過 Spanner 系統創造性地讓全球多個資料中心和數百萬台伺服器之間保持資訊同步。

谷歌的神奇魔棒

三年前,有人問一位名為維傑-吉爾(Vijay Gill)谷歌高級工程師,如果給他一根魔棒,他會用它來做什麼。

當時,吉爾正説明谷歌運行其網路帝國背後的龐大資料中心網路。在美國三藩市商業區的一次會議上,他談論了全球業務所面臨的獨特挑戰。負責監管 Facebook 資料中心的喬納森-黑爾格(Jonathan Heilger)坐在離吉爾幾個席位的地方。正是他問了吉爾這個問題:如果他有一個魔棒,他會給谷歌的資料中心增添一些什麼東西。

吉爾在回答前略微猶豫了一下。在回答的時候,他似乎顯得有些含糊其辭。但是,他的意思似乎是他會用這根魔棒來打造一個單獨的系統,自動而迅速地處理所有谷歌資料中心的資訊。接著,他暗示谷歌已經建立了一個這樣的系統。「你如何在全球範圍內管理這個系統,並進行優化呢?」他說,「這就是最有趣的部分。』

這聽起來是一個非常棘手的問題。但是,在大約四個月後,谷歌又透露了另一條消息。在蒙大拿山區的一次研討會上,谷歌最舉足輕重的工程師之一傑夫-迪恩(Jeff Dean)透露,該網路巨頭正在研製一種名為 Spanner 的東西,並形容它是「跨越我們所有資料中心的存儲和計算系統」。他表示,該計畫的目的是同時處理全球「數百乃至數千個」資料中心的 1000 萬台伺服器中的資料。

該專案的覆蓋範圍令人難以想像。但是,迪恩並未透露相關詳情。而且,目前尚不清楚,谷歌是否正在其現有的資料中心使用這個平臺。
Spanner 專案

本周,據科技博客 GigaOm 和 ZDnet 報導,谷歌已發表了一篇研究論文,詳細闡述了 Spanner 的情況。谷歌聲稱,這是首個能在全球資料中心網路快速存儲和檢索資訊的資料庫,而且,它還能夠保持資訊的「一致性」,即任何使用者在任何時候均能夠看到同樣的資訊。多年來,它一直推動著該公司廣告系統和其他各種網路服務的發展。

Spanner 借用了谷歌為其資料中心打造的其他大規模軟體平臺的技術,但是,從本質上來說,它是全新的東西。Spanner 接入到了裝有超精確原子鐘或 GPS 天線(類似于智慧手機上的那種)的伺服器網路上,並利用這些計時器在這樣龐大的網路上精確地同步發行資料。你沒有聽錯,谷歌將 GPS 天線和精確的原子鐘裝到了它的伺服器中。

「這是很了不起的事情,而且確實具有創造性。」資料存儲公司 Basho 的首席架構師安迪-格羅斯(Andy Gross)說。該公司開發的開源資料庫 Riak 已運行在數千台伺服器上,但是仍然沒有 Spanner 的覆蓋面廣。「傳統的智慧認為,在全球範圍內像這樣的時間同步是不現實的。』

Spanner 專案聽起來就像是一項不同尋常的事業,當然,它也要處理日常工作中遇到的一般問題。很少有公司像谷歌這樣被迫如此迅速地處理如此多的資料。但是,谷歌大規模資料中心的技術總會流向技術領域中的其他公司。最典型的例子就是廣泛使用的大資料平臺 Hadoop,它就類比了谷歌的技術。而且,這種發展趨勢可能會持續下去。

「如果你希望知道未來大規模、高性能的資料處理架構是什麼樣子的,我建議你讀一讀谷歌剛剛發表的研究論文。」Hadoop 開源軟體整體方案供應商 Cloudera 公司的 CEO 邁克-奧爾遜(Mike Olson)最近在矽谷的一次活動中說。據 Cloudera 公司的產品副總裁查理斯-澤德勒維斯基(Charles Zedlewski)稱,該公司(在招聘谷歌前工程師後)已聽說了 Spanner,它最終可能會將該論文中的思想轉變成它的軟體。

Facebook 正在打造類似于 Spanner 的系統,其目的也是同時處理多個資料中心的資訊。我們通過與 Facebook 交流獲悉,該公司的這個系統名為 Prism,與谷歌的 Spanner 完全不同。但是,它表明其他公司現在正在想法處理谷歌在過去幾年中遇到的問題。

這篇有關 Spanner 的論文有很多人署名,但其中有兩位非常傑出:傑夫-迪恩和桑傑-格瑪沃特(Sanjay Ghemawat)。在從昔日電腦巨頭 DEC 研究部門跳槽到谷歌後,迪恩和格瑪沃特説明谷歌設計了三個大規模軟體平臺,它們對於其他互聯網公司產生了較大的影響。MapReduce 和 Google File System 最終導致了 Hadoop 的誕生,而 BigTable 説明孕育出了一系列適合於存儲和檢索大量資訊的 NoSQL 資料庫。

Spanner 利用了 BigTable 的技術,但是它走得更遠。BigTable 常用於在單個資料中心的數千台伺服器上存儲資訊,而 Spanner 則更進一步,在數百萬個伺服器和多個資料中心存儲資訊。

這個平臺最具創意的部分就是谷歌所謂的 TrueTime API。API 是應用程式開發介面的意思,但在這裡,它是指其伺服器接入的中央資料傳送專線。基本上,TrueTime 就使用 GPS 天線和原子鐘來維持谷歌整個網路的運行。GPS 天線利用了全球定位系統(Global Position System),該系統利用一系列太空衛星來跟蹤時間和地理位置,而原子鐘則利用單個原子屬性來保持準確的時間。

用計時器保證伺服器網路同步

谷歌拒絕討論 Spanner。「這篇論文已說得很清楚了。」該公司發言人說。但是,她指出了該論文中突出強調 API 重要性的部分。「我們的設計中有一個方面非常突出。」這篇論文寫道,「Spanner 功能組的關鍵就是 TrueTime。』

要理解 TrueTime,你就必須弄清楚現有資料庫的局限性。現在有很多資料庫是專門用於在數千台伺服器上存儲資料的。其中大多數借鑒了谷歌的 BigTable 資料庫或亞馬遜的類似存儲系統 Dynamo。它們運行良好,但是卻無法同時處理多個資料中心的資訊:至少不能夠讓多個資料中心的資訊始終保持一致。

據 Basho 公司的首席架構師安迪-格羅斯稱,問題的關鍵在於伺服器必須不斷地交流,以確保它們能夠正確存儲和檢索資料。Basho 公司的 Riak 資料庫是在亞馬遜 Dynamo 的基礎上開發出來的。如果你在多個地理位置的資料中心來運行它,你就可能會讓系統崩潰。「你必須不斷地交流,以確定所有交易的秩序是正確的。」格羅斯說,「潛在的制約因素通常是建立快速資料庫的成本高得令人望而卻步。』

大資料公司 10gen 的首席執行官麥克斯-希雷森(Max Schireson)從不同的角度進行瞭解釋。該公司的 MongoDB 資料庫效法了 BigTable。希雷森稱,假設你用一種網路服務在兩個銀行帳戶之間轉帳,其中一個銀行帳戶在歐洲,另一個在亞洲。如果你在歐洲,這種轉帳過程似乎能夠完成。但是,對於在亞洲的某個人來說,它可能完成不了,因為存在通信延遲的問題。

他繼續說,可能還存在這樣的情況:一個觀察者在同一時間看到兩個銀行帳戶都有這筆錢。簡而言之,該服務可能無法總像廣告標榜的那樣完美,因為每個人看到的資料並不相同。在這個例子中,資料是不一致的。

如果再看看數以百萬計的人使用的服務,你可以看出這個問題有多大。「如果有大量的人訪問分佈于世界各地的大量的系統,由於它們相互之間的通信延遲時間較長,因此你就很難保持所有的事情同步。」他說,「如果你增加那些影響因素,同步就會變得更加困難。』

借助于 TrueTime,Spanner 成功解決了這個問題,它採用的方法令所有人感到意外。谷歌不是著眼于改善伺服器之間的通信,而是在其伺服器網路上到處安裝時鐘。它將 GPS 天線或原子鐘安裝到各種不同的伺服器上,與 TrueTime API 協同工作。最終,這些計時器保證了整個伺服器網路同步運行。

谷歌做法值得借鑒

「(除了谷歌外)當前有許多研究專注于機器之間的複雜的協調協定......但是,谷歌卻採用了完全不同的方法。」格羅斯說,「通過使用高精度的時鐘和一個對時間非常靈敏的 API,Spanner 可讓伺服器節點不必經過複雜的通信就能夠變得協調一致。』

簡而言之,TrueTime API 利用了這些重要的計時器,而網路上的伺服器則利用了這些 API。然後,TrueTime 告訴伺服器當前有多少「不確定性」,然後,它們就會相應地調整其讀數。

普通伺服器利用公共原子鐘來保持準確的時間。但是,格羅斯認為這一方法還不夠準確。谷歌更進一步,直接在自己的伺服器上安裝了原子鐘和 GPS 天線。

最初,該系統是用來説明整個谷歌帝國投放廣告,但是後來,它已經擴展到谷歌其他形形色色的服務當中。該系統還説明谷歌在其整個網路中複製和轉移資料,從而説明該公司的資料中心進行維修和升級,甚至安全渡過眾多的網路危機。三年前,當吉爾第一次提到 Spanner 的時候,他說,由於溫度過高,谷歌自動將大量資料從需要暫時關閉的設備中轉移出了。

問題的關鍵是,除非你在伺服器中添加硬體,否則你無法使用 Spanner。在這篇論文中,谷歌聲稱原子鐘的成本並不高,而且 10gen 公司的總裁麥克斯-希雷森表示,其他企業也安裝了類似的設備。但是,Basho 公司的格羅斯和 Cloudera 公司的澤德勒維斯基均認為,它的成本仍然太高,不適合推廣使用。

格羅斯稱,對於像 Basho 這樣的公司來說,建立依賴于這種設備的系統並沒有意義。而就 Cloudera 公司而言,澤德勒維斯基也說過類似的話。即便他們看到了 Spanner 的未來。

就像許多其他 NoSQL 公司一樣,Basho 公司的目標就是服務于大型網路公司和其他需要處理大規模網路資料的公司。而格羅斯聲稱 Spanner 背後的基本理念可以説明該公司做到這一點。

他說:「谷歌往往走在開源技術的前沿。不是每個人都能夠買得起原子鐘,但是我們可以從中學習他們所用到的方法。只要看一看谷歌的做法,你就能從中受益匪淺。』

===============================================
創用 CC 授權條款
Related Posts Plugin for WordPress, Blogger...

沒有留言:

張貼留言

1、本留言處歡迎多加留言交流,但不歡迎垃圾留言及廣告留言
2、留言時可以使用部份 HTML 標記
3、對於教學文章介紹或軟體使用有問題歡迎提出,若站長沒回應表示不清楚該問題的解決方案
4、留言時請勿留下電子郵件,以免因搜尋引擎爬文而造成您的困擾,且站長不會寄相關郵件給您,僅會在留言區提供解決方案
5.站長保留不當刪除留言的權力,若造成不便尚請見諒