二阶段提交

✍ dations ◷ 2025-11-26 23:11:48 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 孢子丝菌病孢子丝菌病是一种因为受到申克氏孢子丝菌(Sporothrix schenckii)感染,引起皮肤产生病变,也可能发生在肺、关节、骨骼,甚至脑,但是较为罕见。申克氏胞子丝菌存在于土壤中,干草堆、
  • 中国高等教育语言 - 文化 - 体育 - 节日 政府 - 政治 - 法律 - 经济 艺术 - 文学 - 舞蹈 - 戏曲中华人民共和国高等教育包括普通高等教育、成人高等教育和高等教育自学考试,属于中华
  • CODATA科学技术数据委员会(英语:Committee on Data for Science and Technology,缩写为CODATA)是由国际科学理事会于1966年成立的一个跨学科委员会。它旨在改善更改、精确测量、储存、
  • Ⅰ类抗心律失常药(英语:Antiarrhythmic agents)是一类用于抑制心脏非正常节律(心律失常)的药物,这些情况例如心房颤动、心房扑动、心室性心搏过速以及心室颤动。很多人试图将此类药物
  • 大岛久满次大岛久满次(おおしま くまじ,1865年12月10日-1918年4月27日),日本东海道尾张国(今爱知县)人,台湾总督府民政部民政长官、神奈川县知事、众议院议员。庆应元年十月二十三日(1865年12月
  • 阴道积水阴道积水(英语:Hydrocolpos),是一类由于先天性阴道堵塞(英语:vaginal obstruction)导致的阴道积水。这种障碍通常是由于处女膜闭锁或较少类由于阴道横隔引起。积累液体通常是宫颈和
  • 1449年约前1445年,古埃及法老图特摩斯三世打败了米坦尼国王,夺占米坦尼王国位于幼发拉底河西岸的土地。
  • 胡胡伊省胡胡伊(西班牙语:Jujuy)是位于阿根廷最西北部的一个省,其边境与智利和玻利维亚接壤。在阿根廷内,胡胡伊唯一的邻近省份是其东和南边的萨尔塔省。前哥伦布时期,当地原住民和后来在
  • 伊登伊登(Idun)是北欧神话中的一位女神,她是青春与春天的化身,同时负责掌管能让诸神保持青春的黄金苹果。她也是诗神布拉基(Bragi)的妻子。她的出身颇为神秘,有说法认为她属于华纳神族(V
  • 极坐标系在数学中,极坐标系(英语:Polar coordinate system)是一个二维坐标系统。该坐标系统中任意位置可由一个夹角和一段相对原点—极点的距离来表示。极坐标系的应用领域十分广泛,包括