- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6事务管理讲述
两段锁协议 两阶段封锁协议:要求每个事务分两个阶段提出加锁和解锁申请, 增长阶段:事务可以获得锁,但不能释放锁。 缩减阶段:事务可以释放锁,但不能获得新锁。 两阶段封锁协议保证冲突可串行化,因为若事务都遵守两阶段封锁协议,则调度的优先图中无环。 将各个事务根据它们的封锁点进行排序,这个顺序就是事务的一个可串行性次序。 两阶段封锁协议不保证不发生死锁。 两阶段封锁协议不保证不发生级联回滚。 /91 * 两段锁协议 严格两阶段封锁协议:两阶段封锁协议之外,还要求所有的排他锁在事务提交后才能释放。 严格两阶段封锁协议保证不发生级联回滚。 强两阶段封锁协议:两阶段封锁协议之外,还要求事务提交之前不释放任何锁。 强两阶段封锁协议下,事务可以按其提交的顺序串行化。 锁转换: 需要时将S锁提升为X锁(只能发生在增长阶段)。 需要时将X锁降级为S锁(只能发生在缩减阶段)。 目的是提高并发度。 /91 * 基于封锁的方法 系统自动进行加锁和解锁:一般在DBMS中由系统自动进行加锁和解锁,而不是由应用程序员在程序中进行。 简单的做法: 当事务Ti进行read(Q)操作时,系统产生一个lock-S(Q)指令,后接read(Q)指令。 当事务Ti进行write(Q)操作时,系统检查Ti是否已在Q上持有共享锁。若有,则系统发出upgrade(Q)指令,后接write(Q) 指令。否则系统发出lock-X(Q) 指令, 后接write(Q)指令。 当一个事务提交或回滚后,该事务持有的所有锁都被释放。 /91 * 基于封锁的方法 封锁的实现 锁管理器中重要的数据结构:锁表(lock table)。 为目前已加锁的每个数据项维护一个链表,链表中每一个记录表示对该数据项的一个加锁请求。记录按请求到达的顺序排序。 链表中的每个记录主要包括如下内容:哪个事务提出的请求,请求的锁类型,该请求是否已被授予锁。 采用一个以数据项名称为索引的散列表作为链表入口。 /91 * 基于封锁的方法 锁管理器工作方式 当一个封锁请求到达时,如果相应数据项的链表存在,则在该链表末尾增加一个记录,否则新建一个仅包含该请求的链表。(数据项上的第一次加锁请求总是被授予,但当事务向已被加锁的数据项申请加锁时,只有当该请求与先前请求相容,并且所有先前的请求都已被授予锁的条件下,锁管理器才为该请求授予锁,否则令请求等待。) 当收到一个事务的解锁消息时,则将相应的链表记录删除,然后检查随后的记录,如果有正在等待的封锁请求,则看该请求能否被授权,如果能,则授权该请求并处理其后记录,如果还有,类似地一个接一个的处理。 如果一个事务中止,则删除该事务产生的正在等待加锁的所有请求。当数据库系统撤消了该事务,则该中止事务持有的所有锁将被释放。 /91 * 基于封锁的方法 基于图的协议 研究不要求两阶段封锁协议,又保证冲突可串行化的方法。 前提:要求所有数据项集合D={ d1, d2,…. dn}满足偏序→。如果di→dj,则任何既访问di又访问dj的事务必须首先访问di,然后访问dj。这种偏序可以是数据的逻辑或物理组织的结果,也可以只是为了并发控制而加上的。 偏序意味着集合D可以视为有向无环图,称为数据库图。 /91 * 基于图的协议 树形协议:(只使用排他锁lock-X) 每个事务Ti对一数据项最多能加一次锁,并且必须遵从以下规则: Ti首次加锁可以对任何数据项进行。 此后,Ti对数据项Q加锁的前提是Ti 持有Q的父项上的锁。 对数据项解锁可以随时进行。 数据项被Ti加锁并解锁后,Ti不能再对该数据项加锁 /91 * 树形协议 例树形结构数据库图 a b c d e f h g i i /91 * 树形协议 一个可能的调度 Lock-X(B) Lock-X(E) Lock-X(D) Unlock(B) Unlock(E) Lock-X(G) Unlock(D) Unlock(G) T10 T12 T11 T13 Lock-X(D) Lock-X(H) Unlock(D) Unlock(H) Lock-X(B) Lock-X(E) Unlock(E) Unlock(B) Lock-X(D) Lock-X(H) Unlock(D) Unlock(H) /91 * 树形协议 树形协议保证冲突可串行化,保证不发生死锁。 树形协议不保证可恢复性和无级联性。 树形协议的优点: 可以在较早时候释放锁,增加了并发性。 不会产生死锁,毋需回滚。 树
您可能关注的文档
- 2016春九年级物理下册19.2广播电视与通信课件1(新版)粤教沪版概要.ppt
- 2016新人教版八年级上册生物《鸟》概要.ppt
- 2016春八年级生物下册8.3.2选择健康的生活方式课件(新版)新人教版概要.ppt
- 2016春八年级英语下册Module4Seeingthedoctor周周清课件(新版)外研版概要.ppt
- 2016春北交《铁路轨道》在线作业二概要.doc
- 《医院常用物品消毒灭菌方法(试行)》概要.doc
- 2016春九年级物理全册第21章信息的传递第2节电磁波的海洋课件(新版)新人教版概要.ppt
- 2016春华师《人体解剖生理学》作业概要.doc
- 2016春北交《高电压与绝缘技术》在线作业一概要.doc
- 6LTE干扰抑制技术讲述.ppt
文档评论(0)