写点什么

架构训练营 -week6- 作业

用户头像
于成龙
关注
发布于: 2020 年 10 月 31 日
架构训练营-week6-作业

架构训练营week6课后作业



作业一(至少完成一项):



  1. 请简述 CAP 原理。

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



1. 请简述CAP原理



CAP理论主要针对的是分布式系统,CAP分别表示:



  • Consistency 一致性

  • Availability 可用性

  • Partition Tolerance 分区容错性



CAP理论最关键的一个论点就是:在一个系统中,最多只能同时满足CAP3个特性中的2个,不能3个同时满足。对于分布式系统而言,由于必须满足分区容错性P,那么系统在设计时,就只能在可用性A、一致性C之间做出取舍。这个结论也经常用如下形式的图来表示。





该理论模型最有价值的地方在于,既然我们知道了CAP理论,那么我们在设计一个分布式系统时,就不用再去耗费精力尝试设计一个同时满足C、A、P的系统,因为已经证明这是不可能的,我们只需要选取其中的两个目标作为系统的设计目标。



下面简单列举下常见分布式系统对于CAP理论的支持:





2. 用 UML 时序图描述 Doris 临时失效的处理过程



注:由于时间不太充裕,apache doris源码没法一一推敲,只能根据课上讲解内容、自己的一些猜测来画序列图,尽量保证逻辑上是能走通的。



说明:下面图中



应用服务器:读写数据的客户端



存储服务器1:一直正常的服务端



存储服务器2:发生故障、又恢复的服务端



仲裁服务器:判断服务端是否失效



临时服务器:发生临时失效时的备份服务器



1、系统判断进入临时失效



下面这过程中,如果"应用服务器写入存储服务器"这个过程,不是由客户端自己去找出需要写的两个服务器,而是采用类似kafka的思路,只写入一个leader、由这个leader自己去负责写入多个副本,那序列图就又不一样。



不过从已有的ppt、文档来看,下图应该是比较贴近实际的。



2、临时失效中的读写过程



临时失效的服务器不参与正常读写。





3、失效恢复过程



恢复过程:



1、恢复后,写操作会同步写给已恢复的服务器;



2、临时服务器中已保存的内容会同步给已恢复的服务器,所有同步操作完成后,会告知仲裁服务器,然后就可以恢复到正常读写。





发布于: 2020 年 10 月 31 日阅读数: 26
用户头像

于成龙

关注

还未添加个人签名 2012.09.13 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营-week6-作业