二阶段提交

✍ dations ◷ 2025-11-18 01:08:49 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 五苓散五苓散,一方出自《伤寒论》,是祛湿剂中利水渗湿的方剂。有利水渗湿、温阳化气、外散表邪的功效。可用来主治:伤寒太阳蓄水证以及水湿内停之水肿。见有症状:小便不利,头痛微热,烦
  • 柏林墙坐标:52°30′58″N 13°22′37″E / 52.51611°N 13.37694°E / 52.51611; 13.37694柏林围墙又称柏林墙(德语:Berliner Mauer)是二次世界大战后德国分裂期间,隶属于社会主义国家
  • 海洋缺氧缺氧事件或大洋缺氧事件指的是海洋中氧气缺乏的一段时期,期间海水中的硫化氢(H2S)含量大幅增加。它在地质史上曾多次发生,同时伴随而来的是生物集群灭绝。因此生物地层学上将缺
  • Trogiomorpha小啮虫亚目(学名:Trogiomorpha)是啮虫目(Psocodea)的七个亚目之一,以霉菌和腐屑为食。小啮虫亚目物种的触角由22到50节组成,有三节跗节。 肛侧板肛门脊柱。小啮虫亚目原来是旧有啮
  • 阴道润滑阴道分泌液(日语:膣分泌液)或阴道润滑液(英语:vaginal lubrication),又叫做巴氏腺液,是女性阴道分泌的液体,有着滋润的作用,在性兴奋时会显着分泌。主要成分为水、吡啶、鲛鲨烯、尿素
  • 日月五峰图日月五峰图,又称日月图、日月昆仑图,朝鲜王朝御座后绘有日、月、五峰(五岳)的屏风图案,是朝鲜王权的象征之一。韩国一万韩圆纸币上世宗头像以该图案和《龙飞御天歌》为背景。朝鲜
  • 淡水河淡水河,流经中华人民共和国广东省深圳市和惠州市,是西枝江左岸支流,上游也称龙岗河,发源于深圳市梧桐山北麓,支流有坪山河、横岭水向北流经深圳市龙岗区和惠州市惠阳区,最后于惠州
  • 幽鹤国家公园幽鹤国家公园(英语:Yoho National Park)坐落于加拿大落基山脉,沿着北美洲大陆分水岭的西坡。它位于不列颠哥伦比亚的东部,南面是库特尼国家公园,东面与班夫国家公园毗邻。公园名称
  • 宜阳县宜阳县,是中国河南省洛阳市下辖的一个县。总面积1650.7平方公里,人口67万。唐宋年间宜阳分为福昌县(后唐时曾名福庆县)和寿安县,宋代1072年福昌县并入寿安县,大定年间(1186年)寿安县
  • 屏幕空间环境光遮蔽屏幕空间环境光遮蔽(Screen Space Ambient Occlusion,SSAO)一种用于在计算机图形中实时实现近似环境光遮蔽效果的渲染技术。由Vladimir Kajalin于在Crytek工作的时候开发,该算法