什么是两阶段提交协议

转载 2007年09月12日 10:07:00

两阶段提交协议

实现分布式事务的关键就是两阶段提交协议。在此协议中,一个或多个资源管理器的活动均由一个称为事务协调器的单独软件组件来控制。此协议中的五个步骤如下:

应用程序调用事务协调器中的提交方法。

事务协调器将联络事务中涉及的每个资源管理器,并通知它们准备提交事务(这是第一阶段的开始)。

为 了以肯定的方式响应准备阶段,资源管理器必须将自己置于以下状态:确保能在被要求提交事务时提交事务,或在被要求回滚事务时回滚事务。大多数资源管理器会 将包含其计划更改的日记文件(或等效文件)写入持久存储区中。如果资源管理器无法准备事务,它会以一个否定响应来回应事务协调器。

事务协调器收集来自资源管理器的所有响应。

在 第二阶段,事务协调器将事务的结果通知给每个资源管理器。如果任一资源管理器做出否定响应,则事务协调器会将一个回滚命令发送给事务中涉及的所有资源管理 器。如果资源管理器都做出肯定响应,则事务协调器会指示所有的资源管理器提交事务。一旦通知资源管理器提交,此后的事务就不能失败了。通过以肯定的方式响 应第一阶段,每个资源管理器均已确保,如果以后通知它提交事务,则事务不会失败。

图 1 和图 2 通过两个顺序图来说明两阶段提交协议。


图 1 事务提交

图 1 显示事务成功(提交)。图 2 显示由于某种原因,其中一个资源管理器无法提交时的两阶段提交协议。


图 2 事务被回滚

 

两阶段提交协议(two phase commit protocol,2PC)

两阶段提交协议(two phase commit protocol,2PC)可以保证数据的强一致性,许多分布式关系型数据管理系统采用此协议来完成分布式事务。它是协调所有分布式原子事务参与者,并决定提交...
  • shenlan211314
  • shenlan211314
  • 2012年02月22日 16:38
  • 24730

一致性算法之二: 两阶段提交协议 完整易理解

前提条件 系统节点分为:其中一个节点被设置为协调者,其他节点设置为参与者。 假定在每个节点上都有一个使用write-ahead log的稳定数据存储节点,说白了可以打日志,而且日志在persi...
  • dellme99
  • dellme99
  • 2013年11月05日 17:48
  • 2052

2PC 两阶段提交协议

2PC 二阶段提交(Two-phaseCommit)是指,在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。...
  • lezong2011
  • lezong2011
  • 2016年08月08日 10:48
  • 1052

事务的一阶段提交协议和二阶段提交协议

事务日志
  • lidaasky
  • lidaasky
  • 2014年09月04日 09:48
  • 2959

分布式事务-二阶段提交与三阶段提交

在分布式系统中,事务往往包含有多个参与者的活动,单个参与者上的活动是能够保证原子性的,而多个参与者之间原子性的保证则需要通过两阶段提交来实现,两阶段提交是分布式事务实现的关键。...
  • whycold
  • whycold
  • 2015年08月16日 14:19
  • 16055

关于分布式事务、两阶段提交协议、三阶提交协议

随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构...
  • fatshaw
  • fatshaw
  • 2016年06月08日 16:29
  • 1677

两阶段提交协议(two phase commit protocol,2PC)

两阶段提交协议(two phase commit protocol,2PC) 两阶段提交协议(two phase commit protocol,2PC)可以保证数据的强一致性,许多分布式关系...
  • chenglinhust
  • chenglinhust
  • 2014年09月13日 16:28
  • 1375

什么是两阶段提交协议 (2阶段提交协议)

两阶段提交协议实现分布式事务的关键就是两阶段提交协议。在此协议中,一个或多个资源管理器的活动均由一个称为事务协调器的单独软件组件来控制。此协议中的五个步骤如下:•应用程序调用事务协调器中的提交方法。•...
  • cxzhq2002
  • cxzhq2002
  • 2011年03月18日 17:27
  • 370

两阶段提交协议与三阶段提交协议

在分布式系统中通常存在着多个机器节点,每个节点只能控制自己事务的成功与失败而无法获知其他节点的事务执行结果,这时当事务操作跨越多个节点时就会存在无法满足分布式系统ACID中的数据一致性(Consist...
  • maguanghui_2012
  • maguanghui_2012
  • 2016年06月07日 10:17
  • 373

关于分布式事务、两阶段提交协议、三阶提交协议

随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。 为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高...
  • zbuger
  • zbuger
  • 2016年09月06日 20:52
  • 485
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:什么是两阶段提交协议
举报原因:
原因补充:

(最多只允许输入30个字)