极客时间架构 1 期:第 6 周 技术选型(二) - 命题作业
作业一
请简述 CAP 原理
Consistency
一致性,对于某个指定的客户端,读操作保证能够返回最新的写操作
Avaliability
可用性,非故障节点再合理的时间内返回合理的响应
Partition Tolerance
分区容忍性,当出现网络分区后,系统能够继续“履行职责”
细节点:
CAP 关注的是数据,而不是整个系统本身
CAP 是忽略网络延迟的
正常运行情况下,不存在 CP 和 AP 的选择,可以同时满足 CAP
放弃不等于什么都不做,需要为分区恢复后做准备
一致性
一致性其实主要是描述了在故障和延迟的情况下副本间的状态协调问题
一致性模型有以下几种:
强一致性
当更新操作完成之后,任何多个后续进程或者线程的访问都会返回最新的更新过的值,直到这个数据被其他数据更新为止。
弱一致性
系统并不保证进程或者线程的访问都会返回最新更新过的值。系统在数据写入成功之后,不承诺立即可以读到最新写入的值,也不会具体的承诺多久之后可以读到。但会尽可能保证在某个时间级别(比如秒级别)之后,可以让数据达到一致性状态。
最终一致性
最终一致性也是弱一致性的一种,它无法保证数据更新后,所有后续的访问都能看到最新数值,而是需要一个时间,在这个时间之后可以保证这一点,而在这个时间内,数据也许是不一致的,这个系统无法保证强一致性的时间片段被称为「不一致窗口」。不一致窗口的时间长短取决于很多因素,比如备份数据的个数、网络传输延迟速度、系统负载等。
作业二
针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)
写时进入临时失效流程
image.png
读时进入临时失效流程
image.png
临时失效时读
image.png
临时失效时写
image.png
故障恢复流程
image.png
评论