并发调度的可串行性.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文档。上传文档
查看更多
并发调度的可串行性.ppt

并发调度的可串行性 数据库管理系统对并发事务不同的调度可能会产生不同的结果 串行调度是正确的 执行结果等价于串行调度的调度也是正确的,称为可串行化调度 1 可串行化调度 2 冲突可串行化调度 11.5 并发调度的可串行性 可串行化调度 可串行化(Serializable)调度 多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同 可串行性(Serializability) 是并发事务正确调度的准则 一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度 可串行化调度 [例1]现在有两个事务,分别包含下列操作: 事务T1:读B;A=B+1;写回A 事务T2:读A;B=A+1;写回B 现给出对这两个事务不同的调度策略 串行调度,正确的调度 T1 T2 Slock B Y=R(B)=2 Unlock B Xlock A A=Y+1=3 W(A) Unlock A Slock A X=R(A)=3 Unlock A Xlock B B=X+1=4 W(B) Unlock B 串行调度(a) 假设A、B的初值均为2。 按T1→T2次序执行结果为A=3,B=4 串行调度策略,正确的调度 串行调度,正确的调度 T1 T2 Slock A X=R(A)=2 Unlock A Xlock B B=X+1=3 W(B) Unlock B Slock B Y=R(B)=3 Unlock B Xlock A A=Y+1=4 W(A) Unlock A 串行调度(b) 假设A、B的初值均为2。 T2→T1次序执行结果为B=3,A=4 串行调度策略,正确的调度 不可串行化调度,错误的调度 T1 T2 Slock B Y=R(B)=2 Slock A X=R(A)=2 Unlock B Unlock A Xlock A A=Y+1=3 W(A) Xlock B B=X+1=3 W(B) Unlock A Unlock B 不可串行化的调度 执行结果与(a)、(b)的结果都不同 是错误的调度 可串行化调度,正确的调度 T1 T2 Slock B Y=R(B)=2 Unlock B Xlock A Slock A A=Y+1=3 等待 W(A) 等待 Unlock A 等待 X=R(A)=3 Unlock A Xlock B B=X+1=4 W(B) Unlock B 可串行化的调度 执行结果与串行调度(a)的执行结果相同 是正确的调度 冲突可串行化调度 冲突可串行化 一个比可串行化更严格的条件 商用系统中的调度器采用 冲突操作:是指不同的事务对同一数据的读写操作和写写操作: Ri(x)与Wj(x) /*事务Ti读x,Tj写x,其中i≠j*/ Wi(x)与Wj(x) /*事务Ti写x,Tj写x,其中i≠j*/ 其他操作是不冲突操作 不能交换(Swap)的动作: 同一事务的两个操作 不同事务的冲突操作 冲突 一个调度Sc在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个调度Sc’,如果Sc’是串行的,称调度Sc是冲突可串行化的调度 若一个调度是冲突可串行化,则一定是可串行化的调度 可用这种方法判断一个调度是否是冲突可串行化的 冲突可串行化 Sc2=r1(A)w1(A)r1(B)w1(B)r2(A)w2(A)r2(B)w2(B) T1 T2 [例2] 今有调度 Sc1=r1(A)w1(A)r2(A)w2(A)r1(B)w1(B)r2(B)w2(B) Sc2等价于一个串行调度T1,T2。所以Sc1冲突可串行化的调度 冲突可串行化 冲突可串行化调度 冲突可串行化调度是可串行化调度的充分条件,不是必要条件。还有不满足冲突可串行化条件的可串行化调度。 [例11.4]有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.4节动画《冲突可串行化 》

文档评论(0)

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

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

1亿VIP精品文档

相关文档