|
知识路径: > 数据库技术 > 事务管理 > 数据库的并发控制 > 封锁协议 > 多粒度封锁协议 >
|
相关知识点:3个
|
|
|
|
多粒度封锁协议(multiple-granularity looking protocol)允许多粒度树中的每个结点被独立地加锁,对某结点加锁意味着该结点的所有后代结点也被加了同类型的锁。
|
|
|
多粒度封锁协议采用这些锁(S、IS、X、IX和SIX)可以保证调度的可串行性。每个事务T,要求按如下规则对结点Q加锁:
|
|
|
|
(2)事务T必须首先封锁根结点,且可以加任意类型的锁。
|
|
|
(3)仅当T当前对结点Q的父结点持有IX和IS锁时,T对结点Q可加S锁或IS锁。
|
|
|
(4)仅当T当前对结点Q的父结点持有IX和SIX锁时,T对结点Q可加X锁、SIX锁或IX锁。
|
|
|
(5)仅当T未曾对任何结点解锁时,T可对结点加锁,即T是两阶段的。
|
|
|
(6)仅当T不持有Q的子节点的锁时,T可对结点Q解锁。
|
|
|
注意:多粒度封锁协议要求加锁按自顶向下(从根到叶)的顺序进行,而锁的释放则按自底向上(从叶到根)进行。
|
|
|
总之,并发控制的方法还有许多种。如基于时间戳协议、基于有效性检查协议、快照隔离等等,详细内容可参考相关书籍和资料,在此不做赘述。
|
|
|