BASE理论
BASE 理论是ebay的架构师Dan Pritchett于2008年在CAP 理论(那时CAP理论还未被证明正确性,仅是一个猜想)的基础上提出的。BASE 理论是对 CAP 理论中 AP 方案的一个补充。 Base理论强调即使系统无法做到强一致性(Strong Consistent),但每个应用都可以根据自身业务特点,使用适当的方法来使系统达到最终一致性(Eventually Consistent)。
BASE理论定义
BASE理论是对CAP理论的放松,包含Basically Available(基本可用), Soft State(软状态/柔性事务), Eventual consistent(最终一致性)等三个部分。Basically Available 是指系统在出现故障的时候,允许损失部分可用性,即保证核心可用;Soft State 是指允许系统存在中间状态,而该中间状态不会影响系统的整体可用性。Eventually Consistency 是指系统经过一定时间后,最终能够达到一致的状态。
Basically Available(基本可用)
Basically Available 是指系统出现不可预知的严重故障(如服务器宕机,部分网络中断)时,允许损失部分可用性,即保证核心可用。
Soft state(软状态/柔性事务)
Soft State 是指允许系统存在中间状态,而该中间状态不会影响系统的整体可用性。Soft State 允许系统在多个不同的组件之间存在不一致。
Eventual Consistency(最终一致性)
Eventually Consistency 是指系统经过一定时间后,最终能够达到一致的状态。Soft state只是一个临时状态,对一个系统而来,如果一直是Soft state,那么就是一个错误。所以,对于支持Soft state的系统,仅应在一个时间期限是Soft state。在期限过后,应当保证系统的一致性。也即实现最终一致性。这个时间期限取决于网络延时、系统负载、数据复制、方案设计等因素。
BASE理论与CAP理论
CAP理论是对一个分布式系统的可用性、一致性和分区容忍性三个要素权衡的理论。对分布式系统来说,由于网络分区必然存在,那么只能考虑支持AP或CP。BASE理论是对 CAP 理论中 AP 方案的一个补充。 BASE 理论引入最终一致性的概念,为AP方案提供了理论补充。CAP理论和BASE理论的关系可以用下图表示:
BASE理论与ACID理论
ACID理论强调事物的强一致性。ACID是悲观的,在每次操作结束时强制保持一致性。BASE 理论与 ACID 理论截然相反。BASE是乐观的,可接受系统一致性处于不断变化的状态(软状态/柔性事务),以获得可用性和可伸缩性的提高。BASE理论的可用性是通过支持部分失败而非全部失败来实现的。而ACID对部分失败是无法容忍的。对ACID来说,要么全部成功,要么全部失败。
总结
ACID理论强调事务的强一致性,这种事务模型在小数据量的场景下,可以很好的支持。随着系统的规模不断扩大,水平扩展成为系统的必要选择。水平扩展引入数据分区问题,使保证强一致性的代价变大。为权衡一致性、可用性和数据分区等因素,CAP 理论应运而生。根据CAP理论,对一个应用来说,无法同时支持可用性、一致性和分区容忍性。由于分布式系统中组件天然支持分布,所以只能考虑实现一个 AP 方案或一个 CP 方案。 BASE 理论就是对 CAP 理论的 AP 方案的补充。相比 ACID 理论的强一致性,BASE理论接收最终一致性。在支持BASE理论的系统中,系统的一致性处于不断变化的状态(软状态/柔性事务)。因此这种系统的可用性和可伸缩性要远高于基于ACID理论构建的系统。
参考
https://www.cnblogs.com/crazymakercircle/p/13917517.html 分布式事务
https://queue.acm.org/detail.cfm?id=1394128 Base: An Acid Alternative
https://www.cnblogs.com/savorboard/p/base-an-acid-alternative.html Base:一种 Acid 的替代方案
https://www.modb.pro/db/325242 分布式系统的CAP和Base理论
https://segmentfault.com/a/1190000018019595 分布式理论之BASE理论
https://www.zhihu.com/column/p/29083764 BASE: 替代 ACID
https://phoenixnap.com/kb/acid-vs-base ACID vs. BASE: Comparison of Database Transaction Models