二阶段提交

✍ dations ◷ 2025-11-29 12:14:58 #分布式计算,数据管理,计算机科学

二阶段提交(英语:Two-phase Commit)是指在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法。通常,二阶段提交也被称为是一种协议(Protocol)。在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其他节点的操作的成功或失败。当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一个作为协调者的组件来统一掌控所有节点(称作参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交(比如将更新后的数据写入磁盘等等)。因此,二阶段提交的算法思路可以概括为: 参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中止操作。

需要注意的是,二阶段提交(英语:2PC)不应该与并发控制中的二阶段锁(英语:2PL)混淆。

二阶段提交算法的成立基于以下假设:

以下对二阶段提交算法分阶段进行说明。

有时候,第一阶段也被称作投票阶段,即各参与者投票是否要继续接下来的提交操作。

当协调者节点从所有参与者节点获得的响应消息都为"同意"时:

如果任一参与者节点在第一阶段返回的响应消息为"终止",或者协调者节点在第一阶段的询问超时之前无法获取所有参与者节点的响应消息时:

有时候,第二阶段也被称作完成阶段,因为无论结果怎样,协调者都必须在此阶段结束当前事务。

下述流程图简单示意了二阶段提交算法中协调者和参与者之间的通信流程

    协调者                                              参与者                              QUERY TO COMMIT                -------------------------------->                              VOTE YES/NO           prepare*/abort*                <-------------------------------commit*/abort*                COMMIT/ROLLBACK                -------------------------------->                              ACKNOWLEDGMENT        commit*/abort*                <--------------------------------  end

"*" 所标记的操作意味着此类操作必须记录在稳固存储(英语:Stable storage)上.

二阶段提交算法的最大缺点就在于它的执行过程中间,节点都处于阻塞状态。即节点之间在等待对方的响应消息时,它将什么也做不了。特别是,当一个节点在已经占有了某项资源的情况下,为了等待其他节点的响应消息而陷入阻塞状态时,当第三个节点尝试访问该节点占有的资源时,这个节点也将连带陷入阻塞状态。

另外,协调者节点指示参与者节点进行提交等操作时,如有参与者节点出现了崩溃等情况而导致协调者始终无法获取所有参与者的响应信息,这时协调者将只能依赖协调者自身的超时机制来生效。但往往超时机制生效时,协调者都会指示参与者进行回滚操作。这样的策略显得比较保守。

.

相关

  • 生态遗传学现代生物分类群体从它们的 共同祖先遗传分化的图示。进化论介绍(英语:Introduction to evolution) 演化的证据 共同起源 共同起源的证据群体遗传学 · 遗传多样性 突变 · 自
  • 柴郡柴郡(英语:Cheshire),旧称切斯特郡(County of Chester),英国英格兰西北部的郡。柴郡的西半部(埃尔斯米尔港-内斯顿、切斯特两区)位于威勒尔半岛上,北边对岸是著名城市利物浦。切斯特是
  • 宋代宋代音系指宋朝时期流行于中原地区(开封、洛阳)的汉语音系,可能是当时全国通用语的基础。宋室南渡之后,陪都临安(现在的杭州市)可能也通行类似的语音。宋朝官方先后修过几本韵书,但
  • 明英宗明英宗朱祁镇(1427年11月29日-1464年2月23日),明宣宗朱瞻基长子,生母孝恭章皇后,景泰帝朱祁钰异母兄,明宪宗朱见深之父,是明朝的第6位和第8位皇帝;最初使用正统(1436年-1450年)年号,复辟
  • 纽瓦克纽瓦克可能指:美国的地名:一个位于美国新泽西州的机场:
  • 邹坚邹坚(1921年8月16日-2004年11月12日),别字统亚,又名统球,福建建瓯人。中华民国海军将领、外交官,中央军校第十七期炮科毕业。马尾海军学校第二期轮机科、青岛海军军官学校第五期航
  • 灶、炉灶、厨灶或灶头是一种固定的烹饪的设施,透过加热炊具来达到将食物变熟的目的。中文语境中有时也以灶来指窑,例如佛山的南风古灶。早期的灶多是粘土制灶的,用柴火来加热。
  • 天人 (佛教)天人(梵语:देव,Deva),又称天众、天部、天神,音译为提婆,指佛教中住于诸天界之有情。最早源自古印度神话中的提婆,与之不同的是佛教认为天人为轮回五道(或六道)之一。天界分为欲界天
  • 萨利赫·默罕默德·奥斯曼萨利赫·默罕默德·奥斯曼(英语:Salih Mahmoud Osman,1957年-),苏丹人权律师。他关注达尔富尔问题中的受到人权受到严重侵害的平民,并与苏丹反酷刑组织合作,为许多平民提供了保护。
  • 2008年泰国羽毛球黄金大奖赛2008年泰国羽毛球黄金大奖赛为第23届泰国羽毛球公开赛,是2008年世界羽联大奖赛的其中一站。本届赛事于2008年6月24日至6月29日在泰国的首都曼谷的Nimibutr National Stadium