Nor*_*Ren 6 mysql high-availability consistency distributed-database
根据"使用MySQL群集扩展Web数据库指南",MySQL Cluster 7.3可以在使用同步更新复制时获得99,999%的可用性.这将是CAP定理的一个对立面,因为它表明完美的可用性(99,999%可以看作是这样,没有?)并且在分布式系统中一致性是不可行的.
如果无法访问负责副本的datanode,群集将如何响应更新?对于同步更新复制,它必须阻止,这将影响可用性.
指南指出:
- 数据节点内的数据同步复制到节点组内的所有节点.如果数据节点发生故障,则始终存在至少一个存储相同信息的其他数据节点.
- 如果数据节点发生故障,MySQL服务器或应用程序节点可以使用节点组中的任何其他数据节点来执行事务.应用程序只是重试事务,其余数据节点将成功满足请求.
但是,如果节点组包含两个节点和一个崩溃(例如此处),那么它如何工作呢?根据我的理解,没有Node可以将更新复制到使用同步更新复制时更新失败的内容?!复制是否只是在没有节点写入副本的时候暂停?
在您的示例问题中,问题不包括partition。分区是指一半的数据留在一个节点,另一半留在另一个节点(不需要是50%的一半,但需要将数据拆分到多个节点)。
同样在您的示例问题中,如果其中一个节点崩溃,另一个节点仍在工作;因此您有空。由于其中一个节点是另一个节点的副本,因此您应该不会遇到一致性问题。
仅仅因为更新失败,并不意味着数据不一致。如果您尝试从集群访问数据,您将获得一致的数据,因为您无法从死节点检索不一致的数据。
换句话说,只有查询集群并且重试的数据不一致时,才会出现数据不一致的情况。
| 归档时间: |
|
| 查看次数: |
715 次 |
| 最近记录: |