【发布时间】:2013-07-01 01:56:01
【问题描述】:
根据"Guide to Scaling Web Databases with MySQL Cluster",MySQL Cluster 7.3 在使用同步更新复制时可以实现 99,999% 的可用性。 这将与CAP Theorem 形成对立面,因为它表明完美的可用性(99,999% 可以看作是这样,不是吗?)并且在分布式系统中无法实现一致性。
如果负责副本的数据节点不可访问,集群将如何对更新做出反应?对于同步更新复制,它必须阻塞,这会影响可用性。
指南指出:
- 数据节点内的数据同步复制到所有节点 节点组内。如果一个数据节点发生故障,那么总是有 至少一个存储相同信息的其他数据节点。
- 如果发生数据节点故障,MySQL 服务器或应用程序 节点可以使用节点组中的任何其他数据节点来执行 交易。应用程序只是重试事务和 剩余的数据节点将成功满足请求。
但是如果一个节点组由两个节点和一个崩溃组成(例如here),这将如何工作?据我所知,没有节点可以将更新复制到使用同步更新复制时会导致更新失败的内容?!复制是否只是在不存在要写入副本的节点时暂停?
【问题讨论】:
标签: mysql high-availability consistency distributed-database