二阶段提交

✍ dations ◷ 2025-09-14 11:57:20 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 肌钙蛋白肌钙蛋白(英语:Troponin)是由三种调节蛋白(肌钙蛋白C、肌钙蛋白I(英语:troponin I)和肌钙蛋白T(英语:troponin T))组成的复合物,是骨骼肌和心肌(不包括平滑肌)肌肉收缩不可或缺的组分。
  • 伊利诺伊大学厄巴纳-香槟分校伊利诺伊大学厄巴纳-尚佩恩分校(英语:University of Illinois at Urbana-Champaign,简称U of I,亦简称作UIUC)位于美国伊利诺伊州厄巴纳-尚佩恩市,是一所享有世界声望的一流公立研究
  • 苎麻苎麻(学名:Boehmeria nivea)为荨麻科苎麻属的一种。原生于东亚,包括中国及中印半岛等地区。作为农作物而被引入到世界各地。本种的茎皮纤维可用来织布、造纸;根及叶可入药;种子可
  • 水泥埋尸事件女子高中生水泥埋尸案(或称绫濑水泥杀人事件)是1988年11月至1989年1月发生在日本东京都足立区绫濑(日语:綾瀬 (足立区))的绑票、禁锢、强奸、性虐待、暴行罪(日语:重傷害)、谋杀和死
  • 佛法法(梵语:धर्म,转写:dharma;巴利语:धम्म,转写:dhamma),可直译为万法、轨则等,音译为达磨、达摩、驮摩、昙无、昙,佛教术语,指佛教对世间、出世间的所有义理与修证的开示。世间所有
  • 陆继辂陆继辂(1772年-?),字祁孙,别字修平、又商、商对、季木,号修平居士,别署小元池居士,室号崇百药斋、靃庄、龙蛇影外风雨声中之轩。江苏省阳湖县人,嘉庆五年庚申恩科举人,道光十一年任江西
  • 束棒束棒(英语:fasces),音译“法西斯”,在古罗马是权力和威信的标志。束棒是一根被多根绑在一起的木棍围绕的斧头。在官方场合下高级官员的卫兵在他的前面持束棒来代表到来的官员的级
  • 贴身舞贴身舞是舞伴舞的一种,即两个或多个舞伴以互相摩擦对方身体的方式跳舞。做为一种新近出现的现代舞,贴身舞最早在夜总会风靡,后来更流行于美国和加拿大的年轻学生之间。由于不赞
  • 阿曼达·米林阿曼达·安妮·米林(英语:Amanda Anne Milling,1975年3月12日-)是英国保守党政治人物,现任下院坎诺克蔡斯选区议员,保守党主席兼内阁不管部大臣。 特蕾莎·梅内阁 (第一次·第二次
  • 建筑工程管理建筑工程管理(Construction Management,缩写 CM) ,或营建工程管理(Construction Project Management,缩写 CPM)是专案管理在营建工程(英语:Construction engineering)中的应用.所指的