网站大量收购独家精品文档,联系QQ:2885784924

空间数据库课件第11章并发控制.pptVIP

  1. 1、本文档共115页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

(d)可串行化的调度由于其执行结果与串行调度(a)的执行结果相同,所以是正确的调度。二、冲突可串行化调度可串行化调度的充分条件一个调度Sc在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个调度Sc‘,如果Sc’是串行的,称调度Sc为冲突可串行化的调度一个调度冲突可串行化,一定是可串行化的调度冲突可串行化调度(续)冲突操作冲突操作是指不同的事务对同一个数据的读写操作和写写操作Ri(x)与Wj(x) /*事务Ti读x,Tj写x*/Wi(x)与Wj(x) /*事务Ti写x,Tj写x*/其他操作是不冲突操作不同事务的冲突操作和同一事务的两个操作不能交换(Swap)冲突可串行化调度(续)[例]今有调度Sc1=r1(A)w1(A)r2(A)w2(A)r1(B)w1(B)r2(B)w2(B)把w2(A)与r1(B)w1(B)交换,得到:r1(A)w1(A)r2(A)r1(B)w1(B)w2(A)r2(B)w2(B)再把r2(A)与r1(B)w1(B)交换:Sc2=r1(A)w1(A)r1(B)w1(B)r2(A)w2(A)r2(B)w2(B)Sc2等价于一个串行调度T1,T2,Sc1冲突可串行化的调度冲突可串行化调度(续)冲突可串行化调度是可串行化调度的充分条件,不是必要条件。还有不满足冲突可串行化条件的可串行化调度。[例]有3个事务T1=W1(Y)W1(X),T2=W2(Y)W2(X),T3=W3(X)调度L1=W1(Y)W1(X)W2(Y)W2(X)W3(X)是一个串行调度。调度L2=W1(Y)W2(Y)W2(X)W1(X)W3(X)不满足冲突可串行化。但是调度L2是可串行化的,因为L2执行的结果与调度L1相同,Y的值都等于T2的值,X的值都等于T3的值第十一章并发控制11.1并发控制概述11.2封锁11.3活锁和死锁11.4并发调度的可串行性11.5两段锁协议11.6封锁的粒度11.7Oracle的并发控制11.8小结11.5两段锁协议封锁协议运用封锁方法时,对数据对象加锁时需要约定一些规则何时申请封锁持锁时间何时释放封锁等两段封锁协议(Two-PhaseLocking,简称2PL)是最常用的一种封锁协议,理论上证明使用两段封锁协议产生的是可串行化调度11.5两段锁协议两段锁协议的内容:指所有事务必须分两个阶段对数据项加锁和解锁1.在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁2.在释放一个封锁之后,事务不再获得任何其他封锁。两段锁协议(续)“两段”锁的含义事务分为两个阶段第一阶段是获得封锁,也称为扩展阶段;事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁第二阶段是释放封锁,也称为收缩阶段。事务可以释放任何数据项上的任何类型的锁,但是不能再申请任何锁两段锁协议(续)事务1的封锁序列:SlockA...SlockB...XlockC...UnlockB...UnlockA...UnlockC;事务2的封锁序列:SlockA...UnlockA...SlockB...XlockC...UnlockC...UnlockB;事务1遵守两段锁协议,而事务2不遵守两段协议。两段锁协议(续)并行执行的所有事务均遵守两段锁协议,则对这些事务的所有并行调度策略都是可串行化的。 所有遵守两段锁协议的事务,其并行执行的结果一定是正确的事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件可串行化的调度中,不一定所有事务都必须符合两段锁协议。两段锁协议(续)两段锁协议(续)两段锁协议与防止死锁的一次封锁法一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次封锁法遵守两段锁协议但是两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁两段锁协议(续)图11.7遵守两段锁协议的事务发生死锁第十一章并发控制11.1并发控制概述11.2封锁11.3活锁和死锁11.4并发调度的可串行性11.5两段锁协议11.6封锁的粒度11.7Oracle的并发控制11.8小结11.6封锁的粒度11.6.1封锁粒度11.6.2多粒度封锁11.6.3意向锁11.6.1封锁粒度一、什么是封锁粒度二、选择封锁粒度的原则一、什么是封锁粒度X锁和S锁都是加在某一个

文档评论(0)

翰林大当家 + 关注
实名认证
服务提供商

文案个性定制,计划书、方案、策划书专业撰写。

1亿VIP精品文档

相关文档