Google數(shù)據(jù)庫 Spanner 是第一個全球數(shù)據(jù)庫,它是跨越多個大陸的數(shù)十個數(shù)據(jù)中心的數(shù)百萬臺計算機上存儲信息的一種方式,它現(xiàn)在已支持從 Gmail 到 AdWords(公司的主要贏利點)等多個產(chǎn)品。
大約十年前,少數(shù) Google 最有才華的工程師開始構(gòu)建一個似乎違背邏輯的系統(tǒng)。
這個稱為Spanner 的系統(tǒng)是第一個全球數(shù)據(jù)庫,它是跨越多個大陸的數(shù)十個數(shù)據(jù)中心的數(shù)百萬臺計算機上存儲信息的一種方式,它現(xiàn)在支持從 Gmail 到 AdWords(公司的主要贏利點)等多個產(chǎn)品。 但它不只是規(guī)模的大小讓人不可思議。真正的竅門是,即使 Spanner 在全球各地延伸,它的行為就像在同樣一個地方一樣。
Google 可以在此數(shù)據(jù)庫的一部分中更改公司數(shù)據(jù),即運行廣告或說明廣告客戶的帳戶,而不會與地球另一端發(fā)生的更改相矛盾。此外,它可以方便可靠地在世界各地的多個數(shù)據(jù)中心復(fù)制數(shù)據(jù),如果任何一個數(shù)據(jù)中心出現(xiàn)故障,那么可以無縫檢索這些副本。對于一個如Google 這樣真正的全球性業(yè)務(wù),這種跨大陸的一致性是非常強大的。
在 Spanner之前,這似乎不可能。機器之間不能保持?jǐn)?shù)據(jù)庫一致,沒有恒定和穩(wěn)定的溝通,和全球通信花了太長時間。你知道,光的速度和一切。谷歌的工程師需要的東西像ansible,一個虛構(gòu)的裝置,首次出現(xiàn)在Ursula Le Guin的1966年的科幻小說《Rocannon的世界》里。 ansible可以立即在任何距離發(fā)送信息,而不顧時間和空間。Spanner不是ansible,它不能縮小空間。因為那些工程師找到了一種方法來利用時間,所以Spanner能工作。
沒有人曾經(jīng)建立過這樣的系統(tǒng)。沒有人以同樣的方式擁有時間。現(xiàn)在 Google 將這項技術(shù)作為云計算服務(wù)提供給世界其他地區(qū)。
Google 認(rèn)為,在至關(guān)重要的云計算市場,與微軟和亞馬遜競爭這可以提供一些額外作用,只是因為 Spanner 是獨一無二的。有些人同意。說,“如果有人提供Spanner,人們會想要它,也會使用它,” 斯坦福大學(xué)計算機科學(xué)助理教授,專門從事大規(guī)模分布式軟件系統(tǒng)Peter Bailis 說。但正如其他人指出的:很少有企業(yè)與 Google 有同樣的需求。
信任時間
在過去,如果你構(gòu)建一個覆蓋數(shù)百臺機器和多個數(shù)據(jù)中心的系統(tǒng),你遵循一個重要的規(guī)則:不要信任時間。如果一個系統(tǒng)涉及多個地方的多個機器之間的通信,時間將因機器而異,正是因為保持時間--精確的時間--是一件難事。像網(wǎng)絡(luò)時間協(xié)議這樣的服務(wù)旨在為機器提供一個公共參考點。但因為主要網(wǎng)絡(luò)很慢,這也工作得很好。發(fā)送時間需要時間。
對于Google,這是一個問題。如果數(shù)據(jù)庫跨越多個區(qū)域,則無法確保世界一部分的事務(wù)與另一部分中的事務(wù)對齊。它不能得到一個真正的全球運作的圖景。它無法無縫地復(fù)制交叉區(qū)域數(shù)據(jù)或在需要時快速檢索復(fù)制的數(shù)據(jù)。因此,Google的頂尖工程師找到了一種信任時間的方法。
部分秘訣是他們?yōu)镚oogle的數(shù)據(jù)中心配備了一系列GPS接收機和原子鐘。 GPS接收機,非常像手機中的GPS接收機,從全球軌道的衛(wèi)星獲取時間,而原子鐘保持自己的時間。然后,它們將時間讀數(shù)傳送到每個數(shù)據(jù)中心的主服務(wù)器。這些z主服務(wù)器不斷交換讀數(shù),努力解決共同的時間問題。
盡管仍然存在誤差范圍,但由于這么多的讀數(shù),主服務(wù)器可以引導(dǎo)一個更可靠的計時服務(wù)。 “這讓兩個地方之間的協(xié)調(diào)更快,” 前谷歌工程師Peter Mattis,他創(chuàng)建了一個初創(chuàng)公司 CockroachDB,專門建立了 Spanner 的一個開源版本。
Google 稱這種計時技術(shù)TrueTime,只有 Google 擁有它。Google 在2012 年發(fā)布的一份著名的研究論文上,Mattis 和CockroachDB 復(fù)制了 Spanner 的許多其他部分,但不是TrueTime。 Google只有因為它龐大的全球基礎(chǔ)設(shè)施才能拉開這個距離。
一個變化的世界
可以肯定的是,其他幾個人可以建立類似的服務(wù),即 Amazon 和 Microsoft。但他們還沒有。在 TrueTim e的幫助下,Spanner 為Google 提供了在多個不同市場的競爭優(yōu)勢。它不僅支持 AdWords 和 Gmail ,還支持 2,000多種其他Google 服務(wù),包括 Google 相冊和 Google Play 商店。 Google獲得了前所未有的大規(guī)模處理在線交易的能力,并且得益于 Spanner 的極端形式的數(shù)據(jù)復(fù)制,它能夠保持其服務(wù)以前所未有的一致性運行狀態(tài)。
現(xiàn)在 Google 希望在云計算市場有另一種競爭優(yōu)勢。它希望讓客戶相信,Spanner 提供了一種更簡單的方式來運行全球業(yè)務(wù),更輕松地在多個地區(qū)復(fù)制數(shù)據(jù),從而防止中斷。諷刺的是,很少有企業(yè)真正的全球化。但Google正在給它的新服務(wù)將給予客戶隨時間擴展的自由投下賭注。其中包括一家?guī)椭髽I(yè)監(jiān)督其供應(yīng)鏈的公司JDA,現(xiàn)在正在測試 Spanner。JDA 集團(tuán)副總裁 John Sarvari 表示:“數(shù)據(jù)量和數(shù)據(jù)的速度正在顯著提高。”
Spanner 也可用于金融市場,讓大銀行更有效地跟蹤和同步在全球各地發(fā)生的交易。Google 說它已經(jīng)在與大型金融機構(gòu)談?wù)撨@種事情。傳統(tǒng)上,由于安全和隱私的原因,許多銀行對處理云中的交易非常謹(jǐn)慎。但這些態(tài)度都在軟化。幾年前,Spanner 只是 Google 自己需要的東西。現(xiàn)在,Google 正在改變銀行業(yè)務(wù)。
原文:https://www.wired.com/2017/02/spanner-google-database-harnessed-time-now-open-everyone/