第十一讲 并发控制技术ppt课件.ppt

第十一讲 并发控制技术ppt课件.ppt

ID:59011576

大小:680.00 KB

页数:37页

时间:2020-09-26

第十一讲 并发控制技术ppt课件.ppt_第1页
第十一讲 并发控制技术ppt课件.ppt_第2页
第十一讲 并发控制技术ppt课件.ppt_第3页
第十一讲 并发控制技术ppt课件.ppt_第4页
第十一讲 并发控制技术ppt课件.ppt_第5页
资源描述:

《第十一讲 并发控制技术ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十一讲并发控制技术并发控制技术一、并发控制概述二、封锁技术三、并发调度的可串行性四、两段锁协议并发控制技术一、并发控制概述并发控制概述多用户的并发访问允许多个用户同时使用的数据库系统飞机定票数据库系统银行数据库系统特点:在同一时刻并发运行的事务数可达数百个不同的多事务执行方式(1)事务串行执行(2)交叉并发方式(3)同时并发方式并发控制概述(续)事务并发执行带来的问题会产生多个事务同时存取同一数据的情况可能会存取和存储不正确的数据,破坏事务一致性和数据库的一致性并发控制机制的任务对并发操作进行正确调度保证事务的隔离性保证数据

2、库的一致性并发控制概述(续)实例分析[例]飞机订票系统中的一个活动序列①甲售票点(甲事务)读出某航班的机票余额A,设A=16;②乙售票点(乙事务)读出同一航班的机票余额A,也为16;③甲售票点卖出一张机票,修改余额A←A-1,所以A为15,把A写回数据库;④乙售票点也卖出一张机票,修改余额A←A-1,所以A为15,把A写回数据库。结果明明卖出两张机票,数据库中机票余额只减少1!并发控制概述(续)并发操作带来的数据不一致性丢失修改(LostUpdate)不可重复读(Non-repeatableRead)读“脏”数据(DirtyR

3、ead)记号R(x):读数据xW(x):写数据x并发控制概述(续)并发控制的主要技术有封锁(Locking)时间戳(Timestamp)乐观控制法商用的DBMS一般都采用封锁方法并发控制技术二、封锁技术封锁技术什么是封锁封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁;加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。基本封锁类型排它锁(ExclusiveLocks,简记为X锁)共享锁(ShareLocks,简记为S锁)封锁技术(续)Y=Yes,

4、相容的请求N=No,不相容的请求T1T2XS-XNNYSNYY-YYY锁的相容矩阵封锁技术(续)封锁协议运用封锁方法时,对数据对象加锁时需要约定一些规则:何时申请封锁?持锁时间?何时释放封锁等?封锁技术(续)三级封锁协议一级封锁协议:事务T在写数据X前必须获得X的排它锁,事务结束时释放该锁。二级封锁协议:一级封锁协议+事务T在读数据X前必须先获得X的共享锁,读取后释放该锁。三级封锁协议:一级封锁协议+事务T在读数据X前必须先获得X的共享锁,事务结束时释放该锁。分析:上述协议对数据不一致问题的解决!!封锁技术(续)活锁和死锁问题

5、封锁技术可以有效地解决并行操作的一致性问题,但也带来一些新的问题:死锁与活锁活锁问题的解决方法采用先来先服务的策略!死锁问题的两类方法1.预防死锁2.死锁的诊断与解除封锁技术(续)死锁的预防预防死锁的发生就是要破坏产生死锁的条件。预防死锁的方法一次封锁法顺序封锁法抢占与事务回滚法无等待法谨慎等待法封锁技术(续)死锁的诊断超时法事务等待图法解除死锁选择一个处理死锁代价最小的事务,将其撤消释放此事务持有的所有的锁,使其它事务能继续运行下去并发控制技术三、并发调度的可串行性并发调度的可串行性并发调度的相关问题DBMS对并发事务不同的

6、调度可能会产生不同的结果。什么样的调度是正确的?可串行化(Serializable)调度多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同。可串行性(Serializability)是并发事务正确调度的准则一个给定的并发调度,当且仅当它是可串行化的,才认为是正确调度并发调度的可串行性(续)[例]现在有两个事务,分别包含下列操作:事务T1:读B;A=B+1;写回A事务T2:读A;B=A+1;写回B现给出对这两个事务不同的调度策略:并发调度的可串行性(续)假设A、B的初值均为2。按T1→T2次序执

7、行结果为A=3,B=4串行调度策略,正确的调度并发调度的可串行性(续)假设A、B的初值均为2。T2→T1次序执行结果为B=3,A=4串行调度策略,正确的调度并发调度的可串行性(续)不可串行化的调度执行结果与(a)、(b)的结果都不同是错误的调度并发调度的可串行性(续)可串行化的调度执行结果与串行调度(a)的执行结果相同是正确的调度并发调度的可串行性(续)冲突可串行化调度冲突操作冲突操作是指不同的事务对同一个数据的读写操作和写写操作Ri(x)与Wj(x)/*事务Ti读x,Tj写x*/Wi(x)与Wj(x)/*事务Ti写x,Tj写

8、x*/其他操作是不冲突操作不同事务的冲突操作和同一事务的两个操作不能交换(Swap)并发调度的可串行性(续)冲突等价若调度S可以经过一系列非冲突操作交换转换成S’,则称S与S’是冲突等价的。冲突可串行化若一个调度S与一个串行调度冲突等价,则S是冲突可串行化的。冲突可串行化的调

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。