二阶段提交

✍ dations ◷ 2025-12-07 07:55:57 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • GeckoGecko是一套自由及开放源代码、以C++编写的排版引擎,当前为Mozilla Firefox网页浏览器以及Mozilla Thunderbird电子邮件客户端等Mozilla基金会相关产品所使用。Gecko原本由网
  • CaCA、Ca、或ca可以指:
  • 培根弗兰西斯·培根,第一代圣阿尔本子爵(Francis Bacon, 1st Viscount St Alban,1561年1月22日-1626年4月9日),著名英国哲学家、政治家、科学家、法学家、演说家和散文作家,是古典经验
  • 2,3-丁二醇2,3-丁二醇(英语:2,3-Butanediol)是化学式为(CH3CHOH)2的二元醇,带有两个手性碳原子,其中的(2R,3S)-2,3-丁二醇为内消旋化合物,因此总共有三种立体异构体。三种2,3-丁二醇在物理性
  • 不可逆在热力学领域中,不可逆过程(Irreversible process)是相对可逆过程而言的,指的是在时间反演变换下只能单向进行的热力学过程,这种热力学过程所具有的性质被称作不可逆性。从热力学
  • 尼古埒苏克齐汗额勒伯克·尼古埒苏克齐汗(蒙古语:.mw-parser-output .font-mong{font-family:"Menk Hawang Tig","Menk Qagan Tig","Menk Garqag Tig","Menk Har_a Tig","Menk Scnin Tig","O
  • 东部干线公路总局 民用航空局 高速公路局 航港局 铁道局台湾铁路管理局 中华邮政公司 台湾港务公司 桃园国际机场公司国道 省道 县道 - 市道(列表) 乡道 - 区道 专用公路 编号与名称对
  • 索尼音乐娱乐索尼音乐娱乐(英语:Sony Music Entertainment),简称索尼音乐(Sony Music)或SME,是索尼公司旗下音乐事业群,总部位于美国纽约市,为全球第二大唱片公司,也是全球三大唱片公司之一。2019
  • 国会二院执政联盟(76)在野党(74)荷兰政府与政治 系列条目国会二院(荷兰语:Tweede Kamer der Staten-Generaal)是荷兰国会的下议院。它拥有150个席位,议员由采用政党名单比例代表制的选举产生
  • 由旬由旬(巴利语、梵语:योजना,yojanā),是古印度的一个长度单位,佛教沿用。又译逾阇那、逾缮那、瑜膳那、俞旬、由延。原来指公牛挂轭走一天的旅程。yojana或yojanā,本义为附轭,来