走近谷歌Spanner:地球上最大單一數(shù)據(jù)庫

作者:IT新聞網(wǎng) 來源:IT新聞網(wǎng) 2012-12-29 09:20:37 閱讀 我要評(píng)論 直達(dá)商品

在構(gòu)建一個(gè)既具有全球性又能保持一致性的數(shù)據(jù)中心的過程中,谷歌Spanner工程師做了一些令人完全意想不到的事情。

北京時(shí)間11月28日消息,《連線》雜志網(wǎng)絡(luò)版近日刊載文章,對(duì)全球最大的單一數(shù)據(jù)庫谷歌Spanner進(jìn)行了詳細(xì)的描述,稱其昭示著整個(gè)世界的未來發(fā)展方向。文章指出,在Spanner數(shù)據(jù)庫中,谷歌摒棄了傳統(tǒng)的“網(wǎng)絡(luò)時(shí)間協(xié)議”,轉(zhuǎn)而使用自己的時(shí)間協(xié)調(diào)機(jī)制,這個(gè)機(jī)制被稱為“TrueTime API”。谷歌在Spanner數(shù)據(jù)中心里配備了自己的原子鐘和GPS接收器,這些時(shí)間協(xié)調(diào)裝置會(huì)連接到特定數(shù)量的主服務(wù)器,然后再由主服務(wù)器向整個(gè)谷歌網(wǎng)絡(luò)中運(yùn)行的其他電腦傳輸時(shí)間讀數(shù)。

以下是這篇文章的全文:

每天早上,當(dāng)安德魯·菲克斯(Andrew Fikes)坐在美國(guó)加州山景城谷歌總部的辦公桌前時(shí),他就會(huì)打開谷歌與紐約之間的“VC”連接。

“VC”是谷歌對(duì)視頻會(huì)議(video conference)的縮寫。通過辦公桌上的電腦屏幕,菲克斯能看到威爾遜·謝(Wilson Hsieh)坐在谷歌曼哈頓辦公室里,后者也能看到菲克斯。兩人還會(huì)與谷歌在華盛頓州柯克蘭(Kirkland,靠近西雅圖)的一個(gè)辦公室建立VC連接。他們的工程團(tuán)隊(duì)跨越這個(gè)國(guó)家三個(gè)不同地區(qū)的三個(gè)辦公室,但所有人仍舊可以毫無延遲地聊天、進(jìn)行“頭腦風(fēng)暴”和互相解答疑難問題,而這就是谷歌建立Spanner數(shù)據(jù)庫的方式。

“如果你走進(jìn)我們的辦公室就會(huì)發(fā)現(xiàn),我們一直都會(huì)保持VC處于開啟狀態(tài)。”菲克斯說道,他在2001年加盟谷歌,現(xiàn)在已經(jīng)躋身于谷歌杰出的軟件工程師之列。“我們?cè)谶^去多年時(shí)間里一直都在這樣做,這就降低了一般通信方式的所有壁壘。”

這種布置是合適的。正如創(chuàng)造Spanner數(shù)據(jù)庫的工程團(tuán)隊(duì)一樣,Spanner覆蓋全球,但其運(yùn)作卻像是完全在同一個(gè)地方發(fā)生的。在經(jīng)歷了多年的暗示和傳言以后,Spanner終于在今年秋天出現(xiàn)在公眾視線里,它是第一個(gè)有資格“有名有姓”的全球數(shù)據(jù)庫——其目的是在數(shù)以百計(jì)的數(shù)據(jù)中心、成百萬的電腦和數(shù)萬億計(jì)行信息之間無縫運(yùn)作。

Spanner是一個(gè)如此龐大的創(chuàng)造產(chǎn)物,以至于有些人很難真正去了解它。但是,它所帶來的最終結(jié)果是很容易說明的:通過Spanner,谷歌能向全球受眾提供網(wǎng)絡(luò)服務(wù),但仍可確保正在世界某個(gè)地區(qū)中發(fā)生在這項(xiàng)服務(wù)中的事情不會(huì)與發(fā)生在另一個(gè)地區(qū)的事情相抵觸。

