正如CAP理论所指出的,一致性、可用性和分区容错性不能同时满足。对于数据不断增长的系统(如社会计算、网络服务的系统),它们对可用性及分区容错性的要求高于强一致性,并且很难满足事务所要求的ACID特性,因此BASE理论被提出。
BASE方法通过牺牲一致性和孤立性来提高可用性和系统性能,其中BASE分别代表:
基本可用(Basically Available):系统能够基本运行、一直提供服务。
软状态(Soft-state):系统不要求一直保持强一致状态。
最终一致性(Eventual consistency):系统需要在某一时刻后达到一致性要求。
事务是用户定义的一个数据库操作序列,这些操作要么全不做,要么全做,是一个不可分割的工作单位,ACID是事务所具有的特性。
原子性(Atomicity):事务中的操作要么都做,要么都不做。
一致性(Consistency):系统必须始终处在强一致状态下。
隔离性(Isolation):一个事务的执行不能被其他事务所干扰。
持续性(Durability):一个已提交的事务对数据库中数据的改变是永久性的。
保证ACID特性是传统关系数据库中事务管理的重要任务,也是恢复和并发控制的基本单位。
对于ACID和BASE的一些比较如下所示:
ACID | BASE |
强一致性 | 弱一致性 |
隔离性 | 可用性优先 |
采用悲观、保守方法 | 采用乐观方法 |
难以变化 | 适应变化、更简单、更快 |