BASE理论是根据分布式系统中经典的CAP理论发展而来,由Ebay的Dan Pritchett于2008年在ACM QUEUE发表的文章Base: An Acid Alternative提出,从题目中就可以看出BASE是对应ACID提出的。

严格来说CAP是一个结论,它的存在指明了在分布式系统中,consistency, availability, partition tolerance三种能力不可能存在。那么基于此,又该给予何种理论根据设计分布系统呢?BASE应运而生。从本质上讲,BASE是根据分布式系统CAP和关系型数据库ACID进行的一种妥协,即牺牲强一致性来换取其他方面性能的增强。

BASE指的是,Basically Available[基本可用],Soft State[软状态],Eventual Consistency[最终一致性]。

  1. BA-Basically Available,基本可用。这里是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心功能或者当前最重要功能可用。对于用户来说,他们当前最关注的功能或者最常用的功能的可用性将会获得保证,但是其他功能会被削弱。

  2. S-Soft State,软状态。软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。比如分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。当然这个性质和BA相辅相成,一般软状态的出现,会有一定可能性造成一些功能的可用性降低。

  3. E-Eventual Consistency,最终一致性。最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。

从BASE这个理论可以了解到,分布式系统的最终目标并不是完美的完成所有用户给定的所有任务。而是最大限度的利用已有资源完成最值得完成的任务。正是由于核心理念的区别,分布式系统,牺牲了部分一致性换取了系统的整体可用性,这在当前网络环境中是一个不得不做的妥协。未来如果网络发展有个革命性的突破,BASE的理论也许会被推翻。


BASE原文链接:http://queue.acm.org/detail.cfm?id=1394128