二阶段提交

✍ dations ◷ 2025-11-28 22:41:05 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 加拿大原住民音节文字加拿大原住民音节文字(Canadian Aboriginal syllabics),是一系列的音节文字,用于书写几种加拿大境内原住民语言,这些语言分别属于阿尔冈昆语族、爱斯基摩-阿留申语系和德内语支。
  • 蜜月旅游度蜜月,又称为蜜月旅行,是新婚夫妻一起到某一个地方所度过的休闲时光。蜜月旅行的要点,在于行程浪漫之余,亦不失个人的空间。因此,若非必要而要参加旅行团的话,也希望观光的地点能
  • 显影剂显影剂可指下列药剂:
  • 锯齿缘睫状体是眼球壁葡萄膜的中部环形增厚部分,宽约6毫米,通过晶状体悬韧带与晶状体相连。内表面有许多突出并呈放射状排列的皱褶,外表面有睫状肌(平滑肌),在睫状肌和晶状体之间有透
  • 米诺地尔米诺地尔(英语:Minoxidil)是一种钾通道开放药,这类药物在降压时常伴有反射性心动过速和心输出量的增加。对于血管扩张的作用具有选择性,见于冠状动脉,胃肠道血管和脑血管,而不扩张
  • 高雄市公车路线列表本表仅显示目前的路线资讯,有关昔日路线状况,见高雄市公车废线列表。(E01B)高铁左营站 ↔ 旗山转运站 ↔高雄客运美浓站E03B 高铁左营站↔义大大昌医院↔义大医院去程:文藻外
  • 战略战役训练局中国人民解放军军徽中央军委联合参谋部战略战役训练局,位于北京市,是中央军委联合参谋部下属局,负责战略战役训练工作。原中国人民解放军总参谋部作战部下设有中国人民解放军总
  • 第一次巴勒斯坦大起义总计164人: - 53 个以色列平民于以色列境内被杀害。 47人在巴勒斯坦境内被杀害。总计2,162人: - 1,087个平民被以色列国防军杀害。 - 75个平民被以色列市民杀害。阿拉伯-以
  • 蛋 §结构蛋,是卵生的羊膜动物所生带有硬壳的卵,受精之后可孵出小动物,为人类食用已有几千年历史。蛋由蛋壳保护,而当中的蛋白和蛋黄被各种薄膜包裹。蛋黄和全蛋存储大量的蛋白质、胆碱和
  • 运维运维 (英文:Ops),又称运维工程师,是对技术类运营维护人员的统称。运维人员的职责是根据业务需要规划信息、网络、服务,通过网络监控、事件预警、业务调度、排障升级等手段,使服务处