[工学]第8章分布式数据管理.pptVIP

  1. 1、本文档共66页,可阅读全部内容。
  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文档。上传文档
查看更多
[工学]第8章分布式数据管理

第八章 分布式数据管理 8.2 并发控制 基于锁的并发控制 加锁方案,共有三种实现方法: (1) 集中式加锁方法。在这种加锁方式中,锁管理是集中进行的。有一个集中的锁管理员,它负责锁的分配和释放。 (2)主站点加锁方法。每个数据对象有一个主站点,所有对数据对象的更新首先定向到主站点。对某个数据对象的加锁和释放锁的管理活动是由该数据对象的主站点上的锁管理员负责的。 (3) 分散式加锁方法。锁的管理有所有站点共同完成。事务处理的执行包括许多站点的参与和协作。 第八章 分布式数据管理 8.2 并发控制 基于时间戳的并发控制 各种时间戳: (1)ts(T):每个事务处理T在它启动的时候被分配一个时间戳ts(T),一个事务处理T中的每个操作被加盖一个时间戳ts(T); (2)tsRD(x):对数据对象最近一次读时的时间戳用tsRD(x)表示; (3)tsWR(x):对数据对象最近一次写时的时间戳用tsWR(x)表示; (4)read(T,x,ts) :read(T,x,ts)表示来自事务处理T对数据对象x读操作请求,该请求带有时间戳ts; (5)write(T,x,ts) :write(T,x,ts)表示来自事务处理T对数据对象x写操作请求,该请求带有时间戳ts。 第八章 分布式数据管理 8.2 并发控制 基于时间戳的并发控制 读或写操作的处理方式: (1) 读请求read(T,x,ts)。如果ts<tsWR(x),说明有一个对x的写操作发生在事务处理T启动之后,则读请求被拒绝,事务处理T被取消。反之,让T执行该读操作,并把max{tsRD(x),ts}赋给tsRD(x)。 (2) 写请求write(T,x,ts)。如果ts<tsWR(x),或者ts<tsRD(x),说明有一个对x的写操作或者有一个对x的读操作发生在事务处理T启动之后,则写请求被拒绝,事务处理T被取消。反之,让T执行该写操作,并把ts赋给tsWR(x)。 第八章 分布式数据管理 8.2 并发控制 基于时间戳的并发控制 实例:假设数据对象x的最近一次读和写的时间戳分别为tsRD(x)=4和tsWR(x)=6,对数据对象x有下列读写操作顺序: read(5,x,5), write(6,x,7), read(7,x,9), read(8,x,8), write(9,x,8) (1) read(5,x,5)操作请求被拒绝,对应的事务处理5被取消,因为ts=5<tsWR(x)=6; (2)write(6,x,7)操作请求被接受,对应的事务处理6继续执行,tsWR(x)更新为7; (3)read(7,x,9)被接受,对应的事务处理7继续执行,tsRD(x) 更新为9 ; (4)read(8,x,8)也被接受,对应的事务处理8继续执行,但是ts=8<tsRD(x)=9,所以tsRD(x)=9保持不变 ; (5) write(9,x,8) 操作请求被拒绝,对应的事务处理9被取消,因为ts=8<tsRD(x)=9。 第八章 分布式数据管理 8.2 并发控制 基于时间戳的并发控制 保守时间戳顺序:为了减少或消除事务处理的取消和重启,可使用下列保守时间戳顺序,所有的站点严格地按照时间戳顺序执行请求。每个站点有一个写队列(W-queue)和一个读队列(R-queue)。并且按照请求的时间戳排序。 (1) 如果所有写队列非空,而且每个队列的第一个写的时间戳大于ts,读请求read(T,x,ts)可以被执行;反之,该读请求在读队列中缓存。 (2) 如果所有读队列和写队列非空,而且每个队列的第一个请求的时间戳大于ts,写请求write(T,x,ts)可以被执行;反之写请求在写队列中缓存。 第八章 分布式数据管理 8.2 并发控制 乐观的并发控制 并发控制算法首先假设没有冲突,所以首先在本地尝试更新,如果没有一致性冲突就保留更新并扩散更新,这个方法有三个阶段:读、确认和写。 读阶段,在临时存储空间中读入相关数据对象并进行更新; 确认阶段,检查所有更新,确认是否违反数据库一致性。检查阶段要检查所有其他事务处理,确认自该事务处理启动以来是否有其他的事务处理对它所访问的数据对象进行了修改。如果有则该事务处理取消,否则检查通过,进入写阶段; 写阶段,把所有更新写进数据库。 乐观并发控制算法的最大优点是没有死锁,并且可以最大限度地提供并行,因为没有一个事务处理会等待。它的缺点是一旦在确认阶段不能通过检查,事务处理就要重新执行。 第八章 分布式数据管理 8.3 原子事务处理 原子事务处理的性质 : 原子性(Atomicity)。一个原子事务处理的执行必须确保是完全执行完毕或相当于完全没有执行。 一致性(Con

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档