CAP 原理简述 &Doris 临时失效处理过程
CAP原理
一致性(Consistency):每次读取的数据是最近一次写入的数据或返回一个错误,而不是过期数据,也就是数据一致性。
可用性(Availability):每次请求都应该得到一个响应,而不是返回一个错误或失去响应,不过这个响应不需保证是最近写入的,也就是系统可以一直可以正常使用,不会引起调用者异常,但并不保证调用的数据是最新的。
分区耐受性(Partition tolerance):即使网络原因,部分服务器节点之间消息丢失或延迟,系统依然可用操作。
对于分布式系统在必须满足分区耐受性的前提下,可用性和一致性无法同时满足。
有CA无P,满足强一致性和可用性,当有分区问题时,为保证C,系统禁止写入,返回error。但是又和A冲突。所以理论上分布式系统不能选择CA架构。
有CP无A,满足一致性和分区容错性,需要每个请求在服务器之间保持强一致性,而分区容错会导致服务器间同步会延迟,一旦发生网络故障或消息丢失,就要牺牲用户体验等待所有数据同步完成后才能允许用户访问。例如:分布式数据库Redis,数据一致性是基本要求。
有AP无C,满足可用性和分区容错性,当分区容错出现时,节点之间消息丢失或延迟。当请求访问节点2时,由于服务器间失去联系,导致节点2的数据还是旧数据,这时不在满足一致性要求。
UML 时序图描述 Doris 临时失效处理过程
版权声明: 本文为 InfoQ 作者【Mars】的原创文章。
原文链接:【http://xie.infoq.cn/article/a07085ad27510065c51c6729f】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论