這個(gè)新時(shí)代的谷歌數(shù)據(jù)庫已經(jīng)成為該公司在線廣告系統(tǒng)的一部分——這個(gè)系統(tǒng)能給谷歌帶來龐大的收入——可能預(yù)示著網(wǎng)絡(luò)的其他部分將走向何處。當(dāng)谷歌在9月中旬發(fā)布研究報(bào)告來對(duì)Spanner作出詳細(xì)描述時(shí),整個(gè)世界都為之震動(dòng);幾個(gè)星期以后,當(dāng)威爾遜·謝在加州好萊塢的一次會(huì)議上演示這份研究報(bào)告的內(nèi)容時(shí),在中堅(jiān)電腦系統(tǒng)工程師中引發(fā)的熱議也是明顯可見的。

“這當(dāng)然是很有趣的一件事情。”為Facebook網(wǎng)站提供支持的大型軟件平臺(tái)的主要工程師之一羅谷·默蒂(Raghu Murty)說道——但他補(bǔ)充稱,F(xiàn)acebook尚未探索實(shí)際構(gòu)建類似數(shù)據(jù)庫的可能性。

谷歌的網(wǎng)絡(luò)業(yè)務(wù)比大多數(shù)公司的同類業(yè)務(wù)都要復(fù)雜得多,而且這家公司還被迫構(gòu)建遠(yuǎn)遠(yuǎn)超出大多數(shù)網(wǎng)絡(luò)公司范疇的定制化軟件。但隨著互聯(lián)網(wǎng)的增長(zhǎng),谷歌創(chuàng)造的產(chǎn)品經(jīng)常都會(huì)對(duì)世界其他部分造成“涓滴效應(yīng)”。

在谷歌公布Spanner數(shù)據(jù)庫的細(xì)節(jié)以前,許多人甚至都不認(rèn)為這是可能做到的事情。沒錯(cuò),我們已經(jīng)擁有了能在多個(gè)數(shù)據(jù)中心之間存儲(chǔ)信息的“NoSQL”數(shù)據(jù)庫,但這些數(shù)據(jù)庫不能在保持信息“一致”——意味著在世界一端的數(shù)據(jù)中心里瀏覽數(shù)據(jù)的人所看到的東西與另一端的人看到的東西完全相同——的情況下做到跨數(shù)據(jù)中心存儲(chǔ)。人們?cè)緦?duì)此作出的假設(shè)是,之所以不能做到這種“一致”性,是因?yàn)樵跀?shù)據(jù)中心之間傳遞信息存在固有的延遲。

但在構(gòu)建一個(gè)既具有全球性又能保持一致性的數(shù)據(jù)中心的過程中,谷歌Spanner工程師做了一些令人完全意想不到的事情,而這也恰恰符合他們經(jīng)常都會(huì)出人意料的過往歷史。這個(gè)團(tuán)隊(duì)的成員不僅包括菲克斯和威爾遜·謝,同時(shí)還包括傳奇性的谷歌人物杰夫·迪恩(Jeff Dean)和桑杰伊·格馬瓦特(Sanjay Ghemawa)以及其他很多工程師,這些工程師都曾致力于開發(fā)開創(chuàng)性的數(shù)據(jù)中心平臺(tái),如Megastore和Dremel等。

而這一次,他們找到了一種讓時(shí)間保持一致的新方法。

“作為一名分布式系統(tǒng)開發(fā)者,你會(huì)受到這樣的教育——我想說的是,從孩提時(shí)代就開始受到這種教育——那就是不要相信時(shí)間。”菲克斯說道。“我們所做的事情就是找到一種方法來讓我們能相信時(shí)間——以及理解相信時(shí)間意味著什么。”

時(shí)間是極其重要的

在網(wǎng)絡(luò)上,時(shí)間是極其重要的。沒錯(cuò),當(dāng)運(yùn)行一項(xiàng)大型網(wǎng)絡(luò)服務(wù)時(shí),你需要事情迅速地發(fā)生。但你還需要一種精確追蹤許多電腦的時(shí)間的方法,這些電腦為你的服務(wù)提供支持。你必須同步在每臺(tái)服務(wù)器上運(yùn)行的許多進(jìn)程,而且還必須對(duì)服務(wù)器本身進(jìn)行同比,這樣一來它們才能協(xié)同運(yùn)作。而想要做到這一點(diǎn)可謂“知易行難”。

