写点什么

第 6 周分布式数据库与 NoSql、Zookeeper 与 Doris

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

作业一:

下面两题,至少选做一题

  • 请简述 CAP 原理。

CAP 定理(CAP theorem)又被称作布鲁尔定理(Brewer's theorem),对应三个词Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容忍性)。

Consistency:对某个指定的客户端来说,读操作总保证能够返回最新的写操作结果。

Availability:非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应),哪怕不是最新的数据。

Partition Tolerance:当出现网络分区后,系统能够继续“履行职责”。

CAP理论指出,分布式系统中要不满足CP,要不满足AP,不可能三者同时满足。

分布式环境中,网络一定会发生分区(即网络不可用),因为网络本身无法做到 100% 可靠,有可能出故障,所以在网络不可用时,要不保证数据一致性,要不保证可用性。下面是从摘自李运华老师《从0开始学架构》中的解释:



1.CP - Consistency/Partition Tolerance如下图所示,为了保证一致性,当发生分区现象后,N1 节点上的数据已经更新到 y,但由于 N1 和 N2 之间的复制通道中断,数据 y 无法同步到 N2,N2 节点上的数据还是 x。这时客户端 C 访问 N2 时,N2 需要返回 Error,提示客户端 C“系统现在发生了错误”,这种处理方式违背了可用性(Availability)的要求,因此 CAP 三者只能满足 CP。



2.AP - Availability/Partition Tolerance如下图所示,为了保证可用性,当发生分区现象后,N1 节点上的数据已经更新到 y,但由于 N1 和 N2 之间的复制通道中断,数据 y 无法同步到 N2,N2 节点上的数据还是 x。这时客户端 C 访问 N2 时,N2 将当前自己拥有的数据 x 返回给客户端 C 了,而实际上当前最新的数据已经是 y 了,这就不满足一致性(Consistency)的要求了,因此 CAP 三者只能满足 AP。注意:这里 N2 节点返回 x,虽然不是一个“正确”的结果,但是一个“合理”的结果,因为 x 是旧的数据,并不是一个错乱的值,只是不是最新的数据而已。





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

作业二:

根据当周学习情况,完成一篇学习总结



用户头像

关注

还未添加个人签名 2018.04.25 加入

还未添加个人简介

评论

发布
暂无评论
第6周分布式数据库与NoSql、Zookeeper与Doris