二阶段提交

✍ dations ◷ 2025-12-06 23:24:59 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 东哥德人东哥特人(Ostrogoths),港、台译作东哥德人,是哥特人的一个分支,3世纪时曾在黑海北边建立一个帝国。5世纪末在意大利建立东哥特王国。东哥特人自波罗的海地区向南扩张,建起一个其幅
  • 棘头动物门棘头动物门(学名:Acanthocephala)是动物界的一个门。是一类身体前端有吻,吻上有钩刺的假体腔动物。棘头动物属于寄生动物,吻上的钩刺用来抓住它的寄主肠壁。它们具有复杂的生命周
  • 大蕉大蕉是香蕉(学名:Musa × paradisiaca,云南亦称粉芭蕉)的人工选育品系之一。由野蕉和小果野蕉杂交而成,原产于印度,公元六世纪时传至非洲。十八世纪始传入南美洲。现在热带地区多
  • 创造力创造力,或创造性、才思,是一种基于概念工具及精神上技巧的人类精神现象而最终产生或发展为创意、启发及直觉的过程。从一个科学观点去看,创造性思想的产品(有时称作离散思维)通常
  • 下斜肌下斜肌(英语:Inferior oblique muscle 或 obliquus oculi inferior)是个薄薄的、狭长的肌肉位于眼窝底部腹侧的边缘,附着于上颌骨(肌肉起端)和眼睛腹侧、下方、外侧的表面(插入),受动
  • 芬兰菜芬兰饮食的特色是全麦制品(裸麦、大麦、燕麦)及莓类(蓝莓、越橘、云莓、沙棘),牛奶与相关衍生产品(酪乳等)也相当普遍。传统芬兰常使用各种萝卜料理,直到18世纪引进马铃薯后便取而代
  • 电车连线伦敦轻轨电车(英语:London Tramlink),简称轻轨电车(英语:Tramlink),是一个位于伦敦南部、以克罗伊登区为中心的有轨电车系统。 该系统于2000年启用,是伦敦自1952年淘汰所有电车后重新
  • 次氯酸钙次氯酸钙是钙的次氯酸盐,化学式为Ca(ClO)2,是漂白粉的主要成分之一,有杀菌性及氧化性。与其性质类似的还有氯气及次氯酸钠,但是它们都不如次氯酸钙的稳定性高。漂白粉的组分包含
  • 芭芭拉·布什 (1981年出生)芭芭拉·皮尔斯·布什(英语:Barbara Pierce Bush,1981年11月25日-),前美国第一千金,也是历任美国第一家庭里的唯一双胞胎子女。她在1981年11月25日于达拉斯的贝勒大学医学中心出生,
  • 剑桥大学默里·爱德华兹学院剑桥大学默里·爱德华兹学院(英语:Murray Edwards College, Cambridge) 是剑桥大学的一所女子学院。此学院成立时并没有捐款人,因此并未像其他学院般用捐款人名字命名,原名新学堂