第八章并发控制内容摘要:

量元组的用户事务:以关系为封锁单元;  只处理少量元组的用户事务:以元组为封锁单位 封锁的粒度 封锁粒度 多粒度封锁 意向锁 多粒度封锁 多粒度树  以树形结构来表示多级封锁粒度 根结点是整个数据库,表示最大的数据粒度 叶结点表示最小的数据粒度 多粒度封锁(续) 例:三级粒度树。 根结点为数据库,数据库的子结点为关系,关系的子结点为元组。 数据库 关系 Rn 关系 R1 元组 元组 元组 元组 …… …… …… 多粒度 封锁协议  允许多粒度树中的每个结点被独立地加锁 对一个结点加锁意味着这个结点的所有后裔结点也被加以同样类型的锁 在多粒度封锁中一个数据对象可能以两种方式封锁: 显式封锁和隐式封锁 显式封锁和隐式封锁 显式封锁 : 直接加到数据对象上的封锁 隐式封锁 : 由于其上级结点加锁而使该数据对象加上了锁 显式封锁和隐式封锁的效果是一样的 对某个数据对象加锁时系统检查的内容  该数据对象 – 有无显式封锁与之冲突  所有上级结点 – 检查本事务的显式封锁是否与该数据对象上的隐式封锁冲突: (由上级结点封锁造成的)  所有下级结点 – 看上面的显式封锁是否与本事务的隐式封锁 (将加到下级结点的封锁) 冲突。 封锁的粒度 封锁粒度 多粒度封锁 意向锁 意向锁 引进意向锁( intention lock)目的 – 提高对某个数据对象加锁时系统的检查效率 什么是意向锁 对任一结点加基本锁,必须 先 对它的上层结点 加意向锁 如果对一个结点加意向锁,则说明该结点的 下层结点 正在被加锁 意向锁 (续 ) 例:对任一元组 r 加锁,先关系 R加意向锁  事务 T要对关系 R加 X锁 , 系统只要检查根结点数据库和关系 R是否已加了不相容的锁,  不需要搜索和检查 R中的每一个元组是否加了X锁 常用意向锁 意向共享锁 (Intent Share Lock,简称 IS锁 ) 意向排它锁 (Intent Exclusive Lock,简称 IX锁 ) 共享意向排它锁 (Share Intent Exclusive Lock,简称 SIX锁 ) 意向锁(续) IS锁 – 如果对一个数据对象加 IS锁 , 表示它的后裔结点拟 ( 意向 ) 加 S锁。 例:要对某个元组加 S锁 , 则要首先对关系和数据库加 IS锁 意向锁(续) IX锁 – 如果对一个数据对象加 IX锁,表示它的后裔结点拟(意向)加 X锁。 例:要对某个元组加 X锁,则要首先对关系和数据库加 IX锁。 意向锁(续) SIX锁 – 如果对一个数据对象加 SIX锁,表示对它加S锁,再加 IX。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。