【问题标题】:lock conversion update locks锁转换更新锁
【发布时间】:2013-03-02 20:38:39
【问题描述】:

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

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

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

所以在上面的历史记录中,交易 2 在 x 上的 1 之前,但在 z 上的 1 之后。这不违反可序列化性吗?

如果您能帮我解决这个问题,我将不胜感激。

【问题讨论】:

    标签: database transactions locking


    【解决方案1】:

    哦,nvm,我刚刚读到书上说,如果你有并发读取操作,你不能从更新锁升级到写锁。所以是的,它不会以这种方式违反可序列化性:)。此外,如果有人碰巧遇到这种情况,您不能将读锁升级为更新锁,因为这也会因锁转换而导致死锁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      • 2013-03-22
      相关资源
      最近更新 更多