CAP 原理

用户头像
GalaxyCreater
关注
发布于: 2020 年 07 月 15 日





  • 一致性:每次读到的数据都是最新的

  • 可用性:每次请求都正常响应,不能超时,不能返回错误码

  • 分区耐受性:部分节点由于网络问题丢失,但系统依然可以操作

  • 不能同时满足3个条件,最多只能满足两个:

  • 对于一个分布式系统,网络故障一定会发生,此时一致性和可用性必须二选一;

  • 选择一致性:返回错误码,但是系统不可用

  • 选择可用性:返回数据,但是数据不一定是最新的

  • 启示:有些东西不能全满足

  • 最终一致性(随着时间推移最后的数据是正确的)解决方法:

  • 如果数据有冲突,可通过写入的时间来确定哪个是最新的

  • 通过多个节点投票解决



Doris临时失效状态时序图

  1. 同时写两个节点时,当其中一个节点临时失效,client会在集群种找一个备份节点,继续同时写两个节点:一个旧节点,一个备份节点,备份节点数据以操作记录格式写入,类似于mysql的binlog;

  2. 当节点2恢复,物理节点X将操作记录同步到节点2,同时client也写开始写节点2,两种写入数据冲突时,通过比较时间戳来覆盖。

  3. X日志都同步完后到节点2后,节点2完全恢复,可读写。



发布于: 2020 年 07 月 15 日 阅读数: 29
用户头像

GalaxyCreater

关注

还未添加个人签名 2019.04.21 加入

还未添加个人简介

评论

发布
暂无评论
CAP原理