数据库事物要满足几个要求:ACID
Atomic(原子性) 事物必须是原子的工作单元,就是事物中所有功能要么全部成功、要么全部失败
Consistent(一致性)事物完成时,必须使所有数据都保持一致装状态:各种数据变化是一致的,动态平衡
Isolation(隔离性)并发事物所做的修改必须和其他事物所做的修改是隔离的
Duration(持久性)事物完成后,对系统的影响是永久性的
Isolation是通过锁实现的,其他三项是通过事务日志实现的
redo文件:记录修改以后的数据
undo文件:记录修改前的数据
1.记录redo和undo.log文件,确保日志在磁盘上持久化
2.更新数据记录
3.提交事物,redo写入commit记录
事务提交后,清理undo文件及释放锁。刷新redo日志,确保日志保存到磁盘中
分布式事务:
数据库分库分表
SOA化
X/OpenDIP模型
X/Open Distributed Transation Processing Reference Model
X/Open是一个组织机构,定义出的一套分布式事务标准,定义了规范的API接口
2PC(two-phase-commit),用来保证分分布式事务的完整性
J2EE遵循了X/OpenDTP规范,设计并实现了java里面的分布式事务编程接口规范-JTA
XA是X/OpenDTP定义的中间件与数据库之间的接口规范