第三部分 事务的并发控制(5章内.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文档。上传文档
查看更多
第三部分 事务的并发控制(5章内

意向锁分类: IS锁(Intent Share Lock): 若对某结点加IS ,那么将对后代结点显式地加S 锁。 IX锁(Intent Exclusive Lock): 若对某结点加IX锁,那么将对后代结点显式地加X锁。 SIX锁(Share Intent Exclusive Lock): 若对某结点加SIX锁,则对该结点不仅显式地S锁,而且还对它加了IX 锁。即,SIX = S + IX 锁类型的相容性矩阵: 可串行性多粒度锁协议: ●必须遵守锁类型的相容性矩阵。 ●根结点必须首先加锁。 ●任何事务都必须遵守两阶段锁协议。 ●任何事务加锁都必须按从根到叶子顺序进行。 ●任何事务开锁都必须按从叶子到根顺序进行。 多粒度锁协议的优点:增加并行性,减少锁开销。 DB A B Da Db Dc rc2 rc1 rb1 rb2 r1 r2 r3 T1 S IS T2 X IX T3 IS IS IX IS IS IX S 多粒度锁协议在由如下事务类型混合 而成的应用中有用: 只存取几个数据项的短事务 由整个文件或一组文件形成报表 的长事务 (8)封锁机制的实现是由锁管理器执行,锁管理器通过维护锁表控制加锁机制。 3 死锁的处理 死锁:两个或两个以上事务处于等待状态,每个事务都 在等待其中另一个事务释放资源,导致所有事务都 无法执行。这种现象称为死锁。 处理死锁方法: (1)引入死锁预防协议,使系统不进入死锁状态: 通过对加锁请求进行排序,一事务开始前要锁定所有的数据项。 (2)允许系统进入死锁状态,引入死锁检测和死 锁恢复机制进行恢复。 抢占及事务回滚技术 基本措施:每一个事务赋予一个时间戳。若一个事务回滚,则当重启该事务时,必须保持原时间戳。然后 采用以下机制: * wait-die: 如果T1申请的数据被T2持有时,则只有: T1T2时,T1等待,否则回滚 * wound-wait: 与前面条件相同 时,只有: T1T2时,T1等待,否则回滚 基于超时的机制:事先给出事务的等待的时间,超时即回滚。 死锁的预防: 死锁的检验:等待图 T1 T2 T3 T4 T1 T2 T3 T4 无死锁等待图 有死锁等待图 系统周期对等待图进行环搜索,以检测有无死锁。周期 的长短受死锁发生的频率以及受影响事务的数目两个因 素有关。 从死锁中恢复:选择事务回滚 选择代价最小的事务。 回滚事务 防止饿死,将回滚次数考虑在代价中 基于锁的协议开销较大,并发的提升有限度。 §3 基于时间戳的调度协议 时间戳:数据库系统赋予事务的唯一 的时间标记,以标记该事务开始执行。 系统时钟值或逻辑计数值 时间戳的基本原理:事务的时间戳决定串行化顺序,如果TS(Ti)TS(Tj),则系统必须保证产生的调度等价于Ti,Tj串行调度。 TS(T)---时间戳 TS(Ti)TS(Tj)---事务i比j开始的早 W(Q)—在数据项Q上成功执行写操作的所有事务的最大时间戳 R(Q)—在Q上执行读的所有事务的最大时间戳 排序协议: 1 若T执行读操作read(Q) 如 TS(T)W(Q) T回退 如TS(T)=W(Q) 执行读操作,并修改:R(Q)=max{TS(T),read(Q)} 2 若T执行写操作write(Q) 如TS(T)R(Q) T回退 如TS(T)W(Q) T回退 否则执行T,并修改:W(Q)=TS(T) 3 被回退的事务系统重新赋予时间戳,重新启动。 例:有两个事务T1,T2,T3 T1 T2 T3 A B C 200 150 175 R=0 W=0 R=0 W=0 R=0 W=0 R1(B) R=200 R2(A) R=150 R3(C) R=175 W1(B) W=200 W1(A) W=200 W2(C) 终止 W3(A) 终止 为了提高并行性,有时需要修改此协议,以使其忽略过时的写操作 Thomas 写规则: 若Ti执行写操作write(Q) 如TS(Ti)R(Q) T回退 如TS(Ti)W(Q) 则Ti的写将被忽略 否则执行T,并修改:W(Q)=TS(T) T1 T2 T3 A B C 200 150 175 R=0 W=0 R=0 W=0 R=0 W=0 R1(B) R=200 R2(A) R=150 R3(C) R=175 W1(B) W=200 W1(A) W=200 W2(C) 终止 W3(A) §4 基于有效性检验的调度协议 及前两种预防型策略不同,本策略为诊治型。 协议:将事务的生命周期分为三

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档