在开始 GAE 数据存储之前,我认为了解黑白主/从数据存储和高复制数据存储的区别会很好吗?是什么让 GAE 团队从 Master/Slave 迁移到 HRD?
3 回答
两者的区别(以及切换的原因)是增加了容错性和数据一致性。
主/从数据存储实现主备份协议。每个应用程序都由主服务器(即单个数据中心)提供服务,其数据异步复制到从服务器(即其他数据中心)。这种模式的问题在于它不能保护您的应用程序免受本地故障的影响,并且更有可能导致数据不一致。
High Replication Datastore实施 Paxos 共识算法,以确保大多数数据中心保持应用程序数据的一致视图。由于您的数据不再依赖于单个数据中心的运行状况,因此即使存在本地/全局故障,数据存储也能够正常运行。Google 的工程师也从这种实施中受益,因为它允许他们执行数据中心维护,而不必为 AppEngine 应用程序强制执行预定的只读周期。
使用 High Replication Datastore 的缺点是写入速度较慢(大约慢 2 倍,因为 Paxos 本质上是两阶段的)。但这并不是什么大问题,尤其是与高复制数据存储必须提供的更高的容错性和数据一致性相比。
在仅使用主/从的 App Engine 的前三年,数据存储区的运行状况与单个数据中心的运行状况相关联。用户具有低延迟和强一致性,但也有暂时的数据不可用和计划的只读周期。
High Replication Datastore 以少量的延迟和一致性换取了更高的可用性。