阶段一:提交事务请求(投票)
1.TM向所有的AP发送事务内容,询问是否可以执行事务的提交操作,并等待各个AP的响应
2.执行事务<br>各个AP节点执行事务操作,将undo和redo信息记录到事务日志中,尽量把提交过程中所消耗时间的操作和准备都提前完成后确保后续<br>事务提交的成功率
3.各个AP向TM反馈事务询问的响应<br>各个AP成功执行了事务操作,那么反馈给TM yes的response;如果AP没有成功执行事务,就反馈TM no的response
阶段二:执行事务提交
执行提交事务
假设一个事务的提交过程总共需要30s, 其中prepare操作需要28(事务日志落地磁盘及各种io操作),而真正commit只需要2s<br><br>那么,commit阶段发生错误的概率和prepare相比, 2/28 (<10%) .只要第一个阶段成功,那么commit阶段出现失败的概率就非常小<br><br>大大增加了分布式事务的成功概率
中断事务提交