Chinaunix首页 | 论坛 | 博客
  • 博客访问: 181338
  • 博文数量: 36
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 445
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-26 10:26
文章分类

全部博文(36)

文章存档

2010年(3)

2009年(18)

2008年(15)

我的朋友

分类:

2009-07-25 12:19:44

two-phase commit(2PC)

两阶段提交

分布式系统中处理用户提交的担任时,操作器(或操作监视器)通常使用两阶段提交协议保证所有操作涉及到的被锁定然后被正确地更新。如果因为某种原因操作不能完成,要求执行“滚回”操作,回到操作开始前的状态。如果操作被成功执行,要求所有相关的数据库被更新,并要求所有计算机上的数据库都知道某些数据库的数据已经被更新。最后解除相关数据库的锁定状态,以便进行下一个操作。

以下是此协议的简单过程:操作管理器在一台计算机上,它处于中心结点的位置,以操作发起者的身份开始工作,它首先在日志文件中写入一条“开始操作”的记录,然后发送相应的请求到相关的计算机上。每个参与操作的计算机也将此操作写在它自己的日志上,然后锁定数据库资源仅供此操作使用,在这完成以后向操作管理器所在的计算机发送“准备好”消息。当操作管理器所在计算机接收到所有的“准备好”消息后,它在日志上记录此操作已经完成,并通知其它计算机,当其它计算机接收到此通知后,这些计算机将完成记录在日志上,并解除对资源的锁定。如果在执行操作时,任何一台计算机失败,操作管理器所在计算机将通知所有相关的计算机执行“滚回”操作,恢复为操作开始之前的状态。

阅读(1464) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~