收藏 分享(赏)

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

上传人:天天快乐 文档编号:1118256 上传时间:2018-06-13 格式:PPT 页数:27 大小:161.50KB
下载 相关 举报
分布式环境下的并发控制与封锁.ppt_第1页
第1页 / 共27页
分布式环境下的并发控制与封锁.ppt_第2页
第2页 / 共27页
分布式环境下的并发控制与封锁.ppt_第3页
第3页 / 共27页
分布式环境下的并发控制与封锁.ppt_第4页
第4页 / 共27页
分布式环境下的并发控制与封锁.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、分布式环境下的并发控制与封锁,姓名:专业:学号:,并发控制概念,基于封锁的并发控制方法概述,1,2,主 要 内 容,1 .1并发控制的概念,通常,数据库总有若干个事务在运行,这些事务可能并发地存取相同的数据,称为事务的并发操作。当数据库中有多个事务并发执行时,系统必须对并发事务之间的相互作用加以控制,这是通过并发控制机制来实现的。并发控制就是负责正确协调并发事务的执行,保证这种并发的存取操作不至于破坏数据库的完整性和一致性,确保并发执行的多个事务能够正确地运行并获得正确的结果。分布式数据库中的并发控制解决多个分布式事务对数据并发执行的正确性,保证数据库的完整性和一致性。比集中式并发控制更复杂。

2、,1 .1 并发控制的概念,集中式DB环境,T1T2Tn,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并发控制的概念,并发控制问题之三:读脏数

3、据,注: 事务T2依赖于事务T1的未完成更新,1 .2并发控制机制的常用方法及其分类,保证只产生可串行化调度的机制并发控制机制分类按分配模式(数据方式)完全复制的DB部分复制DB或分片的DB按网络类型(通信方式)广播能力的星型网, 环形网同步化原则建立在相互排斥地访问共享数据基础上的算法通过一些准则(协议)对事务进行排序的算法悲观并发控制法(事务是相互冲突的),乐观并发控制法(没有太多的事务相互冲突),并发控制算法分类,1 .2 并发控制机制的常用方法及其分类,封锁法事务的同步化是通过对数据库的片断或者数据项进行物理或逻辑封锁来实现的封锁对象的大小通常称为封锁粒度封锁方法的类型可以根据在哪里进

4、行封锁来进一步细分封锁法分类集中式封锁方法一个站点被指定为主站点,存放对整个数据库的封锁表,并且负责对全系统事务进行封锁主副本封锁法:主副本所在站点封锁分布式封锁法:网络中的站点共享锁的管理,2 基于封锁的并发控制方法概述,基本思想和概念,基本思想事务访问数据项之前要对该数据项封锁,如果已经被其他事务锁定,就要等待,直到那个事务释放该锁为止锁的粒度是锁定数据项的范围一个数据项可以是下列的任何一种:数据库记录中的一个字段值一条数据库记录一个磁盘块(页面)一个完整的文件整个数据库,2 基于封锁的并发控制方法概述,基本思想和概念,粒度对并发控制的影响大多数DBMS缺省设置为记录锁或页面锁粒度小,并发

5、度高,锁开销大数据项比较多,锁也多,解锁和封锁操作多,锁表存储空间大(如存储读写时间戳)粒度大,并发度低,锁开销小如果是磁盘块,封锁磁盘块中的一条记录B的事务T必须封锁整个磁盘块而另外一个事务S如果要封锁记录C,而C也在磁盘块中,由于磁盘块正在封锁中,S只能等待如果是封锁粒度是一条记录的话,就不用等待了,2 基于封锁的并发控制方法概述,基本思想和概念,如何来确定粒度取决于参与事务的类型如果参与事务都访问少量的记录,那么选择一个记录作为粒度较好如果参与事务都访问同一文件中大量的记录,则最好采用块或者文件作为粒度,2 基于封锁的并发控制方法概述,基本思想和概念,锁的类型:共享锁:Share锁,S锁

