mysql事务的级联回滚_数据库事务调度的可恢复性和级联回滚

对于一次调度其中涉及的相关事务,无论是什么原因,如果事务Ti失败了,为保证事务的原子性我们必须撤消该事务对数据库造成的影响,即将事务Ti回滚。同时由于系统中事务的并发执行,还必须确保那些依赖于Ti的任何事务Tj(即Tj读取了由Ti所写的数据)也必须同时撤消掉(即回滚掉)。

(1)可恢复调度与不可恢复调度

如图1所示,事务T7读取了事务T6所写的数据A,如果事务T6发生故障而回滚,就有可能引起T7的回滚,因此事务T6必须在T7提交之前进行提交,才能保证调度中事务是可恢复的。

0818b9ca8b590ca3270a3433284dd417.png

图1

对于可恢复调度,我们可以假设事务T7先提交,而事务T6后提交,事务T6在提交的过程中发生了故障,这时候事务T6可以回滚,而事务T7已经提交成为结束的事务,因此无法回滚,这势必造成调度中的事务无法恢复,因此事务T6必须先于事务T7提交,才能保证数据库在执行事务出现中断时,可以会滚到数据库 原来的状态。

由上可以看出,对于每对事务Ti和Tj,如果Tj读取了由Ti所写的数据项,则Ti应先于Tj提交。我们把这样的调度称为可恢复调度。相反,如果在调度中,Tj读取了Ti写入的值,而且先于Ti执行提交操作,那么这个调度室不可恢复的。

(2)级联回滚和无级联回滚

个人对级联回滚理解是这样的:有两个人(两个事务Ti和Tj)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值