数据库就是一种资源管理器。资源管理还应该具有管理事务提交或回滚的能力。即所有的参与者准备执行事务并锁住需要的资源。参与者ready时,向transaction manager报告已准备就绪。应用层负责决定提交还是回滚,崩溃时的悬挂事务。内部XA事务用于同一实例下跨多引擎事务,由Binlog作为协调者,比如在一个存储引擎提交时,需要将提交信息写入二进制日志,这就是一个分布式内部XA事务,只不过二进制日志的参与者是MySQL本身。Binlog作为内部XA的协调者,在binlog中出现的内部xid,在crash recover时,由binlog负责提交。所以用户必须自己实现分布式事务的调度器参考的那篇blog中给出的办法是修改mysql代码,这个无法在DBScale中使用。所以可选的替代方案是不使用php+mysql实现分布式事务案例保证数据表是innodb的
暂无评论