《并发控制》ppt课件

《并发控制》ppt课件

ID:40049701

大小:2.50 MB

页数:96页

时间:2019-07-18

《并发控制》ppt课件_第1页
《并发控制》ppt课件_第2页
《并发控制》ppt课件_第3页
《并发控制》ppt课件_第4页
《并发控制》ppt课件_第5页
资源描述:

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

1、第8章并发控制本章内容参考:数据库概念(第四版)byA.SilberschatzChapter16ConcurrencyControl补充内容本章内容特色:若干协议,实现时编程较难理论上有难度,细致(如时间戳,等候图等)有些协议至今没有实现本章要解决的关键问题:如何实现隔离性,保证一致性主要内容IntroductiontoIsolationDependencyModelofIsolationTransactionDependencyRelations基于锁的协议基于时间戳的协议基于验证的协议多粒度多版本死锁处理插入与删除操作索引结构中的并发IntroductiontoIsolati

2、on系统状态vs.不变式(invariant)–“如果向EMP插入一个记录,相应地必须向ZIP插入一条记录。”–“如果EMP的一个副本被更新,其余副本也必须以同样的方式被更新。”–“如果一个程序改变了帐户余额,有关的修改必须记录在案。”如果满足所有这些不变式,则系统状态被认为是一致的通常一个状态在向另外一个新的且一致性状态转换时,可能会出现短暂的不一致例如,向EMP表插入一条记录,不可能使EMP以及ZIP索引的插入完全同步几乎任何一个涉及多个对象更新的变换,都会使它们之间有短暂的不一致性IntroductiontoIsolation为了应付这些短暂的不一致性,将多个相关操作以组的方

3、式形成事务,以保持一致性的约束.一个从一致性的系统状态开始的事务,其间会导致临时的不一致状态,但是在事务结束时系统会进入一个新的一致状态事务是一致性的单位,这就是事务ACID特性中的C(一致性)的含义如果事务是隔离地一一在运行,那么每一个事务可以知道其上一个事务所导致的一致性状态但是,如果多个事务并发执行,那么某些事务的输入和后续行为或许会不一致,即使每一个隔离执行的事务都是正确的,并发事务的执行必须加以控制以便正确的程序不会失效这就是事务ACID特性中的I(隔离性)的含义IntroductiontoIsolation实现隔离最简单的方式就是一次只运行一个程序(事务,前提是:如果所

4、有的程序都很短小,如果所有数据可以集中存放在主存中,且如果所有的数据都由一个处理器来存取,这时没必要考虑并发来存取——这些程序可以简单地以顺序方式执行问题是,这些情况中包含了太多的”如果”因此,系统必须以某种方式提供并发控制,保证隔离性,使之满足并发的第一法则人们已经尝试过许多种提供自动隔离的方法其中,一个公认可行的解决方案就是封锁IntroductiontoIsolation对封锁方法,仍有一系列费解的问题如果并发控制机制代价过高,会使得代价高于收益。通常,复杂的算法实现起来和执行起来也比较复杂第二法则主张使用简单的算法IntroductiontoIsolation最简单的封锁协

5、议是给每个对象加一个锁。如果这个需要锁同时授于另外一个事务,该事务将等待这个锁被释放封锁是一种实现串行化的机制,这样就确保任一时刻仅仅只有一个事务在存取一个对象通过细化锁的粒度(锁覆盖的数据多少),可以提高并发度锁的概念可以追溯到几千年以前,它是紧接着门之后的发明现在这个概念(思想)在操作系统领域里已经很普遍了,在该领域中,锁又被称为:–信号量(semaphores),–管程(monitors)–临界区(criticalsections),–串行重用资源(seriallyreuseablereuseableresources)IntroductiontoIsolation事务系统对

6、并发控制的主要贡献是,进一步提炼了原有的这些思想,纳入了自动封锁以及把事务undo/redo算法同封锁算法结合起来这种方法给应用程序开发者一个极简单的并发控制和异常处理的模型事务处理系统自动地申请加锁并且登录日志以维护ACID特性应用程序设计人员可能疏忽并发控制问题,除非存在着许多事务存取同一个对象而引起的性能问题,所谓的热点(hotspotshotspots)隔离性理论是允许自动封锁而带来的重要结果DependencyModelofIsolation理解隔离性结果最简单的方式,是根据事务的输入和输出来理解事务要么读一个对象查看其状态,要么写一个对象改变对象的状态设想创建和消除对象

7、只不过是改写其状态而已。以这种粗略的方式来看,事务可以看作是一连串对象的读写操作两个不同事务对同一个对象的读操作不会破坏一致性,因为读操作不会改变对象的状态(假定其状态初始是一致的)因此,只有写操作有可能带来问题DependencyModelofIsolation同一事务对同一个对象的两个写操作也不会违反一致性,ACID特性假定事务知道它正在干什么ACID特性假定:如果事务隔离地运行,最终会正确地转换系统状态因此,只有两个并发事务之间同写操作有关联的的交叉操才可能造成

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

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

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