二阶段提交

✍ dations ◷ 2025-12-07 15:05:28 #分布式计算,数据管理,计算机科学

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

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

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

.

相关

  • 鼠型斑疹伤寒鼠型斑疹伤寒,即是地方性斑疹伤寒(endemic typhus),病原体为伤寒立克次体(Rickettsia typhus),主要流行于家鼠之间,印度鼠蚤为由鼠类传给人的主要媒介。跳蚤吸血后获得病原体,其在中
  • 医用大麻医用大麻(法语:Cannabis médical; 英语:medical cannabis或medical marijuana)是可用于医疗处方的大麻或大麻素。相比娱乐用大麻的高强度THC,医用大麻拥有相对较高的大麻二酚(CBD)
  • 达费林伯爵汉密尔顿-坦普尔-布莱克伍德弗雷德里克·坦普尔·汉密尔顿-坦普尔-布莱克伍德,第一代达费林和阿瓦侯爵(Frederick Temple Hamilton-Temple Blackwood, 1st Marquess of Dufferin and Ava,1826年6月21日-190
  • 麻省理工学院出版社麻省理工学院出版社 是一个大学出版社 隶属于 马萨诸塞技术学院 (MIT), 位于 剑桥,马萨诸塞 (美国)。麻省理工学院出版社的历史可以追溯到1926年,当时麻省理工学院以自己的名
  • 国家情报院国家情报院(韩语:국가정보원),简称国情院(국정원,NIS),是大韩民国的情报及国家安全机关。韩国情报院前身为中央情报部(中情部,KCIA,1961年-1980年)和国家安全企划部(安企部,ANSP,1980年-1998
  • 尉氏县尉氏县是中华人民共和国河南省开封市下辖的一个县,入选全国水利百强县。位于国家战略中原经济区建设的核心区之内,目前下辖:两湖街道、洧川镇、朱曲镇、蔡庄镇、永兴镇、张市镇
  • 法国国防部 政治主题法国国防部(法语:Ministère des Armées),正式名称为军部,为法国政府内阁的组成部分之一,负责法国军事事务。
  • 复合八面体立方体在几何学中,复合八面体立方体(英文:Compound of cube and octahedron),又被称为八面体-正方体复合体,是一种非凸多面体,属于星形多面体,外观看起来像一个正八面体和立方体卡在一起。
  • 似血杜鹃似血杜鹃(学名: sp. )为杜鹃花科杜鹃属下的一个亚种。是中国国家二级保护植物。地理分布与生态环境仅产于中国云南西北部苍山东、西坡;生于海拔3200~4050m的冷杉林下或高山杜鹃灌
  • 阿伊努革命论阿伊努革命论是日本新左翼的一个政治思想,也是穷民革命论的一个亚种,以阿伊努人为焦点。1960年代末,全学共斗会议运动的兴起使新左翼运动中的穷民革命论开始抬头。该理论认为“