【第六周】作业——CAP 原理,Doris 临时失效
下面两题,至少选做一题
请简述 CAP 原理。
针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)。
答:
1、CAP 原理
一致性(Consistency):每次读取的数据都应该是最新写入的数据,而不是过期数据。
可用性(Availability):非故障节点每次请求都应该返回正常状态(不能是错误或者超时)。
分区容错性(Partition Tolerance):当发生分区问题时,系统能继续履行职责。
对于一个分布式存储系统 CAP 是不同同时满足的,而分区失效一定会发生的。也就是说 P 是必须保证,而 C 和 A 是要看场景进行选择。但并不是就一定要完全舍弃另一方,比如经常会使用的满足 AP 前提下的最终一致性方案(对用户使用最终一致)。
限定(在这个前提下去理解会清晰很多,否则范围错误的放大,对概念的理解都变得更复杂和困难):
CAP 针对相互连接且数据共享的多分区场景。
CAP 关注的粒度是数据,而不是系统。
2、 Doris 临时失效时序图
Doris 的失效场景分为三种:瞬时失效,临时失效,永久失效。
瞬时失效:
当客户端(KV Client)访问某台数据服务(Data Server)时,发生访问异常。比如由于 JVM 的 Stop The Word,网络异常等失去响应。故障很短暂,通常一两秒内甚至毫秒级就能自行恢复。
Doris 通过三次重试和 sleep(几百毫秒)的方式进行瞬时失效应对。如果还是未能解决,通知控制中心检查节点状态。
临时失效:
如果控制中心检查(重试三次写入)确认失效,那么该数据服务被标记为临时失效状态。控制中心通知所有的客户端该节点失效。
比如服务器宕机,服务器升级,网卡,交换机等导致节点临时失效。临时失效节点允许在短时间内恢复(比如 2 小时)。这类故障特点时需要人工干预。
永久下线:未能在临时失效允许的时间内恢复,就认为节点永久失效。这时需要找一台集群中的机器替代该机器。
临时失效处理时序图:
评论