并发控制演示教学.ppt

并发控制演示教学.ppt

ID:59543798

大小:540.50 KB

页数:36页

时间:2020-11-09

并发控制演示教学.ppt_第1页
并发控制演示教学.ppt_第2页
并发控制演示教学.ppt_第3页
并发控制演示教学.ppt_第4页
并发控制演示教学.ppt_第5页
资源描述:

《并发控制演示教学.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、并发控制3.并发的目的(与串行执行比较)可回答第一个问题。⑴改善系统的资源利用率;⑵改善短事务的响应时间。9/8/20212DesignedbyTaoHongcai8.2并发执行可能引起的问题事务如不加控制地并发执行,会产生如下三个问题。原因:因两个事务对同一数据并发地写入引起,称写-写冲突(write-writeconflict)。1.丢失更新(LostUpdate)亦称:覆盖未提交的数据(OverwritingUncommittedData)。结果:与串行地执行两个事务的结果不一致。9/8/20213

2、DesignedbyTaoHongcai原因:由于一事务读另一事务尚未提交的数据引起,称为写-读冲突(write-readconflict)。2.读脏数据(DirtyRead)亦称:读未提交的数据(ReadingUncommittedData)。结果:有可能读到要回退的数据。9/8/20214DesignedbyTaoHongcai原因:该问题因读-写冲突(read-writeconflict)引起。3.读值不可复现(UnrepeatableRead)结果:第二次读的值与前次读的值不同。结论:由上可以看出

3、,把不同事务中对同一对象进行WW、RW或WR的操作进行交错都会造成冲突,因此,在安排事务操作交错(即并发执行)时,应避免把这类操作放在一起。9/8/20215DesignedbyTaoHongcai8.3并发执行的正确性准则1.基本概念事务调度原则:调度中,不同事务的操作可以交叉,但需保持各个事务的操作次序。事务调度(Schedule):是一串事务中所有操作的顺序序列。并发原则:既要交错执行,以充分利用系统资源;又要避免访问冲突。约定:为便于问题描述,假定DB对象O总被读入程序的O变量,将事务T中读对象O

4、的操作表示为RT(O),写表示成WT(O),或用事务号作下标。调度描述:S=….R1(x)….W2(x)…..R1(x)….本节内容回答第三个问题,即:如何知道或判定并发执行后结果是否正确呢?9/8/20216DesignedbyTaoHongcai2.等价调度考虑冲突操作:不同事务的一对操作,有些是冲突的,有些是不冲突的。目标等价(ViewEquivalence):以上的调度等价定义是一个普遍定义,亦称为目标等价。调度等价:如有两个调度S1和S2,在DB的任一初始状态下,所有读出的数据都是一样的,留给D

5、B的最终状态也是一样的,则称S1和S2是等价(Equivalence)的。冲突等价(ConflictEquivalence):凡是通过调换S中不冲突操作所得的新调度,称S的冲突等价调度。结论:如两个调度是冲突等价的,则一定是目标等价的;反之不亦然。问题提出:对同一事务集,可能有多种调度。9/8/20217DesignedbyTaoHongcai3.可串行化(Serializability)基本论点:串行调度中,各事务操作没有交错,即不会相互干扰,故不会产生并发引起的问题。推论1:因冲突等价一定是目标等价,

6、故冲突可串行化调度也一定是目标可串行化调度。可串行化分类:对应两个调度等价,可串行化亦分:目标可串行化和冲突可串行化。推论2:可串行化调度与某一串行调度等价,故也不会产生并发所引起的问题。并发执行的正确性准则:在当前的DBMS中,均以“冲突可串行化”作为并发执行的正确性准则。概念:对一事务集,如一个并发调度与一个串行调度等价,则称此并发调度是可串行化的(Serializable)。9/8/20218DesignedbyTaoHongcai注意:②不同的可串行化调度是不一定等价的,即n个事务交付系统执行后,

7、由于调度不同,可能产生不同的结果,这是允许的。除非特别规定,用户对这n个事务的执行顺序无要求。①对n个事务,可有n!种排列,即有n!种串行调度。每个串行调度执行的结果可能不一样,可串行化准则只要求调度和其中某一个串行调度等价即可。9/8/20219DesignedbyTaoHongcai4.调度可串行化的测试①Ri(x)在Wj(x)之前;前趋图构造:如下列条件之一成立,则在E中可加一条边Ti→Tj。前趋图:是一有向图G=(V,E),V(Vertex)为顶点集合,E(Edge)为边集合。在此,V包含所有参与

8、调度的事务,而边可通过分析冲突操作来决定。②Wi(x)在Rj(x)之前;③Wi(x)在Wj(x)之前。方法:一个调度是否可串行化,可用其前趋图(PrecedenceGraph)来测试。是否可串行化测试方法:如前趋图中有回路,则S不可能等价于任何串行调度;如前趋图无回路,则可找到S的一个等价的串行调度。9/8/202110DesignedbyTaoHongcai①该调度是否可串行化?示例:事务集={T1,T2,T3,T4}S=W

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

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

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