6、或者读锁排它锁:eXclusive锁,X锁,拒绝锁或写锁。更新锁:Update锁,U锁锁的选择:数据项既可以读也可以写.则要用X锁如果数据项只可以读.则要用 S锁.,2 基于封锁的并发控制方法概述,基本思想和概念,锁的操作Read_lock(x):读锁Write_lock(x):写锁unlock(x):解锁数据项的状态read_locked: 读锁Write_locked:写锁具体操作方法在系统锁表中记录关于锁的信息锁表中每条记录有四个字段:锁状态是上面两种,没有被封锁的数据项,在系统表中没有记录,2 基于封锁的并发控制方法概述,封锁准则和锁的转换,封锁准则:事务T在执行任何read_item

7、(x)操作之前,必须先执行read_lock(x)或者write_lock(x)操作事务T在执行任何write_item(x)操作之前,必须先执行write_lock(x)操作如果事务T执行read_lock(x)操作,数据项x必须没有加锁或者已经加了读锁,否则事务T的这个操作不能进行如果事务T执行write_lock(x)操作,数据项x必须没有加锁,否则事务T的这个操作不能进行,2 基于封锁的并发控制方法概述,封锁准则和锁的转换,封锁准则:事务T在完成所有read_item(x)和write_item(x)操作之后,必须执行unlock(x)操作如果事务T已经持有数据项x上的一个读锁或者一个

8、写锁,那么它不能再执行read_lock(x)操作如果事务T已经持有数据项x上的一个读锁或者一个写锁,那么它不能再执行write_lock(x)操作如果事务T没有持有数据项x上的一个读锁或者一个写锁,那么它不能执行unlock(x)操作,2 基于封锁的并发控制方法概述,封锁准则和锁的转换,锁的转换1. 特定条件下,一个已经在数据项x上持有锁的事务T ,允许将某种封锁状态转换为另外一种封锁状态2. 比如,一个事务先执行了read_lock(x)操作,然后他可以通过执行write_lock(x)操作来升级该锁3. 同样,一个事务先执行了write_lock(x) 操作,然后他可以通过执行read_

9、lock(x) 操作来降级该锁,2 基于封锁的并发控制方法概述,分布式数据库基本封锁算法,1. 简单的分布式封锁方法类似集中式,将同一数据的全部副本封锁,然后更新,之后解除全部封锁缺点是各站点间进行相当大的数据传输,如果有N个站点,就有N个请求封锁的消息N个封锁授权的消息N个更新数据的消息N个更新执行了的消息N个解除封锁的消息,2 基于封锁的并发控制方法概述,分布式数据库基本封锁算法,2. 主站点封锁法定义一个站点为主站点,负责系统全部封锁管理所有站点都向主站点提出封锁和解锁请求,由它去处理缺点有:所有封锁请求都送往单个站点,容易由于超负荷造成“瓶颈”主站点故障会使系统瘫痪,封锁消息都在这里,

10、制约了系统可用性和可靠性,2 基于封锁的并发控制方法概述,分布式数据库基本封锁算法,3. 主副本封锁法不指定主站点,指定数据项的主副本事务对某个数据项进行操作时,先对其主副本进行封锁,再进行操作主副本封锁,意味着所有的副本都被封锁主副本按使用情况,尽量就近分布可减少站点的负荷,使得各站点比较均衡可减少传输量,2 基于封锁的并发控制方法概述,4. 快照方法 快照方法类似于视图的一种导出关系,但又与视图不同。它是实际数据的暂时凝聚,是数据库的一种存储方式。 快照方法不考虑数据的复制,只考虑每一数据的“主副本”和定义在这些“主副本”上的任意多个快照。快照可以定义为一个或多个“主副本”的部分拷贝,也可以定义为某个或某些“主副本”的全拷贝。,分布式数据库基本封锁算法,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报