- 1、本文档共51页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.3 并发控制 2.二级封锁协议 规则是:在一级封锁协议的基础上,另外加上事务T在读取数据R之前必须先对其加S锁,读完后释放S锁。 二级封锁协议除了可以防止丢失修改外,还可以防止读“脏”数据。 在二级封锁协议协议中,由于事务T读完数据即释放S锁,因此不能保证可重复读数据。 5.3 并发控制 t1 t2 t3 t4 事务T1 时间 事务T2 (1)对C加X锁 获得 (2)读C=50 (3)求C=C×2 写回C=100 要对C加S锁 等待 (4) t6 t7 t8 t5 (5)回滚 (6)释放X锁 (7) (8) 等待 等待 获得C的S锁 读C=50释放C的S锁 二级封锁协议举例 5.3 并发控制 3.三级封锁协议 规则是:在一级封锁协议的基础上,另外加上事务T在读取数据R之前必须先对其加S锁,读完后并不释放S锁,而直到事务T结束才释放。 三级封锁协议除了可以防止更新丢失问题和“污读”数据外,还可进一步防止不可重读数据,彻底解决了并发操作所带来的三个不一致性问题。 5.3 并发控制 读B=100 修改B=B*2 写回B=200 (3) (7) (1)对A、B分别加 S锁 获得 (2)读A=50,B=100 求A+B=150 (4)读A=50,B=100求A+B=150 (5)将和值写入 (6)释放A的锁 释放B的锁 (8) (9) t1 t2 t3 t4 事务T1 时间 事务T2 等待 t6 t7 t8 t5 等待 等待 获得B的X锁 要对B加X锁 等待 t9 释放对B的X锁 三级封锁协议举例 5.3 并发控制 总结: X锁(对写数据 S锁(对只读数据) 不丢失修改(写) 不读脏数据(读) 可重复读(读) 一级 事务全程加锁 不加 √ 二级 事务全程加锁 事务开始加,读完即放 √ √ 三级 事务全程加锁 事务全程加锁 √ √ √ 三个封锁协议的主要区别在于:什么操作需要申请封锁,以及何时释放锁。 5.3 并发控制 五.死锁 图6-8 封锁技术可有效解决并行操作的一致性问题,但也可产生新的问题,即死锁问题。 在同时处于等待状态的两个或多个事务中,其中的每一个在它能够进行之前,都等待着某个数据、而这个数据已被它们中的某个事务所封锁,这种状态称为死锁。 (当两个或多个事务彼此互相等待对方先释放自己所需要的资源时,就产生死锁) 5.3 并发控制 例如,事务T1封锁了数据R1,事务T2封锁了数据R2,然后T1又请求封锁R2,由于T2封锁了R2,因此T1等待T2释放R2上的锁,然后T2又请求封锁R1 ,由于T1已经封锁了R1,因此T2也只能等待T1释放R2上的锁,此时T1和T2都在等待对方先释放锁,因而形成死锁。 t1 t2 t3 t4 事务T1 时间 事务T2 (1)对R1加锁 (2) (3)请求对R2加锁 等待 请求对R1加锁 等待 (4)等待 等待 对R2加锁 5.3 并发控制 死锁一旦发生,系统效率将会大大下降,因而要尽量避免死锁的发生。 (1)一次封锁法:每个事务一次将所有要使用的数据全部依次加锁,并要求加锁成功,只要一个加锁不成功,表示本次加锁失败,则应该立即释放所有已加锁成功的数据对象,然后重新开始从头加锁。 预防死锁的方法有多种,常用的方法有两种: Y Y N Y N 开始加锁 加锁第1个数据 加锁成功吗? 加锁成功吗? 对第m个表加锁 加锁成功吗? 加锁第2个数据 释放所有已加锁的数据 N …… 一次加锁成功 一次加锁法 前面发生死锁的例子,可以通过一次加锁法加以预防。 事务T1启动后,立即对数据R1和R2依次加锁,加锁成功后,执行T1,而事务T2等待。 直到T1执行完后释放R1和R2上的锁,T2继续执行。这样就不会发生死锁。 一次加锁法虽然可以有效地预防死锁的发生,但也存在一些问题。 对某一事务所要使用的全部数据一次性加锁,扩大了封锁的范围,从而降低了系统的并发度。 数据库中的数据是不断变化的,原来不要求封锁的数据,在执行过程中可能会变成封锁对象,所以很难事先精确地确定每个事务所要封锁的数据对象,这样只能在开始扩大封锁范围,将可能要封锁的数据全部加锁,这就进一步降低了并发度,影响了系统的运行效率。 5.3 并发控制 5.3 并发控制 图6-8 (2)顺序封锁法:是预先对所有可加锁的数据对象规定一个加锁顺序,每个事务都需要按此顺序加锁,在释放时,按逆序进行。 例如对于前面发生的死锁,我们可以规定封锁顺序为R1、R2,事务T1和T2都需要按此顺序加锁。T1先封锁R1,再封锁R2。当T2再请求封锁R1时,因为T1已经对R1加锁,T2只能等待。待T1释放R1后,T2再封
您可能关注的文档
- 数控机床控制技术基础教学作者刘沂第二章节课件幻灯片.pptx
- 数据库课件01第一章节概论幻灯片.ppt
- 数控机床控制技术基础教学作者刘沂第九章节课件幻灯片.pptx
- 数据库课件1数据库基础知识幻灯片.ppt
- 数控机床控制技术基础教学作者刘沂第六章节课件幻灯片.pptx
- 数据库课件02第二章节实体联系模型new幻灯片.ppt
- 数控机床控制技术基础教学作者刘沂第七章节课件幻灯片.pptx
- 数据库课件02第二章节实体联系模型幻灯片.ppt
- 数控机床控制技术基础教学作者刘沂第三章节课件幻灯片.pptx
- 数控机床控制技术基础教学作者刘沂第十章节课件幻灯片.pptx
- 五位一体教案教学教案设计.docx
- 思修与法基-教学教案分享.pptx
- 大学军事之《中国国防》题库分享.docx
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章-中国特色社会主义理论体系的形成发展.pdf
- 思修与法基 教学全案分享.docx
- 大学军事之《军事思想》题库分享.docx
- 《经济思想史》全套课件-国家级精品课程教案课件讲义分享.pdf
- 厦门大学国际金融全套资料(国家级精品课程)--全套课件.pdf
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章-中国特色社会主义理论体系的形成发展.docx
- 2023版毛泽东思想和中国特色社会主义理论体系概论第五章中国特色社会主义理论体系的形成发展分享.pdf
最近下载
- Unit 2 Healthy Lifestyle 一轮大单元语境下的教材模块整合单元语篇复习课件-2025届高三英语人教版(2019)选择性必修第三册.pptx VIP
- 2025年河南省养老院市场运营趋势分析及投资潜力研究报告.docx
- 灭火战术及灭火组织指挥.ppt VIP
- 《药品追溯系统》课件.ppt VIP
- T-CAGHP 031—2018 地质灾害危险性评估及咨询评估预算标准(试行).docx
- 统编版高一语文必修上册文言文知识点总结(通假字、词类活用、特殊句式、一词多义、古今异义).pdf VIP
- 安全管理--PPT课件--房屋市政工程生产安全重大事故隐患判定标准(2024版)解析.pptx
- 公司战略与风险管理 第3版 吕文栋 教学大纲+教案1--3.doc
- 监理大纲(完整版).docx VIP
- 江西省赣州市赣州中学2024-2025学年高一下学期开学检测数学试题(含答案).pdf VIP
文档评论(0)