Homework- CAP 原理和 Doris 临时失效处理 UML 图

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



  • 请简述 CAP 原理。

  • 针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)。

CAP原理

C:Consistency 一致性,每次读取的都应该是最近一次写入的数据或者返回错误,而不是过期的数据。

A:Availability 可用性,每次请求都要返回一个响应,而不是返回错误或者无响应,不过返回的结果不要求是最近一次写入的,可以是过期的数据。

P:Partition tolerance 分区容错性,即使因为网络原因服务器之间节点通信丢失或者延迟,系统也需要依然是可以操作的。



如何理解CAP原理:

在现实世界中,网络分区失效是一定会发生的,所以分区耐受性是一定要保证的;而系统的可用性和一致性是存在逻辑上互斥的关系,根本无法同时满足。

所以,当网络分区失效(节点间通信丢失或者网络延迟)发生时:

  • 要么取消操作,保证数据一致性,系统就返回一个错误码或者超时,但是这样系统就不可用了;

  • 要么继续写入数据,但是节点之间的数据可能不一致,导致读取的数据可能不是最新,数据一致性无法保证。

CAP原理,总结来说,在分布式系统必须满足分区容错性的前提下,可用性和一致性无法同时满足。



目前大部分分布式系统采用的AP(保证可用和分区容错性)+ 保证数据最终一致性的方案。

最终一致性一般有以下几种来解决一致性冲突:

最终一致写冲突:记录时间戳,当数据在不同节点间扩散时,按照时间先后顺序覆盖最新的结果。

客户端冲突解决:比如在不同的节点上操作购物车,就可以采用合并的方法,数据扩散时将所有节点的数据合并在一起是可以的。

投票解决冲突(Cassandra):

写数据时,向所有节点写数据,需要等待多数节点写入成功。

读取数据时,以返回相同数据的节点数多的为准。



Doris 临时失效时序图



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

River Tree

关注

还未添加个人签名 2019.02.25 加入

还未添加个人简介

评论

发布
暂无评论
Homework- CAP原理和Doris临时失效处理UML图