11数据库第十一篇并发控制.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
离散数学 一、什么是封锁粒度 X锁和S锁都是加在某一个数据对象上的 封锁的对象:逻辑单元,物理单元 例:在关系数据库中,封锁对象: 逻辑单元:属性值、属性值集合、元组、关系、 索引项、整个索引、整个数据库等 物理单元:页(数据页或索引页)、物理记录等 离散数学 一、什么是封锁粒度 封锁对象可以很大也可以很小 例: 对整个数据库加锁 对某个属性值加锁 封锁对象的大小称为封锁的粒度(Granularity) 多粒度封锁(multiple granularity locking) 在一个系统中同时支持多种封锁粒度供不同的事务 选择 离散数学 二、选择封锁粒度的原则 封锁的粒度越 大,小, 系统被封锁的对象 少,多, 并发度 小,高, 系统开销 小,大, 选择封锁粒度: 考虑封锁开销和并发度两个因素 对系统开销与并发度进行权衡 离散数学 二、选择封锁粒度的原则 需要处理多个关系的大量元组的用户事务:以数据库 为封锁单位 需要处理大量元组的用户事务:以关系为封锁单元 只处理少量元组的用户事务:以元组为封锁单位 离散数学 11.6.2 多粒度封锁 多粒度树 以树形结构来表示多级封锁粒度 根结点是整个数据库,表示最大的数据粒度 叶结点表示最小的数据粒度 例:三级粒度树。根结点为数据库,数据库的子结点为 关系,关系的子结点为元组。 数据库 关系Rn 关系R1 元组 元组 元组 元组 …… …… …… 离散数学 11.6.2 多粒度封锁 多粒度封锁协议 允许多粒度树中的每个结点被独立地加锁 对一个结点加锁意味着这个结点的所有后裔结点也 被加以同样类型的锁 多粒度封锁中一个数据对象可能以两种方式封锁: 显式封锁和隐式封锁 离散数学 11.6.2 多粒度封锁 对某个数据对象加锁时系统检查的内容 该数据对象:有无显式封锁与之冲突 所有上级结点:检查本事务的显式封锁是否与该 数据对象上的隐式封锁冲突(由上级结点封锁造成) 所有下级结点:看上面的显式封锁是否与本事务的 隐式封锁冲突(将加到下级结点的封锁) 离散数学 11.6.3 意向锁 引进意向锁(intention lock)目的 提高对某个数据对象加锁时系统的检查效率 什么是意向锁 对任一结点加基本锁,必须先对它的上层结点加 意向锁 如果对一个结点加意向锁,则说明该结点的下层 结点正在被加锁 离散数学 11.6.3 意向锁 例:对任一元组 r 加锁,先对关系R加意向锁 事务T要对关系R加X锁,系统只要检查根结点数据库 和关系R是否已加了不相容的锁 不需要搜索和检查R中的每一个元组是否加了X锁 离散数学 11.6.3 意向锁 常用意向锁(intention lock) 意向共享锁(Intent Share Lock,简称IS锁) 意向排它锁(Intent Exclusive Lock,简称IX锁) 共享意向排它锁(Share Intent Exclusive Lock,简称SIX锁) 离散数学 IS锁 如果对一个数据对象加IS锁,表示它的后裔结点拟(意向)加S锁。 例:要对某个元组加S锁,则要首先对关系和数据库 加IS锁 IX锁 如果对一个数据对象加IX锁,表示它的后裔结点拟(意向)加X锁。 例:要对某个元组加X锁,则要首先对关系和数据库 加IX锁。 11.6.3 意向锁 离散数学 11.6.3 意向锁 SIX锁 如果对一个数据对象加SIX锁,表示对它加S锁, 再加IX锁,即SIX = S + IX。 例:对某个表加SIX锁,则表示该事务要读整个表 (所以要对该表加S锁),同时会更新个别元组 (所以要对该表加IX锁)。 离散数学 11.6.3 意向锁 T1 T2 S X IS IX SIX - S Y N Y N N Y X N N N N N Y IS Y N Y Y Y Y IX N N Y Y N Y

文档评论(0)

xuefei111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档