二阶段提交

✍ dations ◷ 2025-07-04 10:01:56 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 字体排印学字体排印学(英语:typography)又称为文字设计,是通过排版使得文字易认、可读和优美的技艺。排版,即安排活字的方式,包括字体与字号的选取、栏宽与行高的设定以及字距的调整等。在西
  • span style=font-style: italic; color: #48A3B5;亚得里亚海/span亚得里亚海(意大利语:Mar Adriatico,斯洛文尼亚语:Jadransko morje,克罗地亚语:Jadransko more,阿尔巴尼亚语:Deti Adriatik),是地中海的一部分水域,分隔了意大利半岛(亚平宁半岛)和巴尔
  • 后推后推(英语:Pushback)是指将飞机推离登机桥或泊位的作业。在航空领域,后推是飞机的标准离场程序之一。由于航站的登机口通常相当狭窄,没有足够的空间让飞机调头转向,虽然许多飞机能
  • 星际介质在天文学,星际物质(ISM)是存在于星系的恒星系统之外,在太空中的物质和辐射。这些物质的形式包括电离的气体、原子、和分子,以及宇宙尘和宇宙射线。它们填充了星际空间,并且顺利地
  • 诺咸顿城足球会2. 北安普敦 3. 达文特里 4. 韦灵伯勒 5. 凯特林 6. 科比 7.北安普顿足球俱乐部(英语:Northampton Town Football Club)是位于英格兰北安普顿(Northampton)的足球俱乐部,自1
  • 美国第一骑兵师第七骑兵团美国第1骑兵师第7骑兵团(U.S. 7th Cavalry Regiment),是美国陆军骑兵团,建军于1866年7月28日,同年9月21日编制,官方的绰号是“Garry Owen”,这是一首爱尔兰的哼酒歌,后来被引为行军
  • 伊拉克土库曼斯坦人伊拉克土库曼人是土库曼人在伊拉克的分支。人口估计由50万至450万人不等。他们最早七世纪来到伊拉克,是阿拔斯王朝哈里发的伊拉克总督的马木留克,当时有1000人。之后塞尔柱帝
  • 热经济学热经济学(英语:Thermoeconomics),也被称为生物物理经济学(英语:Biophysical economics),是一种非主流经济学,它把热力学定律应用到经济理论中来。术语“热经济学”是由美国工程师梅伦
  • 偷猎偷猎,或称盗猎,即非法狩猎或捕捉野生动物的行为,通常违反所在地的与土地使用权相关的土地法。与盗猎不同的是,盗窃他人所有的家畜则被视作盗窃。盗猎的动机主要为商业所得,家用
  • Velvet拼接软件Velvet是处理从头测序()基因组组装及短读长序列比对的一个算法包。这是使用德布鲁因图(英语:de Bruijn graph)通过消调试误和化简重复区域而来进行基因组序列组装。 Geneious、Ma