锁转换更新锁



我正在阅读您的书《事务处理原理》第6章,其中解释的更新锁的概念对我来说不是很清楚。基本上,我不清楚的是,当您尝试将更新锁升级为写锁时,锁定转换死锁是否会发生。假设在更新锁到写锁的转换过程中没有发生死锁。那么你能不能没有以下场景

u1 r2 [x] [x] [x] 1 [z] w2 [z]。

u1[x]表示事务1对x有更新锁。

所以在上面的历史事务中,2在x上位于1之前,而在z上位于1之后。这是否违反了序列化性?如果你能帮我澄清这个问题,我将非常感激。

哦,nvm,我刚刚读到书上说,如果你有并发读操作,你不能从更新锁升级到写锁。所以,是的,它不会违反序列化:)。此外,如果有人碰巧发现了这一点,您不能将读锁升级为更新锁,因为这实际上也会由于锁转换而导致死锁。

最新更新