二阶段提交

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

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

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

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

.

相关

  • 双糖双糖(英语:Disaccharide,亦称为二糖)是由两个单糖分子经缩合反应除去一个水分子而成的一种碳水化合物。双糖和单糖一样可溶于水。常见的双糖为蔗糖、乳糖、麦芽糖。蔗糖是由葡萄
  • 珍·芳达简·西摩·方达(英语:Jane Seymour Fonda,1937年12月21日-)是一名美国女演员,其父是奥斯卡影帝亨利·方达、胞弟是彼得·方达,两人皆为演员。1971年她在《柳巷芳草》中扮演一位狡猾
  • 根茎根茎(英语:Rhizome)是植物在地下变态茎的一种。某些植物的枝干部分,但是并不在地面以上生长,而是在土壤中生长,从形态上看,又似植物的根。但根的作用是吸收土壤中的水和矿物质,而根
  • 铁系元素铁系元素是指铁、钴、镍这三种性质相似的元素,它们在周期表中分别位居8族、9族及10族(合称ⅧB 族)之首,位于6个铂系元素上方。铁系元素电子壳层的最外层都有两个电子,但第二外层
  • 全通型量子通讯网量子网络(英语:quantum network),是指在多个通信节点间,利用量子密钥分发进行安全通信的网络。各节点间产生的量子密钥可以对传统的语音、图像以及数字多媒体等通信数据进行加密
  • 经方经方,中医术语,有两种意义,一是指医家在治疗过程中发现确有疗效的“经验之方”,一是指在张仲景著作伤寒论、金匮要略中使用过的“医经之方”。在明清之前,经方一词主要是指“经验
  • 台湾潮州人台湾潮州人,是台湾的一个已经被文化灭绝的消失群体,指祖籍为清代潮州府地区,本属潮州民系移民来台的台湾汉人先祖(其所用的潮州话与闽南语泉漳话有祖缘关系)。台湾潮州人分散在台
  • 水芹水芹(学名:Oenanthe javanica),通称水芹菜,别称楚葵、蜀芹、唐芹、野芹菜、爪哇水芹(Java waterdropwort)等,伞形目伞形科水芹属的一个物种,原产于亚洲东部。Minari-muchim (seasoned
  • 褐紫红栗色,又称褐紫红、深红(英文:Maroon)是红色之一,由棕色和紫色混合而成。虽然栗色没有混合红色,但栗色被认为是深红色的一种。英文辞源从法文marron(意指“栗子”)获得,但没有成为一个
  • 护城河护城河,亦作城壕或城濠,是古时由人工挖凿,环绕整座城、宫城、寺院等主要建筑的河,具有防御作用,可防止敌人或动物入侵。世界各国在古代已有开凿护城河。在中国大陆北京的紫禁城、