事务调度的可串行性.ppt

上传人:xt****7 文档编号:5163061 上传时间:2020-01-22 格式:PPT 页数:13 大小:317.81KB
返回 下载 相关 举报
事务调度的可串行性.ppt_第1页
第1页 / 共13页
事务调度的可串行性.ppt_第2页
第2页 / 共13页
事务调度的可串行性.ppt_第3页
第3页 / 共13页
点击查看更多>>
资源描述
8 5事务调度的可串行性 引言DBMS需对多个并发事务进行运行调度能将所有事务串行起来的调度策略不会破坏数据库的不一致性 故而总是正确的概念可串行化的调度 多个事务的并发执行是正确的 当且仅当其结果与按某一次序串行地执行它们时的结果相同可串行性是并发事务操作是否正确的判别准则 事务调度的可串行性 为了保证并发操作的正确性 DBMS的并发控制机制必须提供一定的手段来保证调度是可串行化的保证事务调度可串行性的策略事务排它式执行 资源无法充分共享 两段锁 Two PhaseLocking 2PL 协议其它 如时间戳 TimeStamp 方法等DBMS普通采用封锁方法实现并发操作调度的可串行性 并发事务的不同调度策略 T1 T2 T1 T2 T1 T2 SlockB Y B 2 UnlockB XlockA A Y 1 写回A 3 UnlockA X A 3 UnlockA 写回B 4 UnlockB SlockA XlockB B X 1 a串行调度 c不可串行化的调度 结果与a b不同 错误调度 SlockB Y B 2 UnlockB XlockA A Y 1 写回A 3 UnlockA X A 2 UnlockA 写回B 3 UnlockB SlockA XlockB B X 1 SlockB Y B 2 UnlockB XlockA A Y 1 写回A 3 UnlockA SlockA X A 3 UnlockA 写回B 4 UnlockB XlockB B X 1 等待 等待 等待 T1 T2 SlockB Y B 3 UnlockB XlockA A Y 1 写回A 4 UnlockA X A 2 UnlockA 写回B 3 UnlockB SlockA XlockB B X 1 d可串行化的调度 结果与a相同 正确调度 T1 读B A B 1 写回A T2 读A B A 1 写回B A B初值均为2 b串行调度 8 6两段锁协议 概念 事务对数据项的加锁和解锁分为两个阶段完成获得封锁 在对数据读写之前首先申请并获得封锁 释放封锁 在释放一个封锁后不再申请和获得任何其他封锁如遵守两段锁协议的事务SlockA SlockB XlockC UnlockB UnlockA UnlockC如不遵守两段锁协议的事务SlockA UnlockA SlockB XlockC UnlockC UnlockB 两段锁协议的性质 两段锁协议是可串行化调度的充分条件 但不是必要条件若并发事务都遵守两段锁协议 则对这些事务的任何并发调度策略都是可串行化的 若对并发事务的一个调度是可串行化的 不一定所有事务都符合两段锁协议两段锁协议可以保证并发事务的正确性 但可能发生死锁 T1 T2 T1 T2 T1 T2 SlockB 读B 2 Y B A Y 1 写回A 3 UnlockB UnlockA SlockA 等待 等待 读A 3 UnlockB UnlockA 等待 等待 Y A 写回B 4 SlockB 读B 2 Y B XlockA A Y 1 SlockA 等待 等待 读A 3 XlockB B X 1 等待 等待 X A UnlockA UnlockB 写回A 3 UnlockA SlockB 读B 2 XlockA SlockA 等待 XlockB 等待 可串行调度遵守两段锁协议 可串行调度不遵守两段锁协议 遵守两段锁协议的事务发生死锁 关于两段锁协议 XlockA 等待 XlockB B Y 1 写回B 4 UnlockB 读A 2 等待 8 7封锁的粒度 封锁的粒度即封锁对象的大小 如逻辑单元 属性 元组 关系 索引 数据库等物理单元 页 块等封锁粒度对并发控制的影响封锁粒度越大 并发度越小 系统封锁开销越小 封锁粒度越小 并发度越高 系统封锁开销越大 封锁粒度 修改属性 修改关系 如何选择封锁粒度 多粒度封锁 定义 一个系统中同时支持多种封锁粒度供不同事务选择的方法术语 结点 上层结点 后裔结点多粒度树显式封锁 应事务要求直接加锁 隐式封锁 由于上层结点加锁而加锁 多粒度封锁的问题 操作办法对某个数据对象加锁 系统要检查该对象上有无显式封锁与之冲突 还要检查所有上级结点 看本事务的显式封锁是否与该对象上的隐式封锁冲突 还有检查其所有下级结点 看上面的显式封锁是否与本事务的隐式封锁冲突问题 检查效率低 意向锁 概念 如果对以一个结点加意向锁 则说明该结点的下层结点正在被加锁 对任一结点加锁时 必须先对它的上层结点加意向锁三种意向锁意向共享锁 IS 意向排它锁 IX 共享意向排它锁 SIX S IX对某个表加SIX 表示该事务要读整个表 同时会更新个别元组 扩充的封锁相容矩阵 锁的强度的偏序关系 X SIX S IX IS 具有意向锁的多粒度封锁方法的特点 任意事务要对一个数据对象加锁 必须先对其上层结点加意向锁 申请封锁时按自上而下的次序进行 释放封锁时按自下而上的次序进行该方法提高了系统的并发度 减少了加锁和解锁的开销 习题 P28013题
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!