意向锁及相容矩阵的理解

意向锁

  要了解意向锁,必须先讲一下对某一数据对象加锁时系统的检查内容:
  1. 先检查该数据对象上有无显式封锁与之冲突。
  2. 检查要加到该对象上的锁是否与对象上的隐式封锁(由于上级结点已加的封锁造成的)冲突。
  3. 检查该数据对象的所有下级结点,看它们的显式封锁是否与将加到它们上的封锁(隐式封锁)冲突。
  显然这种检查方法的效率很低,所以需要引进新的锁——意向锁。

意向锁含义:如果对一个结点加意向锁,则说明该结点的下层结点正在被封锁;对任一结点加锁时,必须先对它的上层结点加意向锁。

意向锁作用:提高对某个数据对象加锁时系统的检查效率。有了意向锁,数据库管理系统就不用逐个检查下级结点的显式封锁。

相容矩阵

  

  需要注意的几点:
  1. T1加S,T2加IX不相容,因为IX对子结点意向加X锁(有可能性),这与子节点的隐式封锁冲突。
  2. T1加IS,T2为IX/SIX都相容,因为它们都只是“意向”,还没有真冲突。

猜你喜欢

转载自www.cnblogs.com/ysl-unh/p/10986792.html