08-事务及并发控制.pptVIP

  1. 1、本文档共85页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分布式系统 事务和并发控制 第八章 事务和并发控制 简介 事务 嵌套事务 锁 乐观并发控制 时间戳排序 并发控制方法的比较 小结 简介 事务的目标 在多个事务访问对象以及服务器面临故障的情况下,保证所有由服务器管理的对象始终保持一个一致的状态。 并发控制 增强可靠性 可恢复对象 利用持久存储保存状态信息 简介 银行事务事例 简介 简单的同步机制(无事务) 服务器上的原子操作   - 使用多线程可提高服务器的性能   - 采用锁机制保证线程同步   - 原子操作:免受其它线程中执行的并发操作干扰的操作 通过服务器操作的同步加强客户的协同 - 互斥   - 生产者-消费者   Java中的wait和notify方法 简介 事务的故障模型——Lampson模型 对持久性存储的写操作可能发生故障   - 写操作无效或写入错误的值   - 文件存储可能损坏   - 读数据时可根据校验和发现损坏数据 服务器可能偶尔崩溃 - 进程崩溃后,根据持久存储中的信息恢复   - 服务器不会产生随机故障 消息传递可能由任意长时间的延迟 - 消息可丢失、重复或者损坏   - 接收方能够检测受损消息 第八章 事务和并发控制 简介 事务 嵌套事务 锁 乐观并发控制 时间戳排序 并发控制方法的比较 小结 事务 事务的概念  以原子方式执行的一系列操作,即 1. 它们不受其它并发客户操作的干扰  2. 所有操作或者全部成功完成,或者不产生任何影响 银行事务示例 事务 全有或全无:或者完全成功,或者不留下任何效果 故障原子性  即使服务器崩溃,事务的效果也是原子的。 持久性  一旦事务完成,它的所有效果将被保存到持久存储中 隔离性 每个事务的影响不受其它事务的影响 事务 使用一个事务 事务协调者  - 作用   创建和管理事务   - 示例 事务 使用一个事务(续) 事务执行结果  - 完全成功  - 放弃事务 客户放弃事务 服务器放弃事务 事务执行历史示例 事务 事务 并发控制(一) 更新丢失问题  初值:帐户A、B、C分别为$100、$200、$300  操作:两次转帐(A、B→C),每次转帐金额为B当前帐户余额的10% 期望结果:B的终值应为$242 事务 事务 并发控制(二) 不一致检索  初值:帐户A、B分别为$200、$200  操作:转帐+查询银行所有帐户的总余额 期望结果:总余额为$400 事务 事务 并发控制(三) 串行等价性  - 多事务正确运行效果推断   若每个事务知道它单独执行的正确效果,则可以推断出这些事务按某种次序一次执行一个事务的效果。  - 串行等价的交错执行   并发事务交错执行操作的效果等同于按某种次序一次执行一个事务的效果。   - 使用串行等价性作为并发执行的判断标准,可防止更新丢失和不一致检索问题。    事务 事务 事务 并发控制(三) 冲突操作  - 冲突   两个操作的执行效果和它们的执行次序相关  - Read和Write操作的冲突规则      事务 并发控制(三) 冲突操作(续)  - 串行等价性   两个事务串行等价的充要条件是,两个事务中所有的冲突操作都按相同的次序在它们访问的对象上执行。  - 非串行等价地执行事务示例   事务T:x=read(i); write(i,10); write(j,20); 事务U:y=read(j); write(j,30); z=read(i);      事务 事务 并发控制(四) 并发控制协议  - 依据   串行等价性  - 目的   将访问对象的并发事务串行化  - 方法 锁 乐观并发控制 时间戳排序      事务 事务放弃时的恢复(一) 脏数据读取  某个事务读取了另一个未提交事务写入的数据 事务 事务放弃时的恢复(二) 事务可恢复性  策略:推迟事务提交,直到它读取更新结果的其它事务都已提交。 连锁放弃   - 某个事务的放弃可能导致后续更多事务的放弃   - 防止方法:只允许事务读取已提交事务写入的对象 事务 事务放弃时的恢复(三) 过早写入   - 一些数据库在放弃事务时,将变量的值恢复到该事务所有wtrite操作的“前映像”。   - 为了保证使用前映像进行事务恢复时获得正确的结果,write操作必须等到前面修改同一对象的其它事务提交或放弃后才能进行。 事务 事务放弃时的恢复(四) 事务的严格执行   - 严格执行:read和write操作都推迟到写同一对象的其它事务提交或放弃后进行   - 可以真正保证事务的隔离性 临时版本   - 目的:事务放弃后,能够清除所有对象的更新   - 方法 事务的所有操作更新

您可能关注的文档

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档