- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并发事务封锁举例 但仍然存在以下问题: 读脏数据。如T2在步骤11读了T1修改后的数据,而T1在步骤12需ROLLBACK。 T1 XL(A) 等待 等待 等待 R(A) A=A-2 W(A) UL(A) ROLLBACK T2 XL(A) 等待 等待 等待 等待 等待 等待 等待 R(A) A=A-3 W(A) UL(A) COMMIT T3 SL(A) R(A) UL(A) SL(A) 等待 等待 等待 等待 等待 等待 等待 等待 R(A) UL(A) COMMIT 步骤 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 图10-14 T1、T2和T3上锁操作序列 并发事务封锁举例 但仍然存在以下问题: 不可重复读。如T3两次读到A的值不同。 T1 XL(A) 等待 等待 等待 R(A) A=A-2 W(A) UL(A) ROLLBACK T2 XL(A) 等待 等待 等待 等待 等待 等待 等待 R(A) A=A-3 W(A) UL(A) COMMIT T3 SL(A) R(A) UL(A) SL(A) 等待 等待 等待 等待 等待 等待 等待 等待 R(A) UL(A) COMMIT 步骤 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 图10-14 T1、T2和T3上锁操作序列 并发事务封锁举例 但仍然存在以下问题: 不可串行化。无论如何交换非冲突操作,上述调度都不能等价于T1、T2和T3的任何一个串行调度。 出现上述问题的原因是事务过早释放了其持有的锁! T1 XL(A) 等待 等待 等待 R(A) A=A-2 W(A) UL(A) ROLLBACK T2 XL(A) 等待 等待 等待 等待 等待 等待 等待 R(A) A=A-3 W(A) UL(A) COMMIT T3 SL(A) R(A) UL(A) SL(A) 等待 等待 等待 等待 等待 等待 等待 等待 R(A) UL(A) COMMIT 步骤 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 图10-14 T1、T2和T3上锁操作序列 两阶段封锁协议 两阶段封锁协议要求每个事务分两个阶段完成封锁操作:增长(申请锁)阶段和缩减(释放锁)阶段: 增长阶段:事务可以获得锁,但不能释放锁; 缩减阶段:事务可以释放锁,但不能获得新锁。 两阶段封锁协议能保证冲突可串行化。对于任何事务,调度中该事务获得其最后加锁的时刻(增长阶段结束点)称为事务的封锁点。这样,多个事务可以根据它们的封锁点进行排序,而这个顺序就是并发事务的一个冲突可串行化顺序。 两阶段封锁协议举例 [例10.8] 图10-15采用了两阶段封锁,允许事务T4在获得全部锁后(A和B上的排它锁)提前释放部分锁(如步骤7释放了A上的排它锁),事务T5得以提前执行,从而提高了事务T4和T5的并发度。 T4 XL(A) R(A) A=A-2 W(A) XL(B) UL(A) R(B) B=B-2 W(B) UL(B) T5 XL(A) 等待 等待 等待 等待 等待 R(A) A=A-3 W(A) XL(B) 等待 等待 UL(A) R(B) B=B-3 W(B) UL(B) 步骤 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 图10-15 T4和T5的两阶段封锁 冲突可串行化,它等价于T4,T5串行调度。 两阶段封锁协议存在的问题 问题一:可能导致死锁 持有锁事务出现相互等待都不能继续执行。 T4 XL(A) R(A) A=A-2 W(A) XL(B) (等待T6释放B上的排它锁) T6 XL(B) R(B) B=B-3 W(B) XL(A) (等待T4释放A上的排它锁) 图10-16 采用两阶段封锁时T4和T6出现死锁 两阶段封锁协议存在的问题 问题二:不能避免读脏数据(T2读取了T1的未提交更新结果) T1 R(A) A=A-2 W(A) ROLLBACK T2 R(A) A=A-3 W(A) T7 R(A) A=A-4 W(A) 图10-17 由于读脏数据引起的级联回滚 导致的后果是“级联回滚” ! 两阶段封锁协议变体 对于级联回滚可以通过将两阶段封锁修改为严格两阶段封锁协议加以避免。 严格两阶段封锁协议除了要求封锁是两阶段之外,还要求事务持有的所有排它锁必须在事务提交后方可释放。这个要求保证
您可能关注的文档
- 联欢会游戏目录.ppt
- 浙版七年级美术下册6诗情画意.ppt
- 重新排版过的.pdf
- 2016年秋学期海南省三亚市过岭中学人教版九年级英语学科第一单元质量测试题.doc
- 七年级政治下册-玩中也能学-不能玩过头课件-人民版.ppt
- 冀教版三年级下册语文生字及会认字.doc
- 安卓系统下关于WiFi-Direct的研究.doc
- 工商联络员备案指南-终版.doc
- 运动学——肩关节实验.ppt
- 2016.7朝阳高一化学期末试题与答案.docx
- 2025浙江嘉兴市海宁市殳山生态陵园有限公司招聘4人笔试备考题库及答案解析.docx
- 2025浙江嘉兴市海盐县教育局下属公办幼儿园招聘劳动合同制教职工(保育员)18人笔试备考题库及答案解析.docx
- 2025云南省机关事务管理局金翔幼儿园招聘1人笔试备考题库及答案解析.docx
- 2025云南现代职业技术学院校园招聘13人笔试备考题库及答案解析.docx
- 赣县区教育体育局公开招聘临聘人员补充笔试备考题库及答案解析.docx
- 海南省健康宣传教育中心2025年公开招聘事业编制人员笔试备考题库及答案解析.docx
- 2025青海省直机关公开遴选公务员中选调生有关注意事项笔试备考试题及答案解析.docx
- 2025年枣庄市薛城区事业单位公开招聘初级综合类岗位工作人员(18人)笔试备考试题及答案解析.docx
- 2025云南省红河州建水县坡头乡卫生院编外工作人员招聘(1人)笔试备考题库及答案解析.docx
- 2025长春市第二医院面向社会公开招聘编外聘用制工作人员(1号)笔试备考题库及答案解析.docx
最近下载
- 中小学2025年春季学期升旗仪式(国旗下讲话)主题安排表 .pdf VIP
- 兽医师执业活动情况范文.docx VIP
- 检验检测机构质量手册程序文件质量记录合集(依据2023年版评审准则).pdf VIP
- 项目管理经验总结报告.pptx VIP
- 上半年卫生执法监督工作总结7篇.docx VIP
- 吉林农安宝泉饮用天然矿泉水资源核实报告.pdf
- 新人教版七年级下册语文【1--25课】全册 教学设计.doc
- 甘肃省凉州区社区工作者考试真题题库及参考答案AB卷.docx VIP
- 初中道德与法治新人教版七年级下册教学计划(2025春).doc
- SL T 415-2019 水文基础设施及技术装备管理规范.pdf
文档评论(0)