二阶段提交

✍ dations ◷ 2025-06-07 21:43:24 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 痕痒痒,中医叫风瘙痒,是一种使动物有对发生部位产生抓挠欲的不快感觉,与疼痛有许多相似之处。其发生多源自周围神经系统(皮痒性和神经性)和中枢神经系统(神经性、神经源性和心理性)。皮
  • 法庭心理学异常心理学 行为遗传学 生物心理学 心理药物学 认知心理学 比较心理学 跨文化心理学 文化心理学 差异心理学(英语:Differential psychology) 发展心理学 演化心理学 实验心理学
  • 蝌蚪蝌蚪,古时写作科斗,是两栖动物蛙、蟾蜍、蝾螈或蚓螈的幼体,生长在水里。在此阶段,蝌蚪透过鳃来呼吸。起初它们没有四肢,而是有一条鳍状般的尾巴,因此它们能像大多数鱼类般通过摆动
  • 楔齿龙类楔齿龙类(学名:Spenacodontia)是个演化支,包括楔齿龙科与它们所有后代(包括哺乳类)。它们首次出现于晚宾夕法尼亚纪。共有衍征包括:上颌骨的内部变厚、大型的犬齿型牙齿、前上颌骨
  • 仁济疗养院坐标:25°02′12″N 121°29′52″E / 25.0365665°N 121.497845°E / 25.0365665; 121.497845仁济医院,为台北仁济院的附属医院。台北仁济院之源起可追溯至清治时代的穷民救
  • 贝坎贝坎县(Beckham County, Oklahoma)是美国奥克拉荷马州西南部的一个县,西邻德克萨斯州。面积2,344平方公里。根据美国2000年人口普查,共有人口19,799人。县治塞尔 (Sayre)。成立
  • 汉普顿汉普顿、汉普敦、咸顿可以指:
  • 刹车片刹车片(英语:Brake Pad),又称为来令片或刹车来令片BEST BRAKE PAD,广泛用于汽机车,自行车,铁道及各种工业用夹器上,是各种装配有鼓刹或碟刹之交通工具制动系统的一个重要的组成部
  • 1934年函馆大火1934年函馆大火于1934年3月21日发生在日本北海道的函馆。这起大火造成2166人死亡。1934年3月21日,北海道附近有低气压通过,函馆吹起了强风。大约下午18:53左右,市区南边住吉町
  • 吲哚-3-乙酸吲哚-3-乙酸(英语:indole-3-acetic acid),简称吲哚乙酸(英语:indoleacetic acid),又称萮乙酸,缩写为IAA,是一种杂环化合物。它属于一类重要的植物激素——生长素。这种无色的固体很可