二阶段提交

✍ dations ◷ 2025-11-22 16:34:26 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 飞机固定翼飞机(英语:Fixed-wing aeroplane),简称定翼机,常被再简称为飞机(英文:aeroplane, airplane),是指由动力装置产生前进的推力或拉力,由机身的固定机翼产生升力,在大气层内飞行的重
  • 苏珊娜·弗罗恩苏珊娜·弗罗恩(英语:Suzanne Flon,1918年1月28日-2005年6月),是一名法国舞台、电影和电视女演员。她曾赢得一座沃尔庇杯最佳女演员奖、两座凯撒奖和两座莫里哀戏剧奖。弗罗恩曾饰
  • Mycelium Running《Mycelium Running: How Mushrooms Can Help Save the World》是美国真菌学家保罗·史塔曼兹的第六本著作,由Ten Speed Press(英语:Ten Speed Press)在2005年出版。在本书中,史
  • Annelida环节动物门(学名:Annelida)是动物界的一个门,该门动物为两侧对称、同律分节的裂生体腔动物,有的具疣足和刚毛,多闭管式循环系统、链式神经系统。常见环节动物有:蚯蚓、蚂蟥(又称水蛭
  • 邦戈哈吉·奥马尔·邦戈(el Hadj Omar Bongo,1935年12月30日-2009年6月8日),非洲国家加蓬终身总统,从1967年起担任总统直至去世。邦戈1935年12月30日出生于法属赤道非洲小城Lewai(现改
  • 隐蔽行动隐蔽行动(covert action)指在暗中实施的军事、情报或执法行动,通常在正式渠道以外进行。使用隐蔽行动的目的是在实现任务目标的同时,不让外界了解行动的赞助者与执行者。资金来
  • 安丰乡安丰乡,是中华人民共和国河南省安阳市安阳县下辖的一个乡镇级行政单位。安丰乡下辖以下地区:郭家屯村、大夫村、太平店村、木厂屯村、南丰村、北丰村、吉庄村、施家河村、赵村
  • 美国总统选举 美国众议院议长:南希·裴洛西(民主党) 多数党领袖(英语:Party leaders of the United States House of Representatives):斯坦利·霍耶(民主党) 少数党领袖(英语:Party leaders of the
  • 外援外援(或称援助)指国际政治上,特别是经济上的,对某国或社群提供协助以解决人道危机或达成社经目的。经济上的援助常分赠予及借贷两类。外援除了政府与政府间的援助外,近年来国际组
  • 1987年世界杯1987年世界杯可以指: