二阶段提交

✍ dations ◷ 2025-11-30 11:51:34 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 灰婴症候群灰婴症候群,或称灰婴症及灰婴综合征,是一种初生婴儿在接受静脉注射氯霉素后出现的罕见严重副作用。初生婴儿由于并未能完全自行建立体内的酶,尤其是肝脏负责代谢的酶,去处理或分
  • 火把节火把节(凉山彝语:ꄔꊒ,Dutzie,音译“杜责”;白语:Huix‧zuit‧jiarx;佤语:Biag)一些民族又称星回节,是云南少数民族例如彝族、白族、纳西族、基诺族、拉祜族的一个重要传统节日。节期
  • 山原山原指的是冲绳岛北部多山、多森林等自然景观的地域。有时又单指冲绳岛名护市以北的地域。“山原”这一地域并无明确的区分,恩纳村与金武町及其以北的区域都在这个范围之内。
  • 人类迁徙人口迁徙是一种人类族群集体或个别改变居住地域的现象,其形式有自愿或非自愿、合法或非法之别,原因则可能包括(但不限于)资源短缺、气候变迁、战争、奴隶贸易、种族清洗、政治迫
  • 亚洲现代美术馆亚洲现代美术馆(台湾话:.mw-parser-output .sans-serif{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Lato,"Helvetica Neue",Helvetica,Arial,sans-seri
  • 文读音文白异读是汉语族的一种特有现象,一些汉字在汉语中有两种发音:文读和白读,两者代表不同的语音层次:汉语中的白读普遍是在《广韵》或更早的音系基础上继承和发展来的语言固有成分
  • 纪检监察局中国人民解放军军徽中央军委纪律检查委员会纪检监察局,位于北京市,是中央军委纪律检查委员会下属局,负责全军纪检监察工作。在深化国防和军队改革中,2016年1月,成立中央军委纪律
  • 安丽杯世界女子花式台球公开赛(正式名称:安丽益之源杯世界女子花式台球公开赛),于1998年由台湾美国商家安丽赞助而开办,原名安丽杯世界女子花式台球邀请赛,于2003年因为SARS事件而停止举
  • 碳化三铁铁素体(α-Fe) 针状铁素体(acicular α-Fe) 奥氏体(γ-Fe) 马氏体 珠光体(88%铁素体,12%碳化三铁) 贝氏体 粒滴斑铁(珠光体及渗碳体的共晶     混合物,含碳量4.3%) 碳化三铁(Fe3C) β
  • 穆罕默德·乌尔德·阿卜杜勒-阿齐兹穆罕默德·乌尔德·阿卜杜勒-阿齐兹(阿拉伯语:محمد ولد عبد العزيز‎ ;1956年12月20日-),毛里塔尼亚前任总统。1956年,生于毛塔因希里省首府阿克茹特。2005年8月参