一、2PC
两阶段提交协议(two phase commit protocol,2PC)是一种在分布式系统中保证强一致性的算法,可以决定一个事务的最终是决定提交或取消(回滚)。
二、角色 1. 协调者(coordinator)
通常一个系统中只有一个;
2. 事务参与者(participants,cohorts或workers)
一般包含多个
三、过程 1. 阶段1:请求阶段(commit-request phase,或称表决阶段,voting phase)
a. 在请求阶段,协调者将通知事务参与者准备提交或取消事务,然后进入表决过程。
b. 在表决过程中,参与者将告知协调者自己的决策:
- 同意(事务参与者本地作业执行成功)
- 取消(本地作业执行故障)。
2. 阶段2:提交阶段(commit phase)
c. 在该阶段,协调者将基于第一个阶段的投票结果进行决策:
- 提交
- 取消。
d. 当且仅当所有的参与者同意提交事务协调者才通知所有的参与者提交事务,否则协调者将通知所有的参与者取消事务。
e. 参与者在接收到协调者发来的消息后将执行响应的操作。
四、开销
with the known lock/unlock overhead
https://blog.csdn.net/shenlan211314/article/details/7283948