CAP 理论和 Doris
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数据库,下图是失效中的读写过程:
下图是失效恢复过程:
版权声明: 本文为 InfoQ 作者【olderwei】的原创文章。
原文链接:【http://xie.infoq.cn/article/ac1775abefe89510204a5b1cc】。文章转载请联系作者。
评论