分布式环境下的并发控制与封锁.ppt

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

分布式环境下的并发控制与封锁 姓名: 专业: 学号: 并发控制概念 基于封锁的并发控制方法概述 1 2 主 要 内 容 1 .1并发控制的概念 通常,数据库总有若干个事务在运行,这些事务可能并发地存取相同的数据,称为事务的并发操作。 当数据库中有多个事务并发执行时,系统必须对并发事务之间的相互作用加以控制,这是通过并发控制机制来实现的。 并发控制就是负责正确协调并发事务的执行,保证这种并发的存取操作不至于破坏数据库的完整性和一致性,确保并发执行的多个事务能够正确地运行并获得正确的结果。 分布式数据库中的并发控制解决多个分布式事务对数据并发执行的正确性,保证数据库的完整性和一致性。比集中式并发控制更复杂。 1 .1 并发控制的概念 集中式DB环境 T1 T2 … Tn DB (一致性 约束) 1 .1并发控制的概念 分布式DB环境 X Y Z T1 T2 1 .1并发控制的概念 并发执行 多处理器 1 .1并发控制的概念 非并发执行 单处理器 1 .1并发控制的概念 并发控制问题之一:丢失更新 注:其中FIND表示从数据库中读值,UPDATE表示把值写回到数据库 T1T2,结果140,T2T1,结果170, 得到结果是200,显然是不对的,T1在t7丢失更新操作。 1 .1并发控制的概念 并发控制问题之二:不一致分析 注:在时间t5事务T2仍认为x的值是100 1 .1并发控制的概念 并发控制问题之三:读脏数据 注: 事务T2依赖于事务T1的未完成更新 1 .2并发控制机制的常用方法及其分类 保证只产生可串行化调度的机制 并发控制机制分类 按分配模式(数据方式) 完全复制的DB 部分复制DB或分片的DB 按网络类型(通信方式) 广播能力的 星型网, 环形网 同步化原则 建立在相互排斥地访问共享数据基础上的算法 通过一些准则(协议)对事务进行排序的算法 悲观并发控制法(事务是相互冲突的),乐观并发控制法(没有太多的事务相互冲突) 并发控制算法分类 1 .2 并发控制机制的常用方法及其分类 封锁法 事务的同步化是通过对数据库的片断或者数据项进行物理或逻辑封锁来实现的 封锁对象的大小通常称为封锁粒度 封锁方法的类型可以根据在哪里进行封锁来进一步细分 封锁法分类 集中式封锁方法 一个站点被指定为主站点,存放对整个数据库的封锁表,并且负责对全系统事务进行封锁 主副本封锁法:主副本所在站点封锁 分布式封锁法:网络中的站点共享锁的管理 2 基于封锁的并发控制方法概述 基本思想和概念 基本思想 事务访问数据项之前要对该数据项封锁,如果已经被其他事务锁定,就要等待,直到那个事务释放该锁为止 锁的粒度是锁定数据项的范围 一个数据项可以是下列的任何一种: 数据库记录中的一个字段值 一条数据库记录 一个磁盘块(页面) 一个完整的文件 整个数据库 2 基于封锁的并发控制方法概述 基本思想和概念 粒度对并发控制的影响 大多数DBMS缺省设置为记录锁或页面锁 粒度小,并发度高,锁开销大 数据项比较多,锁也多,解锁和封锁操作多,锁表存储空间大(如存储读写时间戳) 粒度大,并发度低,锁开销小 如果是磁盘块,封锁磁盘块中的一条记录B的事务T必须封锁整个磁盘块 而另外一个事务S如果要封锁记录C,而C也在磁盘块中,由于磁盘块正在封锁中,S只能等待 如果是封锁粒度是一条记录的话,就不用等待了 2 基于封锁的并发控制方法概述 基本思想和概念 如何来确定粒度 取决于参与事务的类型 如果参与事务都访问少量的记录,那么选择一个记录作为粒度较好 如果参与事务都访问同一文件中大量的记录,则最好采用块或者文件作为粒度 2 基于封锁的并发控制方法概述 基本思想和概念 锁的类型: 共享锁:Share锁,S锁或者读锁 排它锁:eXclusive锁,X锁,拒绝锁或写锁。 更新锁:Update锁,U锁 锁的选择: 数据项既可以读也可以写.则要用X锁 如果数据项只可以读.则要用 S锁. 2 基于封锁的并发控制方法概述 基本思想和概念 锁的操作 Read_lock(x):读锁 Write_lock(x):写锁 unlock(x):解锁 数据项的状态 read_locked: 读锁 Write_locked:写锁 具体操作方法 在系统锁表中记录关于锁的信息 锁表中每条记录有四个字段:数据项名称,锁状态,读锁的数目,正在封锁该数据项的事务 锁状态是上面两种,没有被封锁的数据项,在系统表中没有记录 2 基于封锁的并发控制方法概述 封锁准则和锁的转换 封锁准则: 事务T在执行任何read_item(x)操作之前,必须先执行read_lock(x)或者write_lock(x)操作 事务T在执行任何write_item(x)操作之前,必须先执行write_lock(x)操作

文档评论(0)

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

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

1亿VIP精品文档

相关文档