本節將介紹Megastore在Google中實際應用的情況及系統出現錯誤時的一些控制措施。
Megastore在Google中已經部署和使用了若干年,有超過100個產品使用Megastore作為其存儲系統。圖2-28顯示了這些產品可用性的分布情況,從圖中可以看出,絕大多數產品具有極高的可用性(>99.999%)。這表明Megastore系統的設計是非常成功的,基本達到了預期目標。
圖2-29是產品延遲情況的分布,根據數據中心的距離和寫入數據的大小,應用程序的平均讀取延遲在萬分之一毫秒之內,平均寫入延遲在100至400毫秒之間。
當某個完整副本忽然變的不可用或失去連接時,為了避免Megastore的性能下降,可釆取以下三種應對方法。
(1)通過重新選擇路由使客戶端繞開出現問題的副本,這是最重要的一種錯誤處理機制。
(2)將出現問題副本上的協調者禁用,確保問題的影響降至最小。
(3)禁用整個副本,這是最嚴厲的一種手段,但是這種方法比較少使用。

一般來說,出現錯誤之后,上述三種方法可能會結合起來使用,而不是僅僅使用某種方法。
本節主要介紹了Megastore的設計思想以及核心的技術手段,其中很多內容對于設計NoSQL存儲系統是有借鑒意義的。但需要跟讀者指出的是:Megastore已經是Google相對過時的存儲技術。Google目前正在使用的存儲系統是Spanner架構,Spanner的設計目標是能夠控制一百萬到一千萬臺服務器租用,Spanner最強大之處在于能夠在50毫秒之內為數據傳遞提供通道——即使這兩個數據中心分布于地球的兩端。相信在不久之后G00gle也會公開Spanner的實現論文。