通常情況下,數(shù)據(jù)中心運(yùn)營(yíng)商會(huì)使用所謂的“網(wǎng)絡(luò)時(shí)間協(xié)議”(Network Time Protocol,NTP)來保持服務(wù)器的的同步,這從本質(zhì)上來說是一種將電腦與官方原子鐘聯(lián)系到一起的在線服務(wù),從而讓全世界各地組織的時(shí)間保持一致。但是,由于在一個(gè)網(wǎng)絡(luò)中傳輸信息需要時(shí)間的緣故,這種方法從來都無法做到完全精確,而且有些時(shí)候還會(huì)完全失效。在今年7月份,幾家主要的網(wǎng)絡(luò)公司——包括Reddit、Gawker和Mozilla等——就遭遇了問題,原因是其軟件沒有做好應(yīng)對(duì)“閏秒”(為保持協(xié)調(diào)世界時(shí)接近于世界時(shí)時(shí)刻,由國(guó)際計(jì)量局統(tǒng)一規(guī)定在年底或年中對(duì)協(xié)調(diào)世界時(shí)增加或減少1秒的調(diào)整)的準(zhǔn)備。

但在Spanner數(shù)據(jù)庫中,谷歌摒棄了“網(wǎng)絡(luò)時(shí)間協(xié)議”,轉(zhuǎn)而使用自己的時(shí)間協(xié)調(diào)機(jī)制,這個(gè)機(jī)制被稱為“TrueTime API”。“我們想要一種能讓自己信得過的東西。”菲克斯說道。“那就是谷歌自己擁有的時(shí)間基準(zhǔn)。”

谷歌沒有依靠外部時(shí)鐘,而是在其Spanner數(shù)據(jù)中心里配備了自己的原子鐘和GPS(全球定位系統(tǒng))接收器,這與你iPhone中的應(yīng)用是不一樣的。通過環(huán)繞地球進(jìn)行軌道運(yùn)行的衛(wèi)星所構(gòu)成的網(wǎng)絡(luò),GPS接收器不僅可以精確找到你所在的位置,而且還能精確報(bào)時(shí)。

這些時(shí)間協(xié)調(diào)裝置會(huì)連接到特定數(shù)量的主服務(wù)器,然后再由主服務(wù)器向整個(gè)谷歌網(wǎng)絡(luò)中運(yùn)行的其他電腦傳輸時(shí)間讀數(shù);旧蟻碚f,谷歌網(wǎng)絡(luò)中的每臺(tái)電腦都會(huì)運(yùn)行一個(gè)后臺(tái)程序,這個(gè)程序會(huì)不斷地與同一個(gè)數(shù)據(jù)中心及其他谷歌數(shù)據(jù)中心的主服務(wù)器進(jìn)行聯(lián)系,試圖達(dá)成協(xié)調(diào)一致的時(shí)間。通過這種方式,整個(gè)谷歌網(wǎng)絡(luò)中的電腦都會(huì)相當(dāng)接近于運(yùn)行一個(gè)通用時(shí)鐘。

系統(tǒng)做出回應(yīng),而非人類

這種方法是如何引導(dǎo)一個(gè)全球數(shù)據(jù)庫的呢?這要感謝TrueTime服務(wù),這種服務(wù)讓谷歌得以將許多電腦保持同步——即使這些電腦是分布在多個(gè)數(shù)據(jù)中心里的——這意味著它們能迅速存儲(chǔ)和檢索數(shù)據(jù),而不會(huì)互相踩到對(duì)方的“腳趾”。

“我們能在兩個(gè)不同的地方交付數(shù)據(jù)——比如說美國(guó)西海岸和歐洲——而這兩個(gè)地方之間仍舊存在某種商定的定序。”菲克斯說道。“因此,如果美國(guó)西海岸地區(qū)首先交付數(shù)據(jù),然后歐洲地區(qū)再交付,那么整個(gè)系統(tǒng)都會(huì)知道這個(gè)順序——然后就不會(huì)出現(xiàn)數(shù)據(jù)以截然不同的順序被查看的可能。”

