精選文章

[企業儲存觀察室] 2019 年企業資料儲存技術觀察點

一如過往的這些年,在 2019 年我們將不會看到里程碑式的關鍵新技術出現,而是現有技術的自然演化或升級,或是在企業環境應用上的適化。 長遠來看,隨著企業 IT 環境的成熟與實用化,在未來我們將很難再看到會促使(逼迫)大量企業用戶為升級而採用的「殺手級」應用技術的出現。 這其...

2011年5月3日

[技術] Google 的 Megastore,網際網路的全球儲存系統

很多人很好奇 Google 是如何處理他那個跨全球的儲存系統的?在一份標題為 Megastore: Providing Scalable, High Available Storage for Interactive Services (pdf) 的文件中,Google 的工程師們描述了這個全球儲存系統的技術概觀。這個文件給了一個概略性的輪廓,雖然沒有很詳細的技術細節(這是當然的啦,那是 Google 的專利),但其實也算是夠技術性的內容了,不過並不容易讀懂。

Google 的 Megastore 每天處理 30 億筆的資寫入與 200 億筆的資料讀取,8 PB 的資料儲存在跨全球的網路上,支援 Google Apps 數百萬的使用者。Megastore 的任務是用來支援網際網路應用,例如 Google 的 AppEngine;具有極佳的擴充性以支援到數百萬個使用者;在網際網路上的回應時間短;對開發人員來說,它很容易使用;有彈性的錯誤處理,可以處理從磁碟機到資料中心故障;並且具有在不同位置的低延遲同步複製能力。

每一個儲存實體會在廣域網路上進行同步的複製,儲存實體夠大,所以很少會需要 two-phase commit,但儲存實體也夠小,所以可以保持低的交易率;例如,一個電子郵件的帳戶就是一個自然的儲存實體。只有在儲存實體間的 ACID 交易會被複製,以取代跨網路進行交易。

ISO 定義的交易具有原子性 Atomicity、一致性 Consistency、隔離性 Isolation、與持久性 Durability,也就是 ACID 交易,Google 使用的這種方式,比傳統上的 two-phase commit 成本要來得低。

為了達成可用性與全球規模,Megastore 的設計者部署了兩個關鍵性的特性,從可用性來說,一個非同步的複製記錄檔被最佳化成適合進行長距離的傳輸;從規模來看,資料被分割成小型的資料庫,每一個都擁有自己的複製記錄檔。Google 使用 Paxos 演算法來管理非同步的複製,再加上一些 Goolge 發展的最佳化技術,這些技術包括以快速讀取、快速寫入、見證者副本、與唯讀副本等。

因為 Megastore 在地理上是分散的,在不同地點的應用伺服器可能會同時一些儲存實體群組啟動寫入要求,而只有一個寫入要求會成功,其他的寫入就要重試了。看的不是很懂嗎?有興趣的讀者可以下載該分文件來研讀一下!