我正在读你的书的第6章,事务处理的原理和更新锁的概念,对我来说并不是很清楚。基本上,我不清楚的是,当您尝试将更新锁升级为写锁时,不会发生锁定转换死锁。比方说,在更新锁到写锁的转换过程中不会发生死锁。那么你可以不使用下面的场景吗?
u1xr2xw1xw1zw2z。
u1x意味着事务1在x上有一个更新锁。
所以在上面的历史中,事务2在x上是在1之前,但在z上是在1之后。这不会违反可序列化吗?
如果你能帮我把这个弄清楚,我将不胜感激。
发布于 2013-03-03 05:01:21
哦,nvm,我刚刚看到书上说,如果你有并发的读操作,你就不能从更新锁升级到写锁。所以,是的,它不会违反可序列化的方式:)。另外,如果有人碰巧发现了这一点,你就不能将读锁升级为更新锁,因为这本质上也会导致锁转换的死锁。
https://stackoverflow.com/questions/15179206
复制相似问题