二阶段提交

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

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

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

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

.

相关

  • 分类一个位于宿主细胞之外的独立、功能完全的病毒颗粒一些病毒拥有的包裹病毒体的脂肪泡一段DNA或RNA。如果把核苷酸比作字的话,那么基因就是由核苷酸写成的句子。基因会指导病毒
  • Streptococcus pneumoniae肺炎链球菌(学名:Streptococcus pneumoniae)是一种球状的革兰氏阳性菌,持有α溶血性,链球菌属下的一种菌。肺炎链球菌于1880年代已被发现能引致肺炎,是一种重要的人类病因,亦是体液
  • 学术腐败学术腐败通常指学术界出现的种种不良现象,国际上通常称学术不端。腐败通常是指政府官员而不是学者的不良行为,而且国际上通常以学术不端(Academic Misconduct)或学术不诚实(Acade
  • 用药假期药物假期(drug holiday)是指病患停止用药一段时间,可能从几天、几个月甚至到几年。有许多医疗方式中有包括药物假期在内,最有名的是人类免疫缺陷病毒治疗,有研究发现停药可以促进
  • Hydrogenase氢化酶(英语:Hydrogenase)是一种可以可逆地催化氢气氧化还原的酶,如下方程式:式(1)是氢气的氧化过程,Aox为电子受体,即氧化剂,如氧气、硝酸根、硫酸根、二氧化碳、富马酸等等;式(2)是质
  • 长胡子有胡女性,是指女性有像男性一样胡须的实际或假造现象,近来也成为政治宣示或时尚宣示。这是一种存在人类中,极其罕见的人体现象。有时,打睾酮的女性也会长胡子。
  • U.S. Food and Drug Administration美国食品药品监督管理局(英语:U.S. Food and Drug Administration,缩写为FDA)为美国卫生与公众服务部直辖的联邦政府机构,其主要职能为负责对美国国内生产及进口的食品、膳食补充
  • 布朗诉教育委员会布朗诉托皮卡教育局案(Brown v. Board of Education of Topeka, 347 U.S. 483 (1954),全名Oliver Brown et al. v. Board of Education of Topeka et al.,以下简称布朗案)是一
  • 江淮等处行中书省江浙等处行中书省(江浙行中书省),为直属元朝中央政府的一级行政区,简称江浙或江浙省,在当时民间多简称为江浙省、江浙行省。至元十三年(1276年)元军攻占南宋都城临安府(在今杭州市),俘
  • 孟津县孟津县,在中华人民共和国河南省西北部、北靠黄河,是洛阳市下辖的一个县。东距郑州134公里,南与洛阳市区毗临。人口43万人,总面积为758.7平方公里。全县辖8镇4乡,226个行政村,县政