根據(jù)安迪·格羅斯(Andy Gross)——他是數(shù)據(jù)存儲(chǔ)和管理軟件創(chuàng)業(yè)企業(yè)Basho的主架構(gòu)師,該公司開發(fā)了一個(gè)名為Riak的開源數(shù)據(jù)庫,目的是在數(shù)千個(gè)服務(wù)器之間運(yùn)行——的說法,數(shù)據(jù)庫設(shè)計(jì)人員通常都會(huì)尋求讓計(jì)算機(jī)彼此之間進(jìn)行“對(duì)話”,從而實(shí)現(xiàn)信息的同步化。“你必須進(jìn)行一大堆的通信,來判定所有信息處理的正確順序。”他在今天秋天接受《連線》雜志采訪時(shí)說道,當(dāng)時(shí)谷歌剛剛對(duì)外發(fā)布了Spanner的細(xì)節(jié)。

問題在于,這種通信能讓整個(gè)網(wǎng)絡(luò)都陷入停頓狀態(tài)——數(shù)據(jù)庫也是如此。正如麥克斯希雷森(Max Schireson)——他是大數(shù)據(jù)公司10gen的總裁,這家公司開發(fā)了NoSQL數(shù)據(jù)庫MongoDB——對(duì)我們所說的那樣:“如果有大量用戶同時(shí)接入大量分布在全球的系統(tǒng),那么這些系統(tǒng)之間的通信延遲時(shí)間會(huì)是相當(dāng)長(zhǎng)的,讓所有事情都同步起來就會(huì)變得非常困難。如果這些要素的數(shù)值提高,那么就會(huì)變得更加困難。”

因此,谷歌就采取了一種完全不同的道路。谷歌沒有竭力試圖改善服務(wù)器之間的通信方式,而是給它們帶來了一種新的報(bào)時(shí)方法。“這可能是(谷歌研究)報(bào)告的最酷的一件事情:使用原子鐘和GPS來提供一個(gè)時(shí)間API(應(yīng)用程序接口)。”Facebook的默蒂說道。

在控制時(shí)間的問題上,谷歌不僅能構(gòu)建一個(gè)同時(shí)具有全球性和時(shí)間一致性的數(shù)據(jù)庫,同時(shí)還能讓其服務(wù)在網(wǎng)絡(luò)延遲、數(shù)據(jù)中心宕機(jī)及其他軟件和硬件故障的面前變得更加具有抵抗力。從基本上來說,谷歌是利用Spanner來精確復(fù)制多個(gè)數(shù)據(jù)中心之間的數(shù)據(jù),然后迅速地在各個(gè)數(shù)據(jù)副本之間“穿梭”。換而言之,這些數(shù)據(jù)副本也同樣具有一致性。

當(dāng)一個(gè)數(shù)據(jù)副本不可用時(shí),Spanner能迅速轉(zhuǎn)向另一個(gè)副本。但是,Spanner也會(huì)在不同副本中“穿梭”,目的只是為了改善其表現(xiàn)。“如果你擁有一個(gè)數(shù)據(jù)副本,而這個(gè)副本變得忙碌,那么網(wǎng)絡(luò)延遲就會(huì)變得很高;但如果你還擁有其他四個(gè)副本,那么就能選擇轉(zhuǎn)到另一個(gè)副本,從而減少延遲。”菲克斯說道。

菲克斯表示,這樣做的結(jié)果之一是,谷歌花在管理自身系統(tǒng)上的費(fèi)用有所減少。“從某種程度上來說,當(dāng)一個(gè)服務(wù)器宕機(jī)時(shí),我們只需要轉(zhuǎn)到系統(tǒng)中其他服務(wù)器的客戶端電腦即可。”他說道。“這是一種簡(jiǎn)單得多的服務(wù)……做出回應(yīng)的是系統(tǒng)本身,而不是人類。”

