参与者主要有:
1. 协调者: 四种状态: INITIAL, WAITING, DECIDED, COMPLETED
2. 参与者
两段式提交:
1. 第一阶段: 投票阶段。 协调者询问所有参与者是否准备好提交事务,如果有一个参与者投撤销票或超时无响应,则协调器通知所有参与者撤销事务。
2. 第二阶段: 决定阶段。 如果所有参与者都投票提交,那么协调者通知他们提交事务。
三段式提交:
1. 第一阶段: 投票阶段。 协调者询问所有参与者是否准备好提交事务,如果有一个参与者投撤销票或超时无响应,则协调器通知所有参与者撤销事务。
2. 第二阶段:预提交阶段。协调者在收到所有参与者的提交投票后,广播发送PRE-COMMIT消息。接受到全局预提交消息的所有参与者即知道其他所有参与者都已经投票COMMIT,此时参与者肯定提交,除非故障。
3. 第三阶段: 决定阶段。 每个收到PRE-COMMIT消息的参与者都发回收到通知,一旦协调器接收到所有通知,就发出全局提交消息。