根据本文,每个集群都有自己的存储。
"群集托管数百万用户(数量取决于硬件的使用年限),并且是一组独立的服务器,包括:前端服务器 – 使用 POP3 和 DeltaSync 等协议检查病毒并托管与您的浏览器或邮件客户端通信的代码的服务器。后端服务器 – SQL 和文件存储服务器、垃圾邮件过滤器、监控和垃圾邮件数据存储、目录代理以及处理入站和出站邮件的服务器。负载均衡器 – 用于更均匀地分配负载以提高性能的硬件和软件。"
我猜用户被分配到哪个集群取决于您的地理位置(IP 地址)。在这种情况下,如果我从德国给自己发一封电子邮件,然后在我来美国时检查我的电子邮件,我将被分配到不同的集群(因此不同的SQL数据库)。因此,对于我来说,能够在美国看到该电子邮件,这是否意味着所有集群中的所有数据库都在不断同步?
地理位置很可能是为您分配集群的方式(将其视为内容交付网络)。我认为你对这个假设是正确的。
当然,我不能确定这一切是如何运作的,但根据我与其他大型供应商的经验,我的想法如下:
电子邮件冗余存储在集群中(因此丢失机器/硬盘驱动器)没有任何意义,并且这些集群也(可能)冗余存储在地理位置上独立的位置,使得大规模中断和灾难对最终用户的影响较小。这种推/拉在数据集群中不断完成(想想像HDFS这样的文件系统),以确保n级冗余。由于您在任何给定小时内登录到不同集群中的系统的机会很小,因此不需要实时同步信息(就可用性而言),但可能大约为几分钟/几小时,并且与他们的机器一样快地运行以确保数据持久性。
集群设置可能类似于亚马逊:东/西海岸集群,欧元集群,以及取决于许多其他用户所在的亚洲集群(或两个或三个)。它们之间的数据推送拉动不是几分钟,而是几小时。
对于其他服务,请记住所有这些冗余和同步很重要,例如您提到的文章,例如Skydrive和Messenger都共享此sayme基础架构。