写点什么

CAP 原理及 Doris 临时失效的处理过程

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

CAP 原理

对于这样一个简单的分布式环境来说,数据在不同的服务器上有副本冗余,并且同步复制,保持数据同步。

  • 选择了系统可用性,A(Availability)

某天用户先访问了服务器 A,写入了数据,但这个时候服务器 A 的网络突然出现了故障,那么会出现以下情况:

  1. 用户访问的时候负载均衡找不到服务器 A,用户的下一次访问就会被转到服务器 B 上。

  2. 数据的同步复制也找不到 A,用户刚刚写入的数据也无法同步到服务器 B 上的数据库。

  3. 等网络故障恢复之后,数据同步会继续,最终数据恢复一致。

这种情况下,我们认为系统能提供服务就好,数据的不一致是可以忍受的。

  • 选择了系统一致性,C(Consistency)

如果我们系统的数据非常重要,数据不一致会带来严重的后果,如果服务器 A 的网络故障,那么服务器 B 上的所有相关功能都必须关停 ,必须等到服务器 A 的网络恢复并且数据同步完成才能恢复功能可用,那么会出现的情况是:

1:用户访问会中断,返回错误,等到系统恢复才能继续访问。

  • 那么分区容错性,P(Partition tolerance)又是什么呢

在分布式的环境下,节点之间的网络无法通讯,产生了网络分区,但是整个系统还是可用的,这就是分区容错性。


综上我们可以得出:

  1. 如果选择可用性(A) + 分区容错性(P), 就要放弃一致性(C)。

  2. 如果选择一致性(C) + 分区容错性(P), 就得放弃可用性(A)。

  3. 如果选择一致性(C) + 可用性(A), 就得放弃分区容错性(P)。

如果选择 CA,放弃 P 这就不是分布式系统了,变成了单机应用,也就没有意义了


所以,在一个分布式系统中, 在出现节点之间无法通信, 你只能选择可用性或者一致性,没法同时选择他们。



Doris 临时失效的处理过程


  1. 判断系统进入临时失效状态


  1. 临时失效中的读写过程


  1. 失效恢复过程


用户头像

Acker飏

关注

还未添加个人签名 2018.05.03 加入

还未添加个人简介

评论

发布
暂无评论
CAP 原理及Doris 临时失效的处理过程