




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十一章并发控制
1ppt课件主要内容11.1并发控制概述11.2封锁11.3活锁和死锁11.4并发调度的可串行性11.5两段锁协议11.6封锁的粒度2ppt课件11.1并发控制概述多事务执行方式(1)事务串行执行(2)交叉并发方式(3)同时并发方式并发是指在单处理机上,利用分时方法实行多个事务同时做。事务并发执行带来的问题可能会存取和存储不正确的数据,破坏事务的隔离性和一致性3ppt课件DBMS必须提供并发控制机制DBMS的并发控制子系统保证事务的隔离性保证事务的一致性对并发操作进行正确调度4ppt课件并发操作带来的问题1---丢失更新时间更新事务T1数据库中A的值更新事务T2t0
100
t1R(A)
t2
R(A)t3A:=A-1
t4
A:=A-1t5W(A)
t6
99W(A)t7
99
图在时间t7丢失了事务T1的更新5ppt课件时间更新事务T1数据库中A的值更新事务T2t0
100
t1R(A)
t2
t3
t4
t5
COMMITt6
图事务T1两次读取A的值,却得到了不同的结果R(A)200R(A)A:=A*2W(A)并发操作带来的问题2---不可重复读问题6ppt课件并发操作带来的问题3---读脏数据时间更新事务T1数据库中A的值读事务T2t0
100
t1R(A)
t2A:=A-30
t3W(A)
t4
70R(A)t5ROLLBACK
t6
100
图事务T2在时间t4读了未提交的A值(70)
7ppt课件
并发控制就是用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。8ppt课件11.2封锁封锁是实现并发控制的一个主要技术。锁(Lock)是一个与数据项相关的变量,对可能应用于该数据项上的操作而言,锁描述了该数据项的状态。两种封锁:
-排他型(Exclusive)封锁(简称:X锁)
-共享型(Share)封锁(简称:S锁)9ppt课件X锁(排它锁)排它锁又称为写锁若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。X锁的操作XlockA:表示事务对数据A加X锁,并读数据AunlockA:表示事务要解除对数据A的X锁10ppt课件X锁PX协议:
使用X锁的规则称为PX协议。任何企图更新记录R的事务必须先执行“XlockR”操作,以获得对R的X锁,才能读或写记录R;如果未获准X锁,那么这个事务进入等待队列,一直到获准X锁,事务才能继续做下去。
PXC协议
X锁的解除操作应该合并到事务的结束(COMMIT或ROLLBACK)操作中。引入此规则,PX协议成为PXC协议。11ppt课件S锁(共享锁)S锁定义若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A。其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。操作SlockA
表示事务对数据A加S锁,并读数据。UnlockA
表示事务要解除对数据A的S锁。允许并发的读,又称为‘读锁’12ppt课件封锁的相容矩阵注:①N=NO,不相容的请求Y=YES,相容的请求②X、S、-:分别表示X锁,S锁,无锁③如果两个封锁是不相容的,则后提出封锁的事务要等待。XS—
X
S
—
NNY
NYY
YYY
T2T1
13ppt课件例:使用X锁封锁解决数据丢失时间更新事务T1数据库中A的值更新事务T2t0
100
t1XlockA
t2
XlockAt3R(A)
waitt4A:=A-1
waitt5
waitt6W(A)
waitt7
COMMIT99waitt8UnlockA
waitt9
获得XlockAt10
R(A)t11
A:=A-1t12
98W(A)14ppt课件11.3活锁和死锁
封锁技术可以有效地解决并行操作的一致性问题,但也带来一些新的问题。死锁活锁15ppt课件1.“活锁”T2XlockAT3XlockAT4XlockAAA已被封锁,不成功,等待A刚被释放,成功时间点A刚被释放,成功……T2永远等待活锁!解决方法:先来先服务系统可能使某个事务永远处于等待状态,得不到封锁的机会,这种现象称为“活锁”。16ppt课件2.“死锁”时间事务T1事务T2t0XlockA
t1
XlockBt2XlockB
t3waitXlockAt4waitwait出现了T1在等待T2,而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成了死锁。17ppt课件
解决死锁的方法两类方法1)预防死锁2)死锁的诊断与解除18ppt课件1)死锁的预防预防死锁的发生就是要破坏产生死锁的条件。预防死锁的方法一次封锁法顺序封锁法19ppt课件一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行一次封锁法存在的问题扩大封锁范围难于事先精确确定封锁对象20ppt课件顺序封锁法顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。顺序封锁法存在的问题维护成本高难于实现21ppt课件2)死锁的诊断与解除允许死锁发生解除死锁由DBMS的并发控制子系统定期检测系统中是否存在死锁一旦检测到死锁,就要设法解除22ppt课件“死锁的诊断”若事务等待图有环,则表示出现死锁图事务的有环依赖图1)超时法2)等待图法图:结点表示正运行的事务。边表示事务等待的情况。T1T223ppt课件“死锁的解除”死锁测试程序:选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有的锁,使其它事务能继续运行下去。24ppt课件11.4并发调度的可串行性一、什么样的并发操作调度是正确的二、如何保证并发操作的调度是正确的25ppt课件事务的调度事务的执行次序称为“调度”串行调度如果多个事务依次执行,则称为事务的串行调度(SerialSchedule)并发调度如果利用分时的方法,同时处理多个事务,则称为事务的并发调度(ConcurrentSchedule)26ppt课件一、什么样的并发操作调度是正确的计算机系统对并行事务中并行操作的调度是的随机的,而不同的调度可能会产生不同的结果。将所有事务串行起来的调度策略一定是正确的调度策略。以不同的顺序串行执行事务也有可能会产生不同的结果,但由于不会将数据库置于不一致状态,所以都可以认为是正确的。几个事务的并行执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同。这种并行调度策略称为可串行化(Serializable)的调度。可串行性是并行事务正确性的唯一准则27ppt课件例:现在有两个事务,分别包含下列操作:事务1:读B;A=B+1;写回A;事务2:读A;B=A+1;写回B;假设A的初值为2,B的初值为2。对这两个事务的不同调度策略串行执行串行调度策略1串行调度策略2交错执行不可串行化的调度可串行化的调度28ppt课件串行调度策略,正确的调度SlockBY=B=2UnlockBXlockAA=Y+1写回A(=3)UnlockA
SlockAX=A=3UnlockAXlockBB=X+1写回B(=4)UnlockB
T1T2
SlockBY=B=3UnlockBXlockAA=Y+1写回A(=4)UnlockA
SlockAX=A=2UnlockAXlockBB=X+1写回B(=3)UnlockB
T1T229ppt课件并行调度策略T2SlockBY=B=2
UnlockB
XlockAA=Y+1写回A(=3)
UnlockA
SlockAX=A=2
UnlockA
XlockBB=X+1写回B(=3)
UnlockBT1SlockBY=B=2UnlockBXlockA
A=Y+1写回A(=3)UnlockA
SlockA
等待等待等待X=A=3UnlockAXlockBB=X+1写回B(=4)UnlockBT1T2不可串行化的调度可串行化的调度30ppt课件二、如何保证并发操作的调度是正确的保证并发操作调度正确性的方法封锁方法:两段锁(Two-PhaseLocking,简称2PL)协议时标方法乐观方法31ppt课件两段封锁协议是最常用的一种封锁协议。封锁协议在运用封锁方法时,对数据对象加锁时需要约定一些规则,例如何时申请封锁、持锁时间、何时释放封锁等。我们称这些规格为封锁协议。32ppt课件11.5两段锁协议两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁。内容1.在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁2.在释放一个封锁之后,事务不再获得任何其他封锁。33ppt课件“两段”锁的含义事务分为两个阶段第一阶段是获得封锁,也称为扩展阶段;第二阶段是释放封锁,也称为收缩阶段。例:事务1的封锁序列:SlockA...SlockB...XlockC...UnlockB...UnlockA...UnlockC;事务2的封锁序列:SlockA...UnlockA...SlockB...XlockC...UnlockC...UnlockB;事务1遵守两段锁协议,而事务2不遵守两段协议。34ppt课件结论并行执行的所有事务均遵守两段锁协议,则对这些事务的所有并行调度策略都是可串行化的。
所有遵守两段锁协议的事务,其并行执行的结果一定是正确的事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件可串行化的调度中,不一定所有事务都必须符合两段锁协议。35ppt课件图遵守两段锁协议的事务可能发生死锁T1SlockB读B=2
XlockA等待等待T2
SlockA读A=2
XlockA等待36ppt课件11.6封锁的粒度一、什么是封锁粒度二、选择封锁粒度的原则37ppt课件一、什么是封锁粒度X锁和S锁都是加在某一个数据对象上的封锁的对象:逻辑单元,物理单元
例:在关系数据库中,封锁对象:逻辑单元:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 投影设备在电影后期制作的应用考核试卷
- 宝石的市场营销策略与品牌建设创新成果评价分析考核试卷
- 疏散指示标志的设置与检查标准考核试卷
- 灯具销售目标市场分析与定位考核试卷
- 泵的密封系统与泄漏控制考核试卷
- 中药材种植的农业水土保持措施考核试卷
- 玻璃制造中的市场竞争与品牌建设考核试卷
- 情绪管理教具设计考核试卷
- 全球及中国蒽醌(蒽醌中间体)市场发展趋势及前景潜力预测报告2025-2030年
- 专业英语 Unit 2教案学习资料
- 中建医院幕墙工程专项方案
- 2025届贵州省铜仁一中高考英语二模试卷含解析
- 内河避碰与信号大副核心考点必背考试题库(含答案)
- 2025提升群众安全感和满意度工作方案范文
- 2023年北京市通州初三一模物理试卷及答案
- 医疗质量(安全)不良事件信息采集、记录和报告相关制度
- 2024年职教高考《机械制图》考试题库
- 2024年-2025年公路养护工理论知识考试题及答案
- 砂石生产系统拆除安装方案
- 公司安全生产教育培训制度范本
- 人教版九年级化学《溶液的形成》课件
评论
0/150
提交评论