赞
踩
XA 模式主要特点:
1.强一致性
2.最早的分布式事务处理方案,因此许多数据库内部支持XA模式,如mysql
3.对数据库锁占用时间较长,性能较低
XA分两阶段提交,第一阶段进行事务注册,将事务注册到TC,然后执行sql语句,第二阶段TC判定有无事务执行出错,如果没错则通知所有事务提交,否则回滚,在第一到第二阶段过程中事务一直占有数据库锁,因此性能低,但所有事务要么一起提交,要么一起回滚,所以能实现强一致性。
AT模式主要特点
1.最终一致性
2.性能较XA高
3.只在第一阶段获取锁,在第一阶段进行提交后释放锁。
AT也分两阶段提交,第一阶段进行事务注册,将事务注册到TC,将当前要操作的数据写入undo log(将原数据写入),然后执行sql语句并提交(在数据库中操作),操作完成后释放数据库锁,第二阶段TC判定有无事务执行出错,如果没错则通知所有事务删除undo log,否则通过undo log回到原来的状态。这个过程中会带来一种问题----脏写,如一个事务(编号1)完成了第一阶段并且提交后,另一个事务(编号2)来操作相同的一条语句,第二阶段有其它事务出错,TC通知补偿时,数据库返回到undo log的状态,那么就会导致编号2的操作无效,并且编号2并不知道自己无效。
为了解决这个问题,senta采用了全局锁,全局锁中维护了 一张表 表中有三个字段 (被修改的表ÿ
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。