二阶段提交

✍ dations ◷ 2025-12-11 17:57:31 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 碳头孢烯碳头孢烯(英语:Carbacephems)是一类合成的头孢菌素类抗生素,和头孢烯结构上类似,不过5号位置由亚甲基取代了原来的硫原子。碳头孢烯类抗生素通过抑制细胞壁合成来抑制细菌。羧基
  • 爱德华·泰勒爱德华·泰勒(英语:Edward Teller,原匈牙利名为Teller Ede,1908年1月15日-2003年9月9日),出生于匈牙利的犹太裔理论物理学家,被誉为“氢弹之父”(见泰勒-乌拉姆构型),但他本人并不喜欢
  • 埃克尔斯约翰·卡鲁·埃克尔斯爵士,AC,FRS,FRACP,FRSNZ,FAAS(英语:Sir John Carew Eccles,1903年1月27日-1997年5月2日),澳大利亚神经生理学家,1963年因在突触研究方面取得进展而获得诺贝尔生理
  • 葡萄糖酸钙葡萄糖酸钙(英语:Calcium gluconate)是葡萄糖酸的钙盐,主要在临床上用于钙质的补充。生产中一般用葡萄糖酸与石灰或碳酸钙中和而成。葡萄糖酸钙常作为保健品的成分用于补钙。临
  • 突破聆听突破倡议(Breakthrough Initiatives)是一个由俄国科技业富豪尤里·米尔纳于2015年创建的计划,准备在十年内,投资1亿美金,寻找外星生命。 整个计划分为几个项目。突破聆听项目将会
  • 萨克森王国萨克森王国 (德语:Königreich Sachsen),国祚由1806年至1918年,历七主,在拿破仑时代是数个历史性联盟的独立成员。 从1871年起是德国历史众诸侯国中一个独立的成员,最后于1918年并
  • SDS-PAGE十二烷基硫酸钠聚丙烯酰胺凝胶电泳(英语:sodium dodecyl sulfate polyacrylamide gel electrophoresis,简称SDS-PAGE)是胶体电泳的一种,常用于生物化学、鉴识科学、遗传学和分子
  • 东海岸大道东海岸大道(马来语:Lebuhraya Pantai Timur;英语:East Coast Expressway,简称“ECE”)是马来西亚的一条主要高速公路,为吉隆坡-加叻大道的一条分支道路。东海岸大道西端始于彭亨州加
  • 断线脂鲤断线脂鲤(拉丁语学名:)是辐鳍鱼纲脂鲤目脂鲤亚目鲑脂鲤科断线脂鲤属中的一个种。它们生活在刚果河流域,尤其是在雨林河流中。它们可以达到12厘米长。性成熟的雄鱼尾鳍中间延长。
  • 2016年11月逝世人物列表2016年11月逝世人物列表,是用于汇总2016年11月期间逝世人物的列表。