levy5307 / blog

https://levy5307.github.io/blog/
MIT License
0 stars 0 forks source link

2pc #38

Open levy5307 opened 3 years ago

levy5307 commented 3 years ago

https://levy5307.github.io/blog/2pc/

在分布式系统中,不能简单的向所有节点发送提交请求,然后各个节点去独立的执行事务提交。例如:

某些节点检测到违反约束或者冲突因而决定终止,而其他节点则可能成功提交

发送给某些节点的提交请求可能因为网络原因丢失,而发往其他节点的请求则顺利通过

某些节点可能在日志记录写入之前发生崩溃,然后再恢复时回滚,而其他节点成功提交

因为部分节点提交成功、而其他一些节点提交失败的情况,将会破坏原子性。

之前的文章讲到过,分布式事务的原子性是由2pc来保证的。

2pc的基本流程