- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
九事务的并发控制
北京邮电大学 高级操作系统 北京邮电大学 * 北京邮电大学 Outline 第九章 事务的并发控制 北京邮电大学 第九章 事务的并发控制 9.1 引言 9.2 锁机制 9.3 乐观并发控制 9.4 时间戳定序 北京邮电大学 9.1 引 言 信号量、管程 信号量:依赖于程序员;不适当的使用会死锁。分布式环境中很难实现,必须保持信号量数据的绝对一致性。 管程:编译器支持的编程语言结构。编译器依靠共享内存实现信号量,没有共享内存,就不能使用管程。 对事务的调度要保证对共享数据的执行效果与其串行调度等价,服务器可通过串行访问数据项来实现串行等价。 北京邮电大学 9.1 引 言 可串行性(化) 两个事务的全部冲突操作对应相同的顺序执行。 保证可串行性的三种并发控制方法 加锁 乐观并发控制 时间戳定序 北京邮电大学 9.2 锁机制 锁:串行结构的实现 北京邮电大学 9.2 锁机制 锁 每个服务器都为其数据项保留着锁。 当锁用于并发控制时,数据项在院子提交协议期间保持锁,且不能被其他事务使用。 加锁 当一数据项被加锁,则只有加锁的事务可访问它,其它事务或者等待锁被解开,或者在某种情况下共享锁。事务完成时解锁。使用锁会导致死锁,即事务彼此等待解锁。 北京邮电大学 9.2 锁机制 锁机制 读锁:其它可读,但不能写,有一个事务即加一个锁; 写锁:写之前获得,不能读或写(再写); 读 读 不冲突 读 写 冲突 写 写 冲突 北京邮电大学 9.2 锁机制 加锁/解锁操作(Lock/UnLock) 锁的粒度越小,加锁就可以越精确,也就能实现更大的并行度。 同时,锁的粒度越小,就需要更多的锁,这样开销也就越大,也就更容易导致死锁。 北京邮电大学 9.3 乐观并发控制 乐观并发控制 事务执行到提交前,在允许提交前,服务器完成一个检查,发现已完成的操作是否与相同数据项上的其它并发事务的操作发生冲突,若冲突,服务器终止它。 基础:在大多数应用中,两客户的事务访问同一数据项的可能性很小。 北京邮电大学 9.3 乐观并发控制 乐观并发控制三个阶段: 读出阶段: 每个事务修改的每个数据项都有一个试用性版本,所有的读操作都是在数据项的提交版本上完成的,不会读出“脏”数据。 验证阶段: 当接到Close Transaction请求,就检验事务是否存在对数据项上的操作与其它事务在同一数据项上的操作发生冲突,若验证通过,则事务提交,若验证失败,则要采用某种形式的冲突解决策略。 北京邮电大学 9.3 乐观并发控制 写入阶段: 若事务通过验证,它的试用性质版本中的所有修改记录将设置成永久的。 乐观并发控制的优缺点 优点:避免了死锁,允许最大的并行度。 缺点:有时会失效,所有的事务都必须退回重新运行一遍。在重负载的情况下,比较严重。 北京邮电大学 9.4 时间戳定序 时间戳定序 服务器记录读写每个数据项的最近时间,且对每一操作,要比较事务的时间戳和数据项的时间戳,以决定操作是否可立即执行、或被延迟、被拒绝。 每个事务开始时都被分配了一个唯一的时间戳,来自事务的申请就可以根据它们的时间戳获得一个全序。 北京邮电大学 9.4 时间戳定序 服务器可以用自己的时钟来分配时间戳,或者它可采用当分配时间戳时就加1的计数器——“伪时间”。 时间戳定序优缺点 优点:不会出现死锁。 缺点:在于实现的复杂性,这将导致降低性能。 北京邮电大学 * 事务验证即验证采用读/写冲突规则保证其特定事务的调度关于所有其他的重叠事务是串行等价的。 事务验证:是基于一对事务Ti和Tj的操作间冲突的,事务Tj关于一个重叠事务Ti是可串行化的,那么它们的操作必须遵守某些规则。 北京邮电大学 * 事务验证即验证采用读/写冲突规则保证其特定事务的调度关于所有其他的重叠事务是串行等价的。 事务验证:是基于一对事务Ti和Tj的操作间冲突的,事务Tj关于一个重叠事务Ti是可串行化的,那么它们的操作必须遵守某些规则。
您可能关注的文档
最近下载
- 【一建经济】21-JG-冲关宝典(中).pdf VIP
- 石油工程-岩石力学-试卷.pdf VIP
- 【一建经济】21-JG-冲关宝典(上).pdf VIP
- 教师的专业成长课件.pptx VIP
- 西师版小学综合实践活动方案五年级上册.pdf VIP
- 2024年四川省巴中市中考数学试卷(含答案).doc VIP
- 生成式人工智能在初中生物学教学中的应用探究.pdf VIP
- 《装配式混凝土建筑构件生产》课件——本课程学习方法.pptx VIP
- 精品解析:2023-2024学年北京市海淀区人教版五年级上册期末测试数学试卷(解析版).docx VIP
- 2011年数学建模B题国家一等奖2011年数学建模B题国家一等奖.pdf VIP
文档评论(0)