CAP 原理
一致性:每次读到的数据都是最新的
可用性:每次请求都正常响应,不能超时,不能返回错误码
分区耐受性:部分节点由于网络问题丢失,但系统依然可以操作
不能同时满足3个条件,最多只能满足两个:
对于一个分布式系统,网络故障一定会发生,此时一致性和可用性必须二选一;
选择一致性:返回错误码,但是系统不可用
选择可用性:返回数据,但是数据不一定是最新的
启示:有些东西不能全满足
最终一致性(随着时间推移最后的数据是正确的)解决方法:
如果数据有冲突,可通过写入的时间来确定哪个是最新的
通过多个节点投票解决
Doris临时失效状态时序图
同时写两个节点时,当其中一个节点临时失效,client会在集群种找一个备份节点,继续同时写两个节点:一个旧节点,一个备份节点,备份节点数据以操作记录格式写入,类似于mysql的binlog;
当节点2恢复,物理节点X将操作记录同步到节点2,同时client也写开始写节点2,两种写入数据冲突时,通过比较时间戳来覆盖。
X日志都同步完后到节点2后,节点2完全恢复,可读写。
版权声明: 本文为 InfoQ 作者【GalaxyCreater】的原创文章。
原文链接:【http://xie.infoq.cn/article/21d7573af5c7b2b6114052c5b】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论