- 1、本文档共60页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四讲:事务及并发控制
第三部分 事务的并发控制(5章内容);§1. 事务并发的概念;t1;③不可重复的读;(2)调度:若T = { T1 , T2 , ……,Tn }是一组并发执行的事务,则T中各事务的重要操作按时间排序的一个序列,记S = {ΣT,,∠T},是T 的一个调度。
a. 串行调度:若对于一个调度S 中的任意两个事务Ti 和Tj, i≠j, ΣiΣj,或ΣjΣi.
b. 一致性调度:
如果执行一个调度S ,使数据库从一个一致性状
态转入另一个一致性状态,则称S 是一个一致性调
度。
注: 数据库状态的“一致性”与业务规则有关。
例:;;这两个调度
均为串行调度;(2)可串行化调度的概念:;例4 T1 、T2 的另一个可串行化调度S4 :
S4 = {
R2 (x); x := x – 20; W2 (x);
R1 (x); x := x +10; W1 (x);
R2 (y); y := y * 2; W2 (y); C2
R1 (y); y := y –15; W1 (y); C1
};(3)冲突可串行化:Ti={I1,I2…In},Tj={J1,J2,…,Jm}; 某一并行调度S经过非冲突指令转换成串行调度,且其该串行调度的执行结果一致,则S是冲突可串行化的。;T1;* 关于冲突可串行性调度的讨论
1. 构造冲突可串行性调度
允许不同事务上的非冲突操作交换执行次序。
2.冲突可串行调度必定是一致性调度。
3.冲突可串行性不是可串行性的必要条件。即,可串行性不一定是冲突可串行性。存在其它可串行调度策略!(如,视图可串行性调度)。;T1;T1;T1; 冲突可串行性的判断:优先图;T1;§2 基于锁的协议;T1;(4)加锁产生的问题:;②产生死锁现象:;③产生饿死现象:;(5)两阶段锁协议:;T1;T1;强两阶段锁协议:要求事务提交之前不得释放任何锁。
大部分数据库系统采用严格两阶段锁协议或强两阶段锁协议。;T1;(7)多粒度锁及意向锁:;对锁类型进行扩充:意向锁:
一个事务对一个数据对象显式加锁之前,必须对它的全部祖先结点加意向锁。
∴ 如果一个结点上有意向锁,则它的后代结点必有被显式加锁。;意向锁分类:;锁类型的相容性矩阵:;可串行性多粒度锁协议:;多粒度锁协议的优点:增加并行性,减少锁开销。;多粒度锁协议在由如下事务类型混合 而成的应用中有用:;(8)封锁机制的实现是由锁管理器执行,锁管理器通过维护锁表控制加锁机制。;3 死锁的处理;抢占与事务回滚技术
基本措施:每一个事务赋予一个时间戳。若一个事务回滚,则当重启该事务时,必须保持原时间戳。然后 采用以下机制:
* wait-die: 如果T1申请的数据被T2持有时,则只有:
T1T2时,T1等待,否则回滚
* wound-wait: 与前面条件相同 时,只有:
T1T2时,T1等待,否则回滚
基于超时的机制:事先给出事务的等待的时间,超时即回滚。;死锁的检验:等待图;从死锁中恢复:选择事务回滚;§3 基于时间戳的调度协议;排序协议:
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;为了提高并行性,有时需要修改此协议,以使其忽略过时的写操作;;§4 基于有效性检验的调度协议;利用Validation(T)的值,按时间戳排序决定可串行化顺序。此时TS(T)=Validation(T);B:U在Validation中,Finish(U)validation(T)
RS(T)∩WS(U)非空,U和T都写X;有效性检验规则:
对于经过有效性确认,且在T开始前还没有完成的事务Ti,如果满足以下的条件之一:
Finish(Ti)Start(T)
或
WS(Ti) ∩RS(T)=¢,并且 Finish(Ti)Validation(T)
或
WS(Ti) ∩RS(T)=¢, WS(Ti) ∩WS(T)=¢,并且
Validation(Ti)Validation(T)
则Ti和T是可串行化的;T1;§5 多版本并发控制机制;* 数据库系统隔离性级别的控制;§6 逻辑层事务控制;? 长时间事务: ;1. 短时间事务的控制方法 ;②利用存储过程实现
您可能关注的文档
最近下载
- (部编)新人教版三年级语文下册课外阅读理解(25篇).pdf VIP
- 北师大版2024-2025学年三年级上册数学培优拓展讲义第5讲周长(单元讲义)(学生版+解析).docx VIP
- 2年级数学下册口算、竖式、脱式题卡.doc VIP
- 创业路演演讲稿(3篇).docx VIP
- 体育公园实施性施工组织设计.pdf VIP
- GB50231-2009 机械设备安装工程施工及验收通用规范.docx VIP
- 大学英语六级考试词汇表完整版(复习必背).pdf VIP
- 《中国共产党党员领导干部廉洁从政若干准则》(排版完整版).doc VIP
- 细菌性脑膜炎治疗指南.doc VIP
- 现场组织协调方案及措施.docx VIP
文档评论(0)