二阶段提交

✍ dations ◷ 2024-12-23 00:29:42 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 查尔菲马丁·查尔菲(Martin Chalfie,1947年1月5日-),美国科学家,因为发现和研究绿色荧光蛋白而获得了2008年的诺贝尔化学奖。查尔菲在芝加哥长大,是吉他手伊莱·查尔菲(1910—1996)和服装店
  • 噬菌细胞吞噬细胞为一类防卫细胞,它们透过吞噬细菌、坏死细胞和凋亡细胞等有害物质来保卫有机体。其原文“Phagocytes”的前半部来自希腊语“phagein”(意为“食用、吞食”),后半部“-cy
  • 嫡妻嫡妻,或称正室、正妻、正房,俗称大老婆、大婆,是一夫多妻的家庭里面礼制上与丈夫平等的妻子。东亚古代男子一般同时只能有一位正妻,称为嫡妻;宋代之前,古中国只有贾充等数人因特殊
  • 克拉维酸钾克拉维酸是一种β-内酰胺类抗生素。它本身并不是强效的抗生素,但克拉维酸盐,即克拉维酸钾,和阿莫西林合成的阿莫西林克拉维酸钾则是一种非常常见的抗细菌药。此外它也可与替卡
  • 亚太牙医学生联合会亚太牙医学生联合会(Asia Pacific Dental Students Association,缩写 APDSA),为亚太牙医联盟(Asia Pacific Dental Federation,缩写 APDF/APDC)之附属组织,由来自亚太地区16个会员国
  • 堤坝或河堤是一条长长的,由泥土、石头、或混凝土造成的堆土、积墙或高岸,多为人工建造以用作预防水灾。人工堤的主要目的是避免洪水进入村庄或市镇,也减缓水道的自然变化,可供运
  • 蕃坊蕃坊是唐朝、宋朝专门为到中国经商居住的外国人设置于广州、泉州、杭州的区域。广州蕃坊在城西南,泉州蕃坊在城南,杭州蕃坊在城东清泰门内。蕃坊居民绝大多数是阿拉伯人、波斯
  • 隐藏式阴茎隐匿型阴茎一种病态阴茎。多见于肥胖体形的儿童,其特点为包茎,阴茎周围皮下脂肪很厚,阴茎皮肤发育不良,阴茎海绵体及尿道海绵体发育欠佳,阴茎体不能进入到阴茎皮肤及包皮腔内。因
  • 茭白茭白(学名:),又名茭白笋、加泽笋、葩白笋、菰、菰蒋、菰蒋草、美人腿、籧蔬‘尔雅’、菰菜、菰笋、茭笋、茭粑、茭瓜、高笋、茭首、茭草、茭耳菜、茭儿菜、古称为菰或菰芛。属禾
  • 感生放射性感生放射性(英语:Induced radioactivity)是指原本稳定的材料因为接受了特殊的辐射而产生的放射性。多数辐射不会诱导其他材料产生辐射。感生放射性是伊雷娜·约里奥-居里和弗雷