「架构师训练营」第 6 周作业 CAP 原理与 Doris 失效处理流程

发布于: 2020 年 07 月 15 日

CAP原理

简介

CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)这三个基本需求,最多只能同时满足其中的2个。

Partition Tolerance 分区容错性

在分布式系统中,一定会存在很多子网络,一个子网络我们叫做一个分区。在某些原因导致分布式系统中,子网络之间网络不通,导致分布式系统被分成了一个个孤立的区域,这就叫分区。

一般而言,分布式系统中分区不可避免,我们要保证在出现分区时系统仍然是可以使用的,因此CAP中的P总是成立。

Consistency 一致性

数据在多个副本中保持一致。读取到的是上一次写入的最新的数据。这里的一致指强一致性。

Availability 可用性

指系统的高可用。

权衡

CA without P

如果系统要保证一致性和可用性,则不可容忍分区的存在,即不能达到分区容错性。但也往往因为网络分区是一定会可能发生的,所以不太适用于现有的分布式系统。

AP without C

一旦分区发生,节点之间可能会失去联系,为了实现高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。

CP without A

在分区发生情况下,要保证数据的强一致性,就没办法保证可用性。因为分区,造成节点间数据未同步,此时如果服务可用数据将不一致。

在实践中,要根据事情情况进行权衡。对于一些互联网系统,机器数量庞大,部署的节点分散,网络故障是常发生的。所以只有牺牲一致性来保障服务的AP。而对于银行这类对一致性要求较高的场景,可能会选择CP或AC。AC即出现网络分区故障,则直接不提供服务,即不能容忍分区。而CP,即保证数据的一致性,可用性不能保证。

Doris临时失效处理流程

判定临时失效

临时失效期间的读写

读取数据从正常节点读取,因为临时节点数据可能不完整。

写入数据,往正常节点和临时节点双写。

数据恢复过程

用户头像

guoguo 👻

关注

还未添加个人签名 2017.11.30 加入

还未添加个人简介

评论

发布
暂无评论
「架构师训练营」第 6 周作业 CAP原理与Doris失效处理流程