二阶段提交

✍ dations ◷ 2025-12-01 15:14:10 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 弥散性血管内凝血弥散性血管内凝血(英语:Disseminated Intravascular Coagulation,简称DIC),又称消耗性凝血病,是指在某些致病因子的作用下,大量促凝物质入血,凝血因子和血小板被活化,使凝血酶增多,微
  • 面试面试,又称口试,是用人单位和应聘者之间见面交流的一种就业测试,是用人单位选择员工最常用的方法。工作面试主要考核应聘者的智力水平、相关工作经验、教育背景、生理状况(负重、
  • 云端运算云计算(英语:cloud computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备,使用服务商提供的电脑基建作计算和资
  • 印度式摔角印度式摔角(英语:Pehlwani;乌尔都语/Shahmukhi:پہلوانی‬、旁遮普语:ਪਹਿਲਵਾਨੀ、印地语:पहलवानी、孟加拉语:পাহলাভানি)或称 or 古什蒂(英语:kushti;乌尔
  • 亚历山大·塞维鲁亚历山大·塞维鲁(Alexander Severus,208年10月1日-235年3月18日,出生于今黎巴嫩,被杀于今德国美因茨),原名马库斯·朱利乌斯·格修斯·巴夏努斯·阿勒夏努斯(Marcus Julius Gessius
  • 吉姆·克劳法吉姆·克劳法(英语:Jim Crow laws) 1876年至1965年间美国南部各州以及边境各州对有色人种(主要针对非洲裔美国人,但同时也包含其他族群)实行种族隔离制度的法律。这些法律上的种族
  • 俄罗斯海军俄罗斯海军(俄语:Военно-морской флот России (ВМФ),拉丁化:)是俄罗斯联邦军中的海军。俄罗斯海军舰艇的国际编号为RFS(Russian Federation Ship,“俄罗
  • 萨伊省萨伊省位于安哥拉西北端,与本哥省、威热省等省份及刚果民主共和国相邻。坐标:6°16′S 14°14′E / 6.27°S 14.23°E / -6.27; 14.23
  • 互联网社会学实证主义 · 反实证主义(英语:Antipositivism) 结构主义 · 冲突理论 中层理论 · 形式理论 批判理论 人口 · 团体 · 组织(英语:Organizational theory) · 社会化 社会性
  • 冈山县第2区冈山县第2区是日本众议院的选区,始于1994年。北海道 13 | 山形县 4 | 静冈县 9 | 岛根县 3 | 大分县 4福井县 3 | 山梨县 3 | 德岛县 3 | 高知县 3 | 佐贺县 3青森县 4 | 岩