回退后时间表中的事务什么时候重新开始?

时间:2019-09-09 07:48:08

标签: transactions locking

我最近开始学习数据库的事务和并发控制。 我的问题是关于两阶段协议中的回滚-有人可以向我解释,回滚后计划中的失败事务重新开始的确切时间是什么时候?

比方说,我以交易T1,T2,T3的时间表为例:

T1 ___________ T2 ___________ T3

R(J)_____________________

_____________ W(J)________

_____________ R(W)________

_____________ W(W)________

_________________________ R(R)

_________________________ W(R)

R(P)_____________________

_________________________ W(P)

R(R)_____________________

R(W)_____________________

W(JW)____________________

_________________________ R(JW)

_________________________ R(P)

_________________________提交

___________ commit _________

提交____________________

假设我正在按照此计划使用伤口等待模式运行Rigorous 2PL。然后,当T1到达第一个“ R(R)”时,T1会缠绕T3。我的问题是T3应该何时重启?

一般来说,有什么经验法则吗?

预先感谢

0 个答案:

没有答案