一、本地事务:
ACID(原子性、一致性、隔离性、持久性)四个特性。
• 原子性(Atomicity)指事务作为整体来执行,要么全部执行,要么全不执行;
• 一致性(Consistency)指事务应确保数据从一个一致的状态转变为另一个一致的状态;
• 隔离性(Isolation)指多个事务并发执行时,一个事务的执行不应影响其他事务的执行;
• 持久性(Durability)指已提交的事务修改数据会被持久保存。
二、分布式事务:
CAP理论
一致性(Consistency)
可用性(Availability)
分区容忍性(Partition tolerance)
1. 刚性事务(CP):
XA 事务采用的是 X/OPEN 组织所定义的 DTP 模型 所抽象的 AP(应用程序,定义事务边界并指定构成事务的操作), TM(事务管理器,负责事务完成和故障恢复)和 RM(资源管理器,例如数据库或文件访问系统)概念来保证分布式事务的强一致性。其中 TM 与 RM 间采用 XA 的协议进行双向通信,通过两阶段提交实现。与传统的本地事务相比,XA 事务增加了准备阶段,数据库除了被动接受提交指令外,还可以反向通知调用方事务是否可以被提交。TM 可以收集所有分支事务的准备结果,并于最后进行原子提交,以保证事务的强一致性。
2.柔性事务(AP):
BASE 是基本可用、柔性状态和最终一致性这三个要素的缩写。
• 基本可用(Basically Available)保证分布式事务参与方不一定同时在线;
• 柔性状态(Soft state)则允许系统状态更新有一定的延时,这个延时对客户来说不一定能够察觉;
• 最终一致性(Eventually consistent)通常是通过消息传递的方式保证系统的最终一致性。