追隨谷歌的步伐

有些人會(huì)懷疑,其他公司是否也會(huì)追隨谷歌的步伐——以及它們是否想要這樣做。當(dāng)我們與格羅斯交談時(shí),他猜測(cè)甚至就連谷歌原子鐘和GPS接收器也將由于成本過高而不適用于大多數(shù)公司。

沒錯(cuò),重新構(gòu)建平臺(tái)將是一項(xiàng)龐大的任務(wù)。谷歌在這個(gè)項(xiàng)目上已經(jīng)花費(fèi)了四年半時(shí)間,菲克斯——他幫助構(gòu)建了谷歌的網(wǎng)絡(luò)歷史工具、第一項(xiàng)產(chǎn)品搜索服務(wù)以及Google Answers和BigTable——將Spanner稱為他曾從事開發(fā)過的最困難的東西。另外,還有數(shù)不清的后勤相關(guān)事務(wù)需要處理。

正如菲克斯所指出的那樣,谷歌不得不在其數(shù)據(jù)中心的屋頂上安裝GPS天線,并將這些天線與數(shù)據(jù)中心內(nèi)部的硬件連接起來。而且,你還需要兩種不同類型的時(shí)間協(xié)調(diào)器。硬件經(jīng)常都會(huì)出故障,而時(shí)間協(xié)調(diào)器也同樣會(huì)在不同的時(shí)候發(fā)生故障。“原子鐘會(huì)在GPS出問題時(shí)提供穩(wěn)定性。”他說道。

但據(jù)菲克斯稱,這些設(shè)備相對(duì)來說都不算貴。GPS接收器當(dāng)然不會(huì)像iPhone里的裝置那樣便宜,但跟谷歌的原子鐘一樣,這種設(shè)備的單價(jià)不會(huì)超過幾千美元。“這些設(shè)備從某種程度上來說符合企業(yè)級(jí)服務(wù)器的成本序列。”他說道。“而且有許多供應(yīng)商都會(huì)提供這些設(shè)備。”當(dāng)我們與迪恩——他是谷歌主要的架構(gòu)工程師之一,同時(shí)也是Spanner報(bào)告的另一名作者——討論此事時(shí),他也作出了幾乎相同的回答。

菲克斯還指出,TrueTime服務(wù)并不需要配備專門的服務(wù)器。時(shí)間協(xié)調(diào)器就放置在服務(wù)器機(jī)架上,而且只需要與數(shù)據(jù)中心里的某些服務(wù)器連接起來即可。

“你可以認(rèn)為,每個(gè)數(shù)據(jù)中心里僅有少量的此類設(shè)備。它們的外形就像盒子一樣,你可以購買這些設(shè)備,然后將其插入服務(wù)器機(jī)架,通過以太網(wǎng)將其與服務(wù)器連在一起。”菲克斯說道。“需要考慮的一件重要的事情是,這是一種向數(shù)據(jù)中心提供的服務(wù),其成本會(huì)平攤在所有的服務(wù)器中。每臺(tái)服務(wù)器的成本都是某個(gè)增量的數(shù)字——你需要權(quán)衡的就是這種成本與我們能利用其所做到的事情。”

Spanner并非當(dāng)今所有網(wǎng)站都需要的東西,但整個(gè)世界都正朝著它的方向發(fā)展。雖然Facebook尚未探索開發(fā)類似于Spanner的數(shù)據(jù)庫,但該公司正在構(gòu)建一個(gè)名為Prism的平臺(tái),這個(gè)平臺(tái)將負(fù)責(zé)運(yùn)行該公司在多個(gè)數(shù)據(jù)中心龐大的數(shù)據(jù)運(yùn)算任務(wù)。

