本节将介绍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的实现论文。