CAP【1】:
一致性(Consistency)
可用性(Availability)
分区容忍性(Partition tolerance)
CAP原理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡。对于大多数web应用,其实并不需要强一致性,因此牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向。但对于银行系统而言,必须确保高一致性,只能牺牲可行性。
ACID是对传统的关系型数据库来说的。四个字母分别的含义是【2】:
Atomicity原子性:一个事务中所有操作都必须全部完成,要么全部不完成。
Consistency一致性. 在事务开始或结束时,数据库应该在一致状态。
Isolation隔离层. 事务将假定只有它自己在操作数据库,彼此不知晓。
Durability. 一旦事务完成,就不能返回。
然而,分布式数据库并不能满足ACID的要求,所以,人们提出BASE取而代之。
BASE模型反ACID模型,完全不同ACID模型,牺牲高一致性,获得可用性或可靠性:
Basically Available基本可用。
Soft state软状态 状态可以有一段时间不同步,异步。
Eventually consistent最终一致,最终数据是一致的就可以了,而不是时时都一致。
Reference:
[1] http://www.ningoo.net/html/2010/cap_theorem_and_eventually_consistent.html (有关于一致性的说明)
[2] http://www.jdon.com/37625