二阶段提交

✍ dations ◷ 2025-04-02 16:53:32 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 腺苷高半胱氨酸酶腺苷高半胱氨酸酶(英语:Adenosylhomocysteinase)是一个将S-腺苷高半胱氨酸转变为高半胱氨酸与腺苷的酶。医学导航:遗传代谢缺陷代谢、k,c/g/r/p/y/i,f/h/s/l/o/e,a/u,n,mk,cgrp/
  • Scianna血型系统11462527028ENSG00000164010ENSMUSG00000028644Q96PL5Q9JLN5XM_011540571、NM_001017922、NM_018538、XM_006710313、XM_011540570NM_013848、XM_006503138、XM_006503139、
  • 伦敦动物园伦敦动物园 (英语:London Zoo) 为世界上最古老的动物园。该园于公元1828年4月27日开幕。起初,园内动物为科学家的研究对象;后在1847年对公众开放。现它在英国汇集755个动物物种
  • 乐山市乐山市(四川话拼音:No2san1;本地发音:),古称嘉州、嘉定,是中华人民共和国四川省下辖的地级市,位于四川省中南部。市境东界自贡市、宜宾市,南接凉山州,西邻雅安市,北连眉山市。地处四川
  • 蓝衫党陆军同志协会(ACA),后来被命名为国民警卫队和更广为人知的绰号蓝衫党(爱尔兰语:Na Léinte Gorma),是活跃于20世纪30年代的爱尔兰安全组织。它主要是由爱尔兰共和军的前成员组成。
  • 腭骨腭骨(Palatine bone)是二块的L形骨,形成硬颚的后面部分,鼻腔的侧壁及底板的一部分,以及眼眶底板的一小部分。分隔鼻腔与口腔的硬颚后面部分是由颚骨的水平板所形成。The seven
  • 会厌挤喉音会厌挤喉音,或声门挤喉音,是一种极罕见的辅音,被使用在一些口语。会厌挤喉音的国际音标写作⟨ʡʼ⟩。根据研究资料,会厌挤喉音出现于达尔金语(英语:Dargwa language),这种语言属于
  • 社会主义者和民主人士进步联盟S&D(2009年6月23日起) PES(1993年4月21日-2009年6月22日) SOC(1958年-1993年4月21日) S&D(2009年6月23日起) PSE(1993年4月21日-2009年6月22日) SOC(1958年-1993年4月21日) Group of the Pro
  • 2008年美国职棒大联盟全明星赛< 2007年2009年 >2008年美国职棒大联盟全明星赛是大联盟历史上第79届全明星赛,比赛于2008年7月15日至16日在纽约洋基的主场洋基体育场举行。比赛从15日晚上8点47分开始,16日
  • 脆韧转换带脆韧转换带是地壳强度最大的部分。对于富含石英和长石的大陆地壳而言,脆韧转换带出现在大约13到18公里深度(大致对应于250到400°C的温度)。在这一深度,岩石变得不容易破裂,而更