Monday, 24 December 2012

透視Google資料庫全球同步的祕密:Google Spanner系統(下)

Basho公司製造名為Riak的開源碼資料庫,運作時可橫跨數千部伺服器,該公司主要工程師葛洛斯(Andy Gross)指出,為了讓資訊同步,資料庫設計師通常會要求機器相互溝通,他在Spanner系統剛發表時表示,「機器必須大量反覆溝通,才可判斷所有交易的正確順序。」

問題在於,溝通過程會拖累網絡及資料庫,NoSQL資料庫MongoDB的開發商10gen老闆施藍森(Max Schireson)指出,「若許多人存取散布世界的大量系統,通訊遲滯會相對明顯,也就很難維持同步,若再增加其他因素,難度會更高。」

因此Google採取完全不同的路徑,與其盡力改善伺服器之間的通訊情況,不如提供新計時方式,墨西表示,「這應該是通篇報告最驚人的內容,藉由原子鐘與全球定位系統,製作定時應用程式介面。」

只要掌握時間,Google就能建造串連全球一致的資料庫,縱然發生網路遲滯、資料中心斷電及其他軟硬體災害,服務應變能力也會更好,Google運用Spanner正確複製資料至多座資料中心,並依據需求迅速傳輸複本,換言之,複本也會保持一致。

若無法存取某一複本,Spanner會迅速轉向其他複本,也會穿梭於各個複本之前,以提升系統表現。費克斯表示,「若只有一個複本,存取頻率高就會增加潛在因素,但若另有四個複本,就能選擇分散流量,進而降低潛在因素。」

費克斯指出,其中一項效果為減少Google系統管理支出,「若發生斷電問題,客戶機組可轉而存取其他伺服器,由系統反應,而非人類,服務也變得更簡單。」

有些人質疑,其他企業是否能夠(或想要)仿效Google的運作模式,葛洛斯認為,原子鐘與全球定位系統接收器組合對多數企業而言太過昂貴。

要模仿這套平台,恐怕沒那麼容易,Google已在此投入四年半時間,費克斯先前協助建立該公司網路使用記錄工具、首部產品搜尋服務、Google Answers、BigTable,亦認為Spanner是目前為止最困難的計畫,更何況還得處理無數後勤問題。

一如費克斯指出,Google得在資料中心屋頂安裝全球定位系統天線,再連結至內部硬體,還需要兩套不同的計時系統,硬體總會失靈,而計時系統不能同時失靈,「若全球定位系統出問題,原子鐘還能穩住陣腳。」

不過費克斯亦提到,市面上另有相對平價的裝置,雖然全球定位系統比各位手中iPhone的版本昂貴,但每件也和原子鐘一樣,成本約數千美元,他表示,「成本大約和企業伺服器類似,且這些裝置還有許多不同廠商」;同樣參與Spanner報告的迪恩說法也相同。

費克斯另表示,TrueTime服務不需搭配特殊伺服器,計時器安裝於伺服器旁,也只需連結至資料中心內部分機組。

他指出,「想像計時裝置是每座資料中心裡的一部分,每套成盒裝,買下後連結至系統,再串連至乙太網路,這是資料中心內部服務,成本分攤至所有伺服器,則每部伺服器外加成本其實不高,更不上能夠發揮的效果。」

Spanner並非當今所有網站必備項目,但世界確實朝此方向發展,雖然Facebook尚未開發近似Spanner的系統,也正在打造名為Prism的軟體平台,能夠橫跨多座資料中心分析龐大數據。

Google的廣告系統確實巨大,並因為Spanner獲益,許多網路服務亦可從中得利,這套廣告系統為網路拍賣制度,供廣告商競標某些搜尋詞彙或某些網站的版面刊登權,而刊登機制則源於無數廣告商及用戶的網路使用行為;有了Spanner之後,Google可匯整全球資料,並維持系統同步運作。

如費克斯所言,Google未來將盡力運用新計時方式,Spanner只是第一步,「我相信還會出現諸多服務」,但該公司選在此時將Spanner報告公諸世人面前,肯定有原因。

 

延伸閱讀:透視Google資料庫全球同步的祕密:Google Spanner系統(上)



from WIRED.tw http://wired.tw/2012/12/25/google-spanner-time-2/index.html