2020-07-11- 第六周作业
作业
1 请简述CAP原理
分布式系统的三个指标(一致性、可用性和分区耐受性)不可能同时做到。
其中一致性(Consistency)代表每次读取的数据都应该是最近写入的数据或者返回一个错误,而不是过期数据,即数据是一致的。可用性(Availability)是指每次请求都应该得到一个响应,而不是返回一个错误或者失去响应,不过这个响应不需要保证是最近写入的。分区耐受性(Partition tolerance)指即使因为网络原因,部分服务器节点之间消息丢失或者延迟了,系统依然应该是可以操作的。
一般来说,分布式系统不能完全保证,每台系统都可能因为网络或者其他原因导致数据丢失的情况。因此分区耐受性是无可避免的,因此可以认为CAP的P总是成立的。根据CAP原理可知,C和A不能同时做到。即如果想要做到系统的可用性,那么就要割舍一部分的数据一致性,反之亦然。
2 针对Doris案例,请用UML时序图描述Doris临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)
首先Doris中主要分KV Client、Data Server和Config Server三类对象。对于Doris失效处理主要分为以下三步进行:
(1)判断系统进入失效状态,首先KV Client接收到写数据请求,目前有两个数据服务器A和B,同时向A和B写入数据,A写入成功,B写入失败。此时KV Client再尝试x次写入操作,如果仍然失败,则向配置服务器发送B的失效状态。具体时序图如下图所示。
(2)临时失效时的读写,进入临时失效状态后,KV Client继续向A写入数据,而需要向B写入的数据则全部写入到备份数据服务器C中。待B恢复后再将C中数据迁移回来。
(3)失效恢复,当B机器恢复正常后,KV Client将数据同时写入到A和B,但是不会从B读取数据(为保证数据一致性),待数据服务器C中的备份数据全部迁移到B中后,B才算作恢复到正常状态。
评论 (1 条评论)