Posted on 2011-12-21 14:30
Prayer 阅读(1945)
评论(0) 编辑 收藏 引用 所属分类:
数据库,SQL 、
DB2
一阶段提交(1PC One Phase Commit)
一 阶段提交就是事务处理器向数据库服务器发出提交请求,然后等待数据库服务器的回应,收到回应后完成事务的提交,或者服务器返回提交失败的结果就回撤事务。 危险期从发出请求开始,到收到回应结束,这段时间中数据库完成数据的修改、日志记录等处理,处理越复杂,危险期就越长。
两阶段提交(2PC Two Phase Commit)
两阶段提交把事务提交分成两个阶段:
- 第一阶段,事务处理器向数据库服务器发出"准备提交"请求,数据库收到请求后执行相同的数据修改和日志记录等处理,不同的是处理完成后只是把事务的状态改成"可以提交",然后把结果返回给事务处理器。
- 事务处理器收到回应后进入第二阶段,如果在第一阶段内的危险期中发生了故障,事务处理器收不到回应,则认为事务失败,回撤事务。数据库服务器收不到第二阶段的确认提交请求,把"可以提交"的事务回撤.
- 两阶段的第二阶段中事务处理器向数据库服务器发出"确认提交"请求,数据库服务器把事务的"可以提交"状态改为"提交完成"状态,然后返回应答。
从严格意义上说,两阶段提交并没有完全解决网络通讯危险期的问题,但因为第二阶段的处理很简单,只是修改了事务的状态,与第一阶段相比其处理时间极短,所以危险期极短,发生事务提交故障的可能性几乎不存在。
所谓两阶段提交, 即Two Phase Commit (2PC), 是分布式事务采用的一种处理