4、考虑下图所示的日志记录:
在这里插入图片描述

(1)如果系统故障发生在14之后,说明哪些事物需要重做,哪些事物需要回滚。
T1、T3提交,T2回滚,T4开始了但没有结束。
重做(REDO):T1,T3;
撤销(UNDO):T4。

(2)如果系统故障发生在10之后,说明哪些事物需要重做,哪些事物需要回滚。
T1提交。T2回滚,T3开始但没结束,T4未开始。
重做:T1;
撤销:T3。

(3)如果系统故障发生在9之后,说明哪些事物需要重做,哪些事物需要回滚。
T1提交,T2、T3开始但未结束,T4未开始。
重做:T1;
撤销:T2,T3.

(4)如果系统故障发生在7之后,说明哪些事物需要重做,哪些事物需要回滚。
T1提交,T2开始但未结束,T3,T4未开始。
重做:T1
撤销:T2

5、考虑题4所示的日志记录,假设开始时A,B,C的值都是0:
(1)如果系统故障发生在14之后,写出系统恢复后A,B,C的值;
T1,T3重做,T4撤销,
A=8,B=7,C=11。

(2)如果系统故障发生在12之后,写出系统恢复后A,B,C的值;
T1提交,T2回滚,T3,T4开始但未结束,所以T1重做,T3,T4撤销。
A=10,B=0,C=11。

(3)如果系统故障发生在10之后,写出系统恢复后A,B,C的值;
重做:T1;撤销:T3。
A=10,B=0,C=11

(4)如果系统故障发生在9之后,写出系统恢复后A,B,C的值;
T1提交。T2、T3开始但没结束,T4未开始。
T1重做,T2,T3撤销。
A=10,B=0,C=11

(5)如果系统故障发生在7之后,写出系统恢复后A,B,C的值;
T1重做,T2撤销
A=10,B=0,C=11

(6)如果系统故障发生在5之后,写出系统恢复后A,B,C的值;
T1,T2开始但未结束,T3、T4未开始。
T1、T2撤销。
A=0,B=0,C=0

在系统发生故障之前,提交了的事物需要重做,开始了但没有结束的需要撤销,已经回滚的不做操作,相当于没有进行。

系统恢复后,回滚和撤销的事物相当于没有执行,只需要考虑重做的事物就行。

结论:这次作业比较简单,掌握结论就可以做题。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