第八节分布式并发控制.pptVIP

  1. 1、本文档共36页,可阅读全部内容。
  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文档。上传文档
查看更多
两段封锁协议 严格的两段封锁协议 锁的个数 解写锁 写日志/undo 解读锁 事务开始执行 事务执行结束 操作 commit/abort 时间 阶段1 阶段2 (1)对commit的处理 ? 释放读锁; ? 写日志; ? 释放写锁; (2)对abort的处理 ? 释放读锁; ? undo处理; ? 释放写锁; 分布式数据库的并发控制 基于锁的并发控制方法、时间戳方法、乐观方法等 并发控制算法 悲观法 加锁法 混合法 时间戳法 集中式加锁 基本时间戳法 多版本时间戳法 保守时间戳法 乐观法 加锁法 时间戳法 主副本加锁 分布式加锁 分布式数据库的并发控制 基于锁的并发控制方法的实现 (1) 集中式的实现方法 参与者场地DP 协调者场地TM (1) 加锁请求 (2)允许加锁 (3) 操作 (4) 操作结束 (5) 释放锁 中心场地 LM 优点:实现简单,方便管理; 缺点:中心场地负载重,单点失效; 集中式实现方法是在分布库中设立一个2PL调度器,所有封锁请求均由该调度器完成,每个场地的事务管理器都和该调度器通信。 分布式数据库的并发控制 基于锁的并发控制方法的实现 (2) 分布式的实现方法 优点:避免了集中式封锁方法的缺点; 缺点:实现复杂,锁管理复杂; 分布式实现方法是在每个场地上都有一个2PL调度器,负责处理本场地上的封锁请求。 协调TM 参与场地 LMs 参与场地 DPs (1)加锁请求 (2) 操作 (3) 操作结束 (4)释放锁 分布式数据库的并发控制 基于锁的并发控制方法的实现 (3) 对复制数据的封锁方法 基于特定副本的封锁方法 基于投票的封锁方法 主副本法:规定一个数据项的多个副本中的一个作为主副本,所有对该数据项的封锁请求都施加在主副本上。 主场地法:规定保存副本的某个场地为主场地,所有封锁请求都施加在主场地上的数据项副本上。 带有后备场地的主场地法 读写全法:事务对数据项加读锁时,只封锁其中一个副本;若加写锁,必须封锁所有副本。 多数副本法是:无论读锁还是写锁申请,必须封锁数据项一半以上的副本。申请成功后,若为读锁,读取一个副本的值;若为写锁,需向所有副本发送新值。 第八章 分布式并发控制 分布式数据库系统原理与应用 第八章 分布式并发控制 主要内容 基本概念 并发控制理论基础 基于锁的并发控制方法 两段封锁协议 分布库并发控制方法 分布式死锁管理 简单地讲,并发就是多个事务的同时执行,并发能够提高系统的效率,但也可能会带来三种错误。并发控制的主要目的是保证事务的一致性和隔离性,最终保证数据的一致性。 当分布事务并发执行时,并发控制既要实现分布事务的可串行性,又要保持事务具有良好的并发度,以保证系统具有良好的性能。 并发控制问题 基本概念 T1 T2 读x 计算x=x-10 写x 读x 计算x=x-20 写x T1:R1(x),O1(x),W1(x); T2:R2(x),O2(x),W2(x); 若串行执行(T1→T2),则操作序列为: R1(x),O1(x),W1(x),R2(x),O2(x),W2(x), 执行结果x=70。 并发控制问题 (1) 丢失修改错误 基本概念 执行结果x=80 T1 T2 读x 计算x=x-10 写x 读x 计算x=x-20 写x × 并发控制问题 (2) 不可重复读错误 基本概念 T1两次读取同一个数据,读取的值不同 T1 T2 读x=100 写x=80 读x=80 × 并发控制问题 (3) 读脏数据错误 基本概念 T2读取了T1废弃的数据x T1 T2 写x=100 读x=100 abort × 并发控制问题 并发控制就是利用正确的方式调度事务中所涉及的并发操作序列,避免造成数据的不一致性;防止一个事务的执行受到其它事务的干扰,保证事务并发执行的可串行性。 基本概念 事务执行过程的形式化描述 通常以串行化理论来检验并发控制方法的正确性。 依据串行化理论,在数据库上运行的一个事务的所有操作,按其性质分为读和写两类。 一个事务Ti对数据项x的读操作和写操作记为Ri(x)和Wi(x)。 一个事务Ti所读取数据项的集合,称为Ti的读集,所写的数据项的集合,称为写集,分别记为R(Ti)和W(Ti)。 设有事务T1,完成的操作如下:T1:x=x+1;y=y+1;则T1可表示为: T1 :R1(x) W1(x) R1(y) W1(y)。 读/写集分别是: R(T1)={x,y} W(T1)={x,y} 并发控制理论基础 事务执行过程的形式化描述 什么是历程? 在一个数据库上,各个事务所执行的操作组成的序列,称为事务的历程,记为H,有时也称为调度,记录了各事务的操作顺序。 对

文档评论(0)

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

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

1亿VIP精品文档

相关文档