二阶段提交

✍ dations ◷ 2025-12-05 08:52:23 #分布式计算,数据管理,计算机科学

二阶段提交(英语: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)上.

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

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

.

相关

  • 锦州市锦州市是中华人民共和国辽宁省下辖的地级市,是辽宁沿海的第二大城市。锦州是连接东北地区和华北地区的交通要冲,也是著名的松锦之战、辽沈战役主战场之一。锦州主城区位于小凌
  • 罗得岛罗德岛(希腊语:Ρόδος Ródos )是爱琴海上的一个岛屿,位于佐则卡尼萨群岛的最东端,它也是该群岛的主岛和希腊所辖最东的岛屿,距离土耳其仅18公里。其名来自于古希腊语中的“Ρ
  • 入侵种入侵物种是引进物种的一个子集。如果一个物种经人为引入一个其先前不曾自然生存的地区,并有能力在无更多人为干预的情况下在当地发展成一定数量,以至威胁到当地的生物多样性,成
  • 抗成瘾药物质依赖(英语:Substance dependence)或称药物成瘾(drug addiction),指需要服用药物才能使日常生活表现正常的强迫行为。出现物质依赖状况后,若突然停止服用药物,可能出现药物戒断症
  • 人民-动物-自然人民-动物-自然(葡萄牙语:Pessoas–Animais–Natureza)是葡萄牙的一个生态主义政党。该党成立于2009年5月22日,初名爱护动物党。2011年11月27日,该党以爱护动物和自然党的名义向葡
  • 山地自行车登山车(英语:Mountain bike)或称登山单车、山地自行车,山地车,为设计在山地非公路地型骑乘的脚踏车;越野骑行登山车的历史包括了欧洲的cyclo-cross运动和英国人Roughstuff Fellows
  • 穆考斯基丽莎·安·穆尔科斯基(英语:Lisa Ann Murkowski,又译穆考斯基,1957年5月22日-)是美国的政治人物。她目前是来自阿拉斯加州的美国参议院议员。她是第一位在阿拉斯加州出生和第一位
  • 韦斯利·克拉克韦斯利·坎内·克拉克(Wesley Kanne Clark,1944年12月23日-),美国退役四星上将,曾参与2004年美国总统选举民主党内初选。
  • 胡安·曼努埃尔·桑托斯胡安·曼努埃尔·桑托斯·卡尔德隆(Juan Manuel Santos Calderón,1951年8月10日-),哥伦比亚政治人物,经济学家,前任哥伦比亚总统,2016年诺贝尔和平奖得主。1951年8月10日,桑托斯在哥
  • 侯美玲侯美玲(1989年1月27日-),土耳其名马利克(Melek),籍贯辽宁沈阳,土耳其籍乒乓球运动员。由辽宁女子乒乓球队培养,在2007年起,她开始为土耳其参加比赛。2015年4月公布的国际乒联世界排名