二阶段提交

✍ dations ◷ 2025-11-15 21:29:56 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 勃艮第勃艮第公国(法语:Duché de Bourgogne;拉丁语:Ducatus Burgundiae;荷兰语:Hertogdom Bourgondië)是一个曾存在于918年-1482年间的欧洲国家,领土曾囊括今法国东部勃艮第-弗朗什-孔泰
  • 去甲变肾上腺素去甲变肾上腺素 (英语:Normetanephrine)是去甲肾上腺素经由儿茶酚-O-甲基转移酶作用产生的代谢物。由尿液排泄。它是释放儿茶酚胺的肿瘤的标记物,如嗜铬细胞瘤(英语:pheochromoc
  • 三甲苯三甲苯是苯环上连接三个甲基而形成的烃类化合物,分子式为 C6H3(CH3)3 ,包括三个同分异构体:
  • 主细胞胃主细胞为胃中负责分泌胃蛋白酶原及胃脂酶(英语:gastric lipase)的细胞。在反刍动物身上,该细胞还负责凝乳酶的分泌。该细胞的细胞质内由于含有大量的粗糙内质网H&E染色下会成
  • 一级方程式世界车手冠军F1车手世界冠军(英语:Formula One World Drivers' Championship ,WDC)是由国际汽联颁发的用以奖励在一个赛季中最为成功的车手。这一奖励的归属取决于车手在各个分站赛中的表现,
  • 驻日大使馆外国驻日本国机构列表为世界各国驻在日本的大使馆、总领事馆列表。皆座落于东京都一部分为名誉总领事馆、名誉领事馆多数为驻中华人民共和国大使馆兼任驻日大使馆,例外者则特
  • 鲯鳅鲯鳅(学名:Coryphaena hippurus),俗名三保公鱼、飞虎、海(鱼廉)、鬼头刀,夏威夷语中称mahi-mahi,为辐鳍鱼纲鲈形目鲈亚目鱰科鲯鳅属的一种。本鱼分布于全球各大洋温暖水域。本鱼体延
  • 百代唱片百代唱片可能指:
  • 公共财政经济政策财政政策 · 货币政策贸易政策 · 投资政策农业政策 · 产业政策能源政策 · 社会政策政策组合税收政策 · 预算政策政府收入 · 政府支出政府预算 · 赤字政府债
  • 查理六世 (神圣罗马帝国)查理六世(Karl VI,1685年10月1日-1740年10月20日),神圣罗马帝国皇帝)(称查理六世,Charles VI)、罗马人民的国王(称卡尔六世,Karl VI)(1711年-1740年在位),奥地利大公(称卡尔三世,Ka