第六周作业
下面两题,至少选做一题
请简述 CAP 原理。
背景:在分布式系统中数据的一致性一直是困扰着各位设计者,为了满足一致性八仙过海各显神通,最终无一例外都没有达到预期的效果,而且还会导致系统更复杂,系统就是为了应对复杂性而设计,结果系统也变
的更复杂。CAP原理的诞生一定程度规避了数据一致性问题。
CAP定义:1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。分别是Consistency、Availability、Partition tolerance,Eric Brewer 说这三个指标不可能同时做到。
实践:CAP原理其实就是个设计的核心准则,不可能三者都满足,需要设计者根据场景来做好balance,正因为如此才会产生各种产品比如Redis、etcd、eureka等,它们的可以满足不同的场景。CAP日常中最常用的就是AP、CP两种,CA退化到单机可以不用考虑了。
针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)。
故障发现过程:
失效中读写:
读:随机选择两个中一个进行读操作
写:写入对等服务和备份服务(写入的是操作日志)
失效恢复:
备服务迁移数据到故障服务;此时故障服务对外可读,不可写;当数据迁移(定义偏序关系,解决冲突)完成,故障服务状态变为正常态,可读可写;注意通知客户端写入不需要写入临时备服务;
评论