【教学课件】第八章并发控制.ppt
《【教学课件】第八章并发控制.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第八章并发控制.ppt(49页珍藏版)》请在三一办公上搜索。
1、第八章 并发控制,8.1 并发控制概述8.2 封锁8.3 封锁协议8.4 活锁和死锁8.5 并发调度的可串行性8.6 两段锁协议8.7 封锁的粒度8.8 Oracle的并发控制8.9 小结,8.6 两段锁协议,两段锁协议的内容1.在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁2.在释放一个封锁之后,事务不再获得任何其他封锁。,两段锁协议(续),“两段”锁的含义事务分为两个阶段 第一阶段是获得封锁,也称为扩展阶段;第二阶段是释放封锁,也称为收缩阶段。,两段锁协议(续),例:事务1的封锁序列:Slock A.Slock B.Xlock C.Unlock B.Unlock A.Unlo
2、ck C;事务2的封锁序列:Slock A.Unlock A.Slock B.Xlock C.Unlock C.Unlock B;事务1遵守两段锁协议,而事务2不遵守两段协议。,两段锁协议(续),并行执行的所有事务均遵守两段锁协议,则对这些事务的所有并行调度策略都是可串行化的。所有遵守两段锁协议的事务,其并行执行的结果一定是正确的事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件可串行化的调度中,不一定所有事务都必须符合两段锁协议。,两段锁协议(续),T1Slock B读B=2Y=BXlock AA=Y+1写回A=3Unlock BUnlock A,T2Slock A 等待 等待 等待
3、 等待 等待Slock A读A=3Y=A Xlock BB=Y+1写回B=4Unlock BUnlock A,T1Slock B读B=2Y=BUnlock BXlock AA=Y+1写回A=3Unlock A,T2Slock A等待等待等待等待Slock A读A=3X=AUnlock AXlock BB=X+1写回B=4Unlock B,(a)遵守两段锁协议,(b)不遵守两段锁协议,T1Slock B读B=2Y=BUnlock BXlock AA=Y+1写回A=3Unlock A,T2Slock A读A=2X=AUnlock AXlock B等待Xlock BB=X+1写回B=3Unlock
4、B,(c)不遵守两段锁协议,两段锁协议(续),两段锁协议与防止死锁的一次封锁法一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行,因此一次封锁法遵守两段锁协议但是两段锁协议并不要求事务必须一次将所有要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁,两段锁协议(续),图8.7 遵守两段锁协议的事务发生死锁,T1Slock B读B=2Xlock A等待等待,T2Slock A读A=2Xlock A等待,两段锁协议(续),两段锁协议与三级封锁协议两类不同目的的协议两段锁协议保证并发调度的正确性三级封锁协议在不同程度上保证数据一致性遵守第三级封锁协议必然遵守两段协议
5、,第八章 并发控制,8.1 并发控制概述8.2 封锁8.3 封锁协议8.4 活锁和死锁8.5 并发调度的可串行性8.6 两段锁协议8.7 封锁的粒度8.8 Oracle的并发控制8.9 小结,8.7 封锁的粒度,8.7.1 封锁粒度8.7.2 多粒度封锁8.7.3 意向锁,8.7.1 封锁粒度,一、什么是封锁粒度二、选择封锁粒度的原则,一、什么是封锁粒度,X锁和S锁都是加在某一个数据对象上的封锁的对象:逻辑单元,物理单元 例:在关系数据库中,封锁对象:逻辑单元:属性值、属性值集合、元组、关系、索引项、整个索引、整个数据库等物理单元:页(数据页或索引页)、物理记录等,什么是封锁粒度(续),封锁对
6、象可以很大也可以很小 例:对整个数据库加锁 对某个属性值加锁封锁对象的大小称为封锁的粒度(Granularity)多粒度封锁(multiple granularity locking)在一个系统中同时支持多种封锁粒度供不同的事务选择,8.7.1 封锁粒度,一、什么是封锁粒度二、选择封锁粒度的原则,二、选择封锁粒度的原则,封锁的粒度越 大,小,系统被封锁的对象 少,多,并发度 小,高,系统开销 小,大,选择封锁粒度:考虑封锁机构和并发度两个因素对系统开销与并发度进行权衡,选择封锁粒度的原则(续),需要处理多个关系的大量元组的用户事务:以数据库为封锁单位;需要处理大量元组的用户事务:以关系为封锁单
7、元;只处理少量元组的用户事务:以元组为封锁单位,8.7 封锁的粒度,8.7.1 封锁粒度8.7.2 多粒度封锁8.7.3 意向锁,8.7.2 多粒度封锁,多粒度树以树形结构来表示多级封锁粒度根结点是整个数据库,表示最大的数据粒度叶结点表示最小的数据粒度,多粒度封锁(续),例:三级粒度树。根结点为数据库,数据库的子结点为关系,关系的子结点为元组。,多粒度封锁协议,允许多粒度树中的每个结点被独立地加锁对一个结点加锁意味着这个结点的所有后裔结点也被加以同样类型的锁在多粒度封锁中一个数据对象可能以两种方式封锁:显式封锁和隐式封锁,显式封锁和隐式封锁,显式封锁:直接加到数据对象上的封锁隐式封锁:由于其上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第八 并发 控制
链接地址:https://www.31ppt.com/p-5663098.html