徐老师好,这节课对比Megastore和Spanner的部分我不太理解。在 Megastore 里,每个数据中心,都是一个 Paxos 集群里的一个副本,而且是一个完全副本。这样,在每一次的数据写入时,我们都需要有网络请求到所有的数据中心。
第一、Megastore论文第2.2.3节提到一个EntityGroup写入部分地区,一个地区有3个或5个副本,原文这样描述,To minimize latency, applications try to keep data near users and replicas near each other. They assign each entity group to the region or continent from which it is accessed most. Within that region they assign a triplet or quintuplet of replicas to datacenters with isolated failure domains.
第二、Magastore论文第4.4.3节提到副本有三种,full replica, witness replica, read-only replica。为什么所有副本一定是完全副本呢,可以用其他两种啊。