二阶段提交

✍ dations ◷ 2025-12-02 12:44:50 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 腮腺炎病毒流行性腮腺炎病毒,或称腮腺炎病毒,是指引起腮腺、舌下腺、颚下腺肿大、头痛、发烧,能引起多种并发症,男性还易引起睾丸肿胀。现存的野生型种为88-1961。
  • 河盲症蟠尾丝虫症或蟠尾丝虫病(拉丁语:Onchocerciasis),又名河川盲、河盲症(river blindness),是一种因感染蟠尾丝虫引起的疾病。病状包括严重搔痒、皮下肿块,以及失明。是全球仅次于沙眼
  • 鹅颈瓶鹅颈瓶是一种由特殊形状的管道引向烧瓶的实验设备。“鹅颈”会降低空气在管中流动的速度,空气中的粒子,比如细菌,会困在其潮湿的内表面上。将瓶中液体煮沸,杀死瓶中微生物后,只要
  • 加尔文派加尔文主义(法语、荷兰语:Calvinisme;英语:Calvinism),亦称为归正主义,是16世纪法国与瑞士基督新教宗教改革家约翰·加尔文毕生之主张,以及支持加尔文的其他神学家意见的统称,在不同
  • 量化测试一篮子货币(currency basket,又称货币组合、一篮通货)是具有不同权重的所选货币的组合,通常用于降低汇率波动的风险。 例如欧洲共同体成员国使用的货币欧元。 另一个例子是国际
  • 游戏节目游戏节目是一种以游戏为主题的电视或广播节目。常以个人或团体为单位进行,为求节目效果精彩,亦常带有竞赛性质。通过所有关卡或者一定阶段关卡的参赛者,将获得一些奖品,如现金、
  • 铁板烧铁板烧是日本料理的一类,是以一块大铁板把食物加热,由厨师在铁板上烧烤及处理各种食材。常见的铁板烧料理有日本式烧肉及源自日本关西地区的御好烧等。铁板烧发源于幕末,是由传
  • TAS2R42味觉感受器,类型2,成员42,TAS2R42 是一个人类基因组中基因编码的蛋白质,是苦味味觉感受器的一员。
  • 文艺复兴音乐文艺复兴音乐约为公元1400年-1600年,在中世纪“新艺术”的基础上,更加追求人性的解放与对人的内心情感的抒发与表达。这时的音乐家在人文主义思潮的推动下,对复调音乐进行了发展
  • 巨口鱼科巨口鱼科(学名:Stomiidae),是辐鳍鱼纲巨口鱼目的其中一科。巨口鱼科下分27个属,如下: