二阶段提交

✍ dations ◷ 2025-12-01 02:11:39 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 查士丁尼法典《民法大全》(Corpus Juris(亦作Iuris) Civilis),又称《查士丁尼法典》或《国法大全》,是东罗马帝国皇帝查士丁尼一世下令编纂的一部汇编式法典,完成于公元529至565年。严格来说,《
  • 无颌类脊椎动物无颌总纲(学名:Agnatha)是脊索动物下的其中一个总纲。该纲动物是无成对偶肢和上下颌的低等脊椎动物。本纲动物生活于淡水和海水中,有些种类会回游。大多数鱼类的嘴具有铰合的双
  • 微电脑一般来说,微型计算机是以微处理器作为CPU的计算机。这类计算机的另一个普遍特征就是占用很少的物理空间。桌面计算机、游戏机、笔记本电脑、平板电脑,以及种类众多的手持设备
  • 钛酸盐钛酸盐是指含钛氧阴离子的化合物。含TiO32-的称作钛酸盐或偏钛酸盐(metatitanate),含TiO44-的称作正钛酸盐或原钛酸盐(orthotitanate)。原钛酸镁(Mg2TiO4)有着尖晶石结构,除了Ba2TiO
  • 程序记忆内隐记忆(implicit memory),又称为程序记忆(procedural memory),一种长期记忆的形式,指关于技术、过程、或“如何做”的记忆。记忆有时候会被贮存在程序记忆(procedural memory)中,当
  • 二元化合物二元化合物指包含两种不同元素的化合物,如NaCl(氯化钠)和NaF(氟化钠)。一些二元化合物是分子的,例如, 四氯化碳(CCl4)。 更典型地,二元化合物是指延伸的固体。 著名例子是硫化锌的两
  • 博士伦博士伦,是美国著名的眼睛护理产品制造商,总部设于美国纽约州罗彻斯特市,主要生产及销售眼睛护理用品、隐形眼镜、隐形眼镜护理药品及眼科手术仪器,是全球主要生产商之一。创始人
  • 全球变暗全球变暗是指自20世纪50年代以来开展全球系统观测后发现的地球表面接受的直接太阳辐射逐年减少的现象。这个现象虽然会因地点而异,但就全球平均而言,自1960年到1990年的30年间
  • 罪案现场罪案现场亦称案发现场(Crime scene),是指一处可能发生过罪行的地方。该地聚集有大量的物质证据,可由经过专业训练的执法人员(如警察)以及鉴识科学人员进行证据的发掘及搜集,例如指
  • 地中海松地中海松(学名:),或称阿勒颇松,是松属下的一种乔木,原产于地中海周边所有低海拔地区。地中海松一般所处高度为200米(660英尺)以下,但在西班牙南部可长到1,000米(3,300英尺),克里特岛则可