CAP 原理
简述
在分布式系统中,最大的难题是如何保证各个节点状态同步。CAP是为解决这个问题,提出来的基本原理。
Consistency(一致性)
一致性是说:当写入数据后,不管读取哪个节点,读取的数据一定是刚写入的数据。如下图。
数据写入G1后,如果保证 G2 的一致性,那么 G1 必须在同步数据时,锁定 G2 的读操作和写操作。只有数据同步后,才能重新开放读写。锁定期间,G2 不能读写。
Availability(可用性)
客户端访问系统,系统必须返回正确的响应结果,而不是返回一个错误或者失去响应。不过,这个响应不需要保证数据是最近写入的。
Partition tolerance(分区容错性)
分区容错指服务器节点之间的网络通信可能失败,但不影响客户端正常使用系统。
例如两系统节点G1和G2,G1向G2发送数据,可能由于网络原因导致G2没收到。这种由于网络原因导致的问题,我们是无法避免的。
我们无法保证网络任意时刻一定可用,因此CAP中的P是一定存在的。
为什么C和A是互斥的?
上面有说到,保证G1向G2同步数据时,G2会被锁定,出现了G2不可用的情况。反过来,如果要所有节点都可用,那么保证不了一致性。
针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)。
https://www.processon.com/view/link/5f9e267907912948e6e4f9d9
评论