RDBMS:
集中环境:ACID,强事务要求。采用JDBC事务
Atomicity(原子性),一个事务中所有操作都必须全部完成,要么全部不完成。
Consistency(一致性),在事务开始或结束时,数据库应该在一致状态。
Isolation(隔离性),事务将假定只有它自己在操作数据库,彼此不知晓。
Durability(持久性),一旦事务完成,就不能返回。
分布式环境:CAP,三取其二,舍弃一。参与跨数据库的分布式事务。采用JTA(XA)支持的2PC。但2PC造成性能差,推荐BASE.
Consistency(一致性), 数据一致更新,所有数据变动都是同步的,简单的说,就是数据复制到了N台机器,如果有更新,要N台数据是一起更新的。
Availability(可用性), 好的响应性能,意思主要就是速度。
Partition tolerance(分区容错性),或可靠性,是说好的分区方法,体现具体一点,简单地可理解为是节点的可扩展性,伸缩性。
NOSQL:
分布式环境:BASE, BASE是对CAP中的AP的延伸,放宽了CAP中C的要求,以得到更好的AP,且在数据模型上引入约束,以支持更好的分区模式。没有经典意义上的事务。
Basic(基本)
Avalible(可用),支持分区失败,如分库分表的碎片。
Soft state(软状态),可以有一段时间不同步,异步。
Eventually consistent(最终一致性),或弱一致性,非实时一致。