【編者按】MapReuce、Google File System、Bigtable、Percolator、Pregel、Dremel、Spanner,近十年Google為業(yè)界貢獻(xiàn)了大量影響深遠(yuǎn)的論文,也催生了許多優(yōu)秀的開源產(chǎn)品,其中Hadoop、HBase更成為大數(shù)據(jù)處理、儲存的通用平臺。近日,Google的一批前員工,以蟑螂為項目命名,旨在建立Spanner的精簡開源版本,然而他們的時間似乎并沒有那么寬裕。
免費訂閱“CSDN大數(shù)據(jù)”微信公眾號,實時了解最新的大數(shù)據(jù)進(jìn)展!
CSDN大數(shù)據(jù),專注大數(shù)據(jù)資訊、技術(shù)和經(jīng)驗的分享和討論,提供Hadoop、Spark、Imapala、Storm、HBase、MongoDB、Solr、機(jī)器學(xué)習(xí)、智能算法等相關(guān)大數(shù)據(jù)觀點,大數(shù)據(jù)技術(shù),大數(shù)據(jù)平臺,大數(shù)據(jù)實踐,大數(shù)據(jù)產(chǎn)業(yè)資訊等服務(wù)。
以下為譯文:
蟑螂是這個地球上生命力最強(qiáng)的生物之一。沒有空氣情況下可以存活45分鐘,沒有食物時甚至可以存活超過一個月。砍下頭顱都不能殺死它們,至少不是立刻死亡,它們在沒有頭的情況下還能存活好幾天。
在Google、亞馬遜以及Facebook等科技巨人里面,工程師們先進(jìn)的技術(shù)同樣是在幫助它們網(wǎng)站不那么容易被停掉。他們必須做到,在一個/多個服務(wù)器,甚至整個數(shù)據(jù)中心丟失的情況下,站點仍然能繼續(xù)運(yùn)轉(zhuǎn)。這個至關(guān)重要,因為每一秒的停機(jī)時間都意味著巨額收入損失。
Google、亞馬遜以及Facebook等科技巨人,工程師們革新的技術(shù)同樣幫助網(wǎng)站不那么容易被停掉。
現(xiàn)在,一個開源的開發(fā)團(tuán)隊希望讓所有的公司都能夠很容易的構(gòu)建這種適應(yīng)力強(qiáng)大的云計算系統(tǒng),這樣就可以像Google一樣運(yùn)行在線系統(tǒng)了。他們將這個項目叫做 CockroachDB,將它宣傳為一個能夠持久運(yùn)行的數(shù)據(jù)庫。對軟件來說這個名字聽起來有些古怪,但是Spencer Kimball(創(chuàng)始合伙人,Google前工程師)認(rèn)為它非常合適,“這個名字代表了它的非常重要的兩個特性:當(dāng)然有殘存性,還有基本上能夠自發(fā)地擴(kuò)展到可用的硬件。”
跟很多其他的設(shè)計用來驅(qū)動大型在線操作的開源項目類似,CockroachDB同樣基于Google的大數(shù)據(jù)論文―― Spanner。Spanner是一個影響廣泛的軟件,最終允許Goolge 在全世界范圍內(nèi)上百個數(shù)據(jù)中心的數(shù)以百萬計的服務(wù)器間傳播數(shù)據(jù),Google花費了不止5年的時間來構(gòu)建它。即使已經(jīng)有Google的論文,CockroachDB的程序員仍然有很多的工作要面對,這是一個很偉大的藍(lán)圖。
散布各地的Google前雇員
截至當(dāng)下,這個項目還在“alpha”開發(fā)階段,遠(yuǎn)遠(yuǎn)沒有準(zhǔn)備好用作產(chǎn)品服務(wù)。Spanner作為計算歷史上讓人印象最為深刻的系統(tǒng)之一,如果真能得到開源實現(xiàn),或許就只有CockroachDB團(tuán)隊了。他們中相當(dāng)一部分是Google前工程師,即使不是Spanner項目組成員。Kimball 和Peter Mattis,作為Photoshop的開源替代品GIMP的創(chuàng)始合伙人,幫助創(chuàng)立了Google的大文件存儲系統(tǒng) Colossus。Ben Darnell在Google Reader工作過,Andy Bonventre則曾經(jīng)為Chrome和Google Tasks工作過。
團(tuán)隊中的大部分成員現(xiàn)在為支付新貴Square(Viewfinder被收購后)工作,包括including Kimball、Andy Kimball、Darnell、Mattis以及 Shawn Morel。但是Kimball指出Square不支持CockroachDB。他和他的同事只能利用業(yè)余時間在開發(fā)。有些人,比如Bonventre和Tobias Schottdorf,則非Square員工。
只在晚上以及周末來重構(gòu)Spanner聽起來有點天方夜譚了,即使是地球上最好的工程師。然而,并不是每一個公司都需要達(dá)到Google的級別,但是Kimball指出Viewfinder團(tuán)隊已經(jīng)使用了一些Google的技術(shù),在Square漸入佳境并且很快就能派上用場。并且因為在市場上還沒有類似Spanner的產(chǎn)品,Kimball和他們的公司才下決心自己創(chuàng)建它。
CockroachDB并不試圖復(fù)制Spanner最引人注目的部分――使用原子鐘(atomic clock)來同步跨全球網(wǎng)絡(luò)的數(shù)據(jù)中心的時間。考慮到大部分的在線運(yùn)營商不太可能達(dá)到Google的規(guī)模(同時運(yùn)行成千上萬的服務(wù)器),他們并不需要這個。Kimball指出,這些公司實際需要一種非常可靠的方式用來自動在不同的數(shù)據(jù)中心間復(fù)制信息,以保證某個數(shù)據(jù)中心丟失不會造成服務(wù)中斷,這樣一來,服務(wù)就像還在那個地方運(yùn)行一樣,這就是CockroachDB旨在提供的功能。
更大的表
Spanner是另一個Google數(shù)據(jù)庫BigTable的繼任者,它打破了數(shù)據(jù)庫行業(yè)的很多悠久的傳統(tǒng),開辟了新的途徑來創(chuàng)立高度可縮放的軟件。Google在2006年發(fā)表了一個關(guān)于BigTable的白皮書之后,它的想法很快被開源克隆所采用,比如 Cassandra和 Hbase迅速成為一些公司的核心技術(shù),像Facebook、Twitter和Netflix,開啟了所謂“NoSQL”的改革浪潮。
但是當(dāng)NoSQL數(shù)據(jù)庫幫助公司將信息存儲到大量的機(jī)器上時,也在某些方面制造了一些麻煩。像BigTable這個數(shù)據(jù)庫就犧牲了一致性這個古老的數(shù)據(jù)庫概念,這是指當(dāng)你在數(shù)據(jù)庫的某一個部分做修改時,無須關(guān)心另一個部分在做什么。
問題是當(dāng)數(shù)據(jù)庫就運(yùn)行在一臺機(jī)器上時,一致性是相當(dāng)容易的,但是當(dāng)規(guī)模擴(kuò)大并擴(kuò)展到不同的數(shù)據(jù)中心時,一致性就變得更加困難了。對很多應(yīng)用來說,比如即時消息,這不是一個大問題。但是如果你做些類似于在線銀行的事情,這就是個很大的問題了。數(shù)據(jù)庫的一部分可能會認(rèn)為某人的帳戶上有很多的錢,沒有意識到所有的錢已經(jīng)在另一部分被取走了。另外,缺少一致性,當(dāng)部分?jǐn)?shù)據(jù)庫出現(xiàn)故障了也會引起問題。Spanner解決了這些問題,CockroachDB追隨了它的腳步。
與蟑螂一樣的生命力
Spanner在不犧牲性能的同時保證了跨數(shù)據(jù)中心的一致性。另外通過F1,使得公司可以使用標(biāo)準(zhǔn)的SQL語句查詢數(shù)據(jù)庫(通用語就是信息檢索)。盡管運(yùn)行了成千上萬的服務(wù)器,Spanner數(shù)據(jù)庫就像是在一臺單獨的機(jī)器上運(yùn)行一樣。如果數(shù)據(jù)中心故障了,應(yīng)用可以通過簡單的ping另一個數(shù)據(jù)中心來獲取需要的信息,因為所有的數(shù)據(jù)是跨數(shù)據(jù)中心無縫同步。CouchroachDB可以做一些類似的事情,盡管沒有原子鐘,它可能沒有那么快完成或者同步那么多數(shù)據(jù)。
Kimball和他的同事的目標(biāo)是創(chuàng)建些比Google的產(chǎn)品更容易建立的東西,Google的基礎(chǔ)項目傾向于相互依賴。Spanner 需要Colossus,而Colossus也需要稱之為Chubby的維護(hù)系統(tǒng)。但是CockroachDB的目標(biāo)是創(chuàng)建一個獨立的系統(tǒng),它不需要依靠某些特定的文件系統(tǒng)或者文件管理器。這個團(tuán)隊同樣計劃添加F1這個SQL查詢工具到這個項目。Kimball指出如果亞馬遜或者其他的云主機(jī)公司開始添加原子鐘到他們的數(shù)據(jù)中心,CockroachDB最終也可以利用起來。
Kimball指出,如果這個數(shù)據(jù)庫最終超越了一些有內(nèi)部資源來管理的大公司,一些商業(yè)公司將需要為軟件提供支持。但是Kimball也指出需要早點考慮這個問題。如果這些確實發(fā)生了,這個計劃是否需要尋找一個更好聽的名字呢?Kimball不這樣認(rèn)為。“人們更容易記住一些帶有強(qiáng)烈正面或者負(fù)面情緒的東西,這個已經(jīng)得到了證明。”他說,“我也想找到一個帶有超強(qiáng)正面情緒沖擊的名字,但是我沒有找到,“RainbowDB”聽起來就很沒勁。
原文鏈接: http://www.wired.com/2014/07/cockroachdb/(翻譯/海霞 責(zé)編/仲浩)