沒錯(cuò),谷歌的廣告系統(tǒng)是很龐大,但這個(gè)系統(tǒng)得益于Spanner數(shù)據(jù)庫,而且在某種程度上來說也會(huì)讓許多其他網(wǎng)絡(luò)服務(wù)從中受益。谷歌廣告系統(tǒng)是一個(gè)在線拍賣平臺(tái)——廣告主需要進(jìn)行競(jìng)價(jià)來顯示自己的廣告,用戶則將在搜索某一特定物品或訪問特定網(wǎng)站時(shí)看到這些廣告——每一則廣告的出現(xiàn)都有賴于描述大量廣告主和網(wǎng)民行為的數(shù)據(jù)。通過Spanner,谷歌可以在全球范圍內(nèi)處理這種數(shù)據(jù),同時(shí)仍可保持整個(gè)系統(tǒng)的同步性。

正如菲克斯所說,Spanner只是谷歌利用其控制時(shí)間的新方法的第一個(gè)范例。“我預(yù)計(jì),未來還將出現(xiàn)許多其他服務(wù)。”他說道。菲克斯的意思是指其他的谷歌服務(wù),但既然這家公司現(xiàn)在已經(jīng)將其Spanner報(bào)告與整個(gè)世界都進(jìn)行了共享,那么它這樣做必然是有理由的。


  推薦閱讀

  淘寶京東兩大物流模式比拼:自提成未來戰(zhàn)場(chǎng)

快件自提是滿足消費(fèi)者對(duì)于電商配送個(gè)性化需求的形式之一,其市場(chǎng)潛力較大,“無論自建物流體系還是社會(huì)化物流,采用自提點(diǎn)模式解決最后一公里難題,需要的是以時(shí)間進(jìn)行布局和轉(zhuǎn)變消費(fèi)者的觀念”。 民營(yíng)快遞在中航協(xié)的>>>詳細(xì)閱讀


本文標(biāo)題:走近谷歌Spanner:地球上最大單一數(shù)據(jù)庫

地址:http://www.sdlzkt.com/a/guandian/yejie/20121229/109411.html

樂購科技部分新聞及文章轉(zhuǎn)載自互聯(lián)網(wǎng),供讀者交流和學(xué)習(xí),若有涉及作者版權(quán)等問題請(qǐng)及時(shí)與我們聯(lián)系,以便更正、刪除或按規(guī)定辦理。感謝所有提供資訊的網(wǎng)站,歡迎各類媒體與樂購科技進(jìn)行文章共享合作。

網(wǎng)友點(diǎn)評(píng)
我的評(píng)論: 人參與評(píng)論
驗(yàn)證碼: 匿名回答
網(wǎng)友評(píng)論(點(diǎn)擊查看更多條評(píng)論)
友情提示: 登錄后發(fā)表評(píng)論,可以直接從評(píng)論中的用戶名進(jìn)入您的個(gè)人空間,讓更多網(wǎng)友認(rèn)識(shí)您。
自媒體專欄

評(píng)論

熱度

主站蜘蛛池模板: 国产成人污污网站在线观看| 成人动漫综合网| 中文国产成人久久精品小说| 亚洲精品成人网久久久久久| 青青草国产成人久久91网| 狠狠色成人综合首页| 国产成人综合欧美精品久久| 国产91成人精品亚洲精品| 亚洲欧美成人中文日韩电影| 欧美成人看片一区二区三区 | 欧美e片成人在线播放乱妇| 成人亚洲欧美激情在线电影| 国产成人精选免费视频| 久久久久99精品成人片直播 | www国产成人免费观看视频| 国产精品成人一区二区三区 | 亚洲精品国产成人片| 国产成人综合欧美精品久久| 欧美日韩视频在线成人| 免费无码成人AV在线播放不卡| 日韩国产成人无码AV毛片| 国产成人亚综合91精品首页| 成人午夜性影院视频| 成人污视频在线观看| 久久久久久亚洲精品成人| 亚洲精品成人片在线观看精品字幕| 国产成人精品永久免费视频| 成人免费看www网址入口| 欧美成人免费观看| 欧美成人性动漫在线观看| 九九精品免视看国产成人| 国产成人av区一区二区三| 国产成人欧美一区二区三区vr| 国产成人高清亚洲一区app| 国产精品成人va在线观看入口 | 欧美成人午夜影院| 欧美成人影院在线观看三级| 91亚洲国产成人久久精品网站 | 久久成人免费大片| 欧美成人午夜免费完成| 无码成人AAAAA毛片|