二阶段提交

✍ dations ◷ 2025-11-28 14:02:54 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 急性间质性肺炎急性间质性肺炎又称为Hamman-Rich症候群,是一种原因不明之罕见且严重的急性肺病,属于特发性间质性肺炎和间质性肺病的一种。往往看上去完全健康的人极偶尔会患这种病。至2005
  • 杓状会厌襞.mw-parser-output ruby>rt,.mw-parser-output ruby>rtc{font-feature-settings:"ruby"1}.mw-parser-output ruby.large{font-size:250%}.mw-parser-output ruby.larger{fon
  • 后缀后缀(英语:suffix),又称字尾或词尾,在词汇学的定义中表示一种后置于其他词素后的词缀。以英语为例:establish(动词)+ -ment(后缀)→establishment(名词):借由后缀-ment的使用,使原本的动词
  • 链式反应链反应(Chain reaction)又称连锁反应,是指反应的产物或副产物又可作为其他反应的原料,从而使反应反复发生。在化学中,链反应通常指光、热、辐射或引发剂作用下,反应中交替产生活性
  • 开悟法融牛头宗|弘忍东山宗 – 神秀北宗禅|惠能南宗禅 – 北荷泽宗|南洪州宗|南石头宗|保唐宗惠能系曹溪南宗 –悟,在佛教中与“迷”相对,是佛教徒的修行目的,指依佛陀所教导的真理修
  • 扎黑丹扎黑丹(波斯语:زاهدان‎;俾路支语:زاهدان)位于伊朗东部邻近巴基斯坦边境处,是锡斯坦-俾路支斯坦省的省会,2016年人口约为58.7万。该市名称”Zahedan“是阿拉伯语词汇”
  • 中原中也中原中也(1907年4月29日-1937年10月22日),日本诗人、歌人、翻译,山口县人。旧姓柏村,因过继母系,改为中原,东京外国语学校(今东京外国语大学)専修科法语部毕业。父亲为军医军官柏村谦
  • 巴耳末系巴耳末系(Balmer series)或巴耳末线是原子物理学中氢原子六个发射谱线系列之一的名称。巴耳末系的计算可以使用约翰·巴耳末在1885年发现的巴耳末公式- 一个经验式。 来自氢原
  • 锡尔迪金锡尔迪金(英语:Ceredigion)是英国威尔士的一个郡,濒临卡迪根湾,面积为1783平方千米,于爱德华一世征服威尔士后所设,人口共75,900人,52%的居民使用威尔士语,境内拥有阿伯里斯特威斯大学
  • 美国联邦执法部门列表尽管大多数联邦执法人员都在司法和国土安全部门工作,但在其他行政部门以及联邦政府的立法和司法部门下,还有数十个其他联邦执法机构。 不同的联邦执法机构根据《美国法典》 (US