数据库第7章并发控制_第1页
数据库第7章并发控制_第2页
数据库第7章并发控制_第3页
数据库第7章并发控制_第4页
数据库第7章并发控制_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

事务并并发事务引起的可串行基于锁的并发控制协*活锁与*多粒用以促

I/O与CPU等可以并行交叉运并发执改善系统的资源利减少短事务的等待一个或多个事务的操作按时间排序的一个序用以促

事务并并发事务引起的可串行基于锁的并发控制协*活锁与*多粒用以促

读脏数据(dirty脏数据(dirtydata)是对未提 写数据的统称若脏读就造成了数据库的致状态,应严。若脏读带来的影响足够小,尔可读一次脏数据,它可以提并发性,减少事务的等待时用以促

不可重复读(unrepeatable两次读到的值两次读到的值在事务串行执行时,不会出现此象的数据,以事务T1的两事务修改了它用以促

丢失更新(lost由由两个事务对同一数据地写入引用以促

事务并并发事务引起的可串行基于锁的并发控制协*活锁与*多粒用以促

回顾:事务ACID特性中 性每个事务依次顺序并行但事务之间并发执行,DBMS调整事务的调度,使其运行果与一次只执行一个事务的结果用以促

两两个串行调度的结果不同。但只果并不重用以促

可串行果相同DBMS认为事务串行调度的结果保持了数据库的一致性,都是正确一个调度如果是可串行化的,系统认为其调度是一个正确的调持了数据库的一致用以促

丢失更DBMS需要事务调如果将事务的并发执行完全交给操作系统,则任何一种调度方式可能出有的调度能保持数据库的一致,有的调度却会产生错误的结DBMS必须对事务的运行加以控制,确保交叉调度完毕后的结果与某串行调度的结果相同,数据库不会出现不一致的状用以促

简记WRITE简写为READ简写为WT(X):事务T写数据库元素RT(X):事务T读数据库元素S表示一个调度调度(事务序列)表示S=R1(A)R2(A)W1(A)W2(A)R2(B)R1(B)W2(B)用以促

指 读相同数据:若事务Ti和Tj都 读写相 写相同数据 读写不同数据:示S=R1(A)R2(A)W1(A)W2(A)R2(B)R1(B)W2(B)T2事务的READ(A)与T1事务的WRITE(A) 指T1事务的READ(A)与T2事务的READ(A)指令是 调调度中两个事务发,必须用以促

令的执行顺序,得到一个新的调度S′。称调度S与调度 等价的equivalent)若一个调 等价于一个串行调度,则该调度 可串行化的示调度S=R1(A)W1(A)R2(A)W2(A)R1(B)W1(B)R2(B)R1(B)与W2(A)指令 ,可以交换执行顺序R1(B)与R2(A)指令 ,可以交换执行顺序W1(B)与W2(A)指令 ,可以交换执行顺序W1(B)与R2(A)指令 ,可以交换执行顺序促调度S’=R1(A)W1(A)R1(B)W1(B)R2(A)W2(A)R2(B)促调度S’是一个串行调调度S等价于串行调度S’,可串行化可串行是可串行性的充分调度运调度运行结果与串行度T1→T2→T3的运行果是一致的,但调度是可串用以促

视图等 调度S1和调度S2不是视图等价调度S1中T2的A值是事务T1修改调度S2中T2的A值是事务T1修改前的值用以促

示数数据库中药品A、B的最终状态都是由事务T2写入的事务 的事务 的都是数据库的初始事务 的数据都是事务T1修改后的调度S和调度S’是视图等价的,因为用以促

视图可串行行化的 举设调度S1=R1(A)W3(A)R2(B)经过 调整,S2=R2(B)R1(A)W1(B)调度S1和调度S2 等价的又因为调度S2为一串行调度,因此调度S1 可串行化的对于调度S1和S2,事务 的A、事务 的B都是数据库的始值;数据库最终的A、B值都是由事务T3和T1写入的因此,调度S1和S2是视图可串行化用以促

判定一个调度是否 可串行化的,可以使用前图(precedence若前驱图中存在环,则表示调度S是不可串行化 扑排序得到调度S的一个等价的串行调度。前前驱图是一个有向图顶点代表调度S由Ti→Tj的边表示在调度S中Ti和Tj之间存在一 指令并且Ti中的指令先于Tj中的指令执行。用以促

示例S=R1(A)W1(A)R2(A)W2(A)R1(B)W1(B)R2(B)指令W1(A)在R2(A)前,W1(B)在R2(B)前,因此存在从T1到T2的示例S=R1(A)R2(A)W1(A)W2(A)R2(B)R1(B)W2(B)W1(A)在W2(A)之前,R1(B)在W2(B)之前,因此存在T1到T2的有向R2(A)在W1(A)之前,W2(B)在W1(B)之前,因此存在T2到T1的有向用以促

数据库系统要求所有的调度都是可恢复可恢复条件调度S中,事务Ti如了必须等事务Tj提交后才能提交用以促

事务在并行执行过程中发生故障,还可个事务的级联回假定T2事务A的值并修改还有T3事T2若事务T1发生故障时,后续的事务T2、T3、T4...都已提交,则务T1的回无级联回滚的调度应满调度S中的每对事务Ti和Tj,事务Ti了事务Tj的数据,则事务Tj必须在Ti前提即调度脏数据用以促

事务并并发事务引起的可串行基于锁的并发控制协*活锁与*多粒用以促

先要对将执行读、写操作的数据库对象申请锁,在获得该据库对象的控制权力后,才能进行相应地读、写操作是实现数据库并发控制的重 锁管理器(lock事务执行过程中锁的申请和释放由DBMS中的锁管理器锁管理 一张哈希表——锁的事务。锁表包含的信息包括:每个数据库对象上已有的锁的个锁的类型以及一个指向申请锁队列的用以促

锁的类共享锁(S锁):如果事务Ti申请到数据项Q则Ti排它锁(X锁):如果事务Ti申请到数据项Q的排它锁,则可以读数据项Q,也可以写Q锁的相用以促

当事务需要操作数据项时,它向锁管理的申请若申请的是一个共享锁,且申请队列为空,当前数据项上没有排它锁,则锁管理器授予锁,并修改数据项的锁若申请的是一个排它锁,当前也没有其它的事务拥有该项上的锁,则锁管理器授予锁,并修改数据项的锁否则,申请的锁不能马上授予,锁申请加入申请队列,申锁的事用以促

用以促

两段锁协议(two-phaselockingprotocol,2PL)是 增长阶段(growingphase):在对任何数据进行读、写操作之首先申请并获得该数据 收缩阶段(shrinkingphase):在释放一 后,事务不再申和获得其它的任 两段锁协议是保 可串行化的充分条件,但该议不保证不发生死锁用以促

两段锁协议的级每每个若T1事务在WRITE(B)时用以促

严格两除要求满足两段锁协议规定外,还要求事务的交之后释放。解决级联回滚避免了脏读和丢失修改的问强两阶除要求满足两段锁协议规定外,还要求事务的所有锁都必须在事提交之后释放进一步解决数据项不能重复读的用以促

两阶段从两段锁协议到严格两段锁协议,再到强两段锁协议,事务持锁的时间不断增长。这不但保证事务的并发调度是但带来的另一方面的问题是并发度的降低,以及死锁出现可能目前,大多数的DBMS都采用严格两段锁协议或强两段锁协用以促

锁的升级及更锁的锁的概率更新锁只允许事数项而不能修改数据用以用以致学更新锁用以促

事务并并发事务引起的可串行基于锁的并发控制协*活锁与*多粒用以促

活锁解解决采用先来先服务的策略用以促

死死死锁的两种处理方一种是进行死锁的预防,不让并执行的事务出现死锁的状一种是允许死锁的发生,在死锁现后采取措施解决,为此系统中增加死锁的检测及死锁的解除用以促

顺 一 要求事务在开始执行前先申请到所需的所 ,如果有一没有申请到,则事务中 用以促

时间先级越高。 Wait-die机制:若Ti优先级较高,则Ti可以等待;否则中止事务TiWound-wait机制:若Ti优先级较高,则中止Tj;否则Ti等待示例:假设事务T1、T2、T3的时间戳分别为5,10,20在Wait-die机制下 在Wound-wait机制下 用以促

超时现死锁,此时该事务本身回滚并重启。实现简可能出等待多长时间合适难以把等待图当且仅当等待图中出现环路时,表示系统中存在死锁用以促

死锁的选择一个或多个事务撤销,释放这个或这些事务拥有 撤销事务的选为解除死锁必须回滚处于死锁状态的部分事撤销事务的选择原则是事务撤销所需的系统代价最事务撤销的程全部回滚选中事务,然后重新开部分回滚选中事务,需 的事务运行状态信息用以促

事务并并发事务引起的可串行基于锁的并发控制协*活锁与*多粒用以促

对象的大小称 粒度数据库的逻辑单位,如属性、元组、关系、索、数据数据库的物理单位,如页、块粒度对并发度和资源消耗 粒度小,则系统并发度高,资源消耗多 粒度大,则系统并发度低,资源消耗小不同事务可能需要不同的粒度,系用以促

意向锁(intention如果对一个结点加意向锁,则意味着要对该的所有子孙结点显式加在一个结点显式加锁前,该结点的所有祖先结都应加上意向用以促

意向锁意向共

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论