第5章分布式数据库中的并发控制.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章分布式数据库中的并发控制.ppt

多版本2PL的思想 当只有一个单独的事务T持有数据项上的写锁时,允许其他事务T’读该项X,这是通过给予每个项X的两个版本来实现的 一个版本X是由一个已提交的事务写入的 另一个版本X’是每个事务T获得该数据项上写锁时创建的、 当事务T持有这个写锁时,其他事务可以继续读X的已提交版本 事务T可以写X’的值,而不影响X已提交版本的值 但是,一旦T准备提交,它必须在能够提交之前,得到持有写锁的数据项上的验证锁,要等写锁释放之后 一旦获得验证锁,数据项的已提交版本X被置为版本X’的值,版本X’被丢弃,验证锁被释放。 5.3 采用验证锁的多版本两阶段封锁 5 分布式数据库系统并发控制的多版本技术 基本思想 对于冲突操作不像悲观方法那样采取挂起或拒绝的方法,而是让一个事务执行直到完成 基于如下假设 冲突的事务是少数(查询为主的系统中,冲突少于5%) 大多数事务可以不受干扰地执行完毕 6.1 基本思想和假设 6 分布式数据库系统并发控制的乐观方法 6.2 执行阶段划分 6 分布式数据库系统并发控制的乐观方法 验证 读/计算 写/提交 读/计算 验证 写/提交 乐观法事务执行的各个阶段 悲观法事务执行的各个阶段 事务的三个阶段 读段/计算:在数据对象的局部副本上执行事务,这时其他事务不能存取此副本。事务从DB读数据,执行计算,并且确定写集数据项的新值。写操作总是对局部副本,仅当验证通过后,在事务结束处,才将其写入DB。 验证段:检验并发事务的可串性,该阶段验证修改应用是否引起完整性(一致性)的丢失,验证阶段通过,才能进入写段,否则事务重启动 写段/提交:验证阶段通过,则把事务的更新应用于数据库,对数据进行更新,否则,忽略所有更新,并重新开始该事务 6.2 执行阶段划分 6 分布式数据库系统并发控制的乐观方法 验证 使用数据项和事务上的时标 只使用事务时标 6.3 验证分类 6 分布式数据库系统并发控制的乐观方法 使用数据项和事务上的时标 假设是一个完全冗余的DB,事务在读期间把更新写入一个更新表 事务时标:事务在启动执行时接受的具有唯一性的时标 数据项时标:对该数据项最后写入的事务的时间戳 算法假定:读集 ? 写集, 即写必须先读 6.3 使用数据项和事务上的时标 6 分布式数据库系统并发控制的乐观方法 读阶段末,事务产生一个更新表u,包括 读集的数据项,带有自身的时标 写集数据项的新值 该事务自身的时标 验证阶段 把更新表发送到每一站点,每个站点对是否确认该更新表进行表决,并把表决结果送回到该事务的源站点 如源站点收到多数肯定票,则决定事务提交并通知各站点 如多数表决是否定的,则把放弃更新表的决定通知所有站点,然后重新启动该事务 6.3 使用数据项和事务上的时标 6 分布式数据库系统并发控制的乐观方法 表决规则 比较更新表u中数据项的时标与本地库中相应数据项的时标, 全部相等则投赞成票 不相等, 投反对派票, 因为此时可能本地写入数据项之前或之后, 又有事务对数据项做了写操作 表决结果 若赞成票是大多数, 则考虑Commit, 并将结论发送给每个Site 否则, 其更新表无效, 事务重启动 6.3 使用数据项和事务上的时标 6 分布式数据库系统并发控制的乐观方法 更新表冲突表决规则 比较u表中读集中数据项的时标与数据库中对应数据项的时标,如果不等,投否定票 若相等,Site j在对u表做表决时, 若存在Site k上的u’表传送到Site j, 使Site j处于对u’的表决中 若u’中有与u冲突的更新表, 当u’中的时标大时, 则反对 当u’中的时标小时, 则延迟表决 若与u’中无冲突数据项, 则赞成 原发Site 投票 Site j 更新表u DB U’ 6.3 使用数据项和事务上的时标 6 分布式数据库系统并发控制的乐观方法 事务Tj的验证过程 检验由一些事务给出的执行调度是否可以成为一个按时标串行执行的调度. 参与验证的事务有: a 已经提交的事务 b 当Tj验证时也正处于验证的事务 c Tj本身 6.4 只使用事务上的时标 6 分布式数据库系统并发控制的乐观方法 对于所有TS(Ti) TS(Tj)的事务Ti, Tj验证必须满足如下三个条件 Ti在Tj开始其读段前已完成其写段(严格串行) Ti的写集与Tj的读集不相交, 并且Ti在Tj开始其写段时已完成其写段(Ti与Tj不冲突) Ti的写集与Tj的写集不相交, 并且Ti在Tj读段完成前已结束其读段(写/写不冲突) 6.4 只使用事务上的时标 6 分布式数据库系统并发控制的乐观

文档评论(0)

ziyouzizai + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档