写点什么

CAP 理论和 Doris

用户头像
olderwei
关注
发布于: 2020 年 07 月 15 日

CAP

CAP定理是加州大学伯克利分校的计算机科学家埃里克·布鲁尔(Eric Brewer)在 2000 年的 ACM PODC 上提出的一个猜想,后被麻省理工的赛斯·吉尔伯特(Seth Gilbert)和南希·林奇(Nancy Lynch)证明,使之成为计算机分布式领域一个公认的定理。

CAP定理主要探讨的是分布式存储系统(互联并且共享数据的节点的集合,也就是副本机制,例如Mysql的主从,以及HDFS的多副本),在这一类分布式存储系统中,当涉及到读写操作时,只能保证一致性(Consistence)、可用性(Availability)、分区容错性(Partition Tolerance)三者中的两个,另外一个必须被牺牲。

  • 一致性(Consistency):每次读取的数据都应该是最近写入的数据或者返回一个错误。

  • 可用性(Availability):每次请求都应该得到一个响应,而不是返回一个错误或者失去响应,不过这个响应不需要保证数据是最新写入的。

  • 分区忍受性(Partition tolerance):即使因为网络原因,部分服务器节点之间消息丢失或者延迟了,系统依然应该是可操作的。

一个分布式系统,肯定是要满足分区忍受性,因为网络是不稳定的,所以共享数据的节点之间的通讯会断,在这个时候,我们就需要选择是满足一致性,还是满足可用性。 满足一致性,写请求就必须等到节点间的通讯恢复,只有这样多个节点的数据才能复制成功,保证一致性,这期间肯定是不可用的。满足可用性,写到节点A的数据可能不会复制到节点B,这时从节点A读的数据和从节点B读的数据是不一致的。所以我们设计系统的时候要考虑,在出现网络问题的时候是选择AP还是选择CP。

Doris

Doris是一个海量KV的NoSQL数据库,下图是失效中的读写过程:

下图是失效恢复过程:



发布于: 2020 年 07 月 15 日阅读数: 51
用户头像

olderwei

关注

还未添加个人签名 2018.04.26 加入

还未添加个人简介

评论

发布
暂无评论
CAP理论和Doris