《高级数据库中的并发控制问题.ppt》由会员分享,可在线阅读,更多相关《高级数据库中的并发控制问题.ppt(19页珍藏版)》请在金锄头文库上搜索。
1、高级数据库中的并发控制问题传 统 的 并 发 控 制 方 法基本2PL协议如果一个事务所有的封锁操作(读写)都在第一个解锁操作之前,那么它就遵守2PL协议事务的执行中Lock的管理分成两个阶段上升阶段(成长阶段):获取Lock阶段(只能获取锁)收缩阶段(衰退阶段):释放Lock阶段(只能解锁)封锁点是指事务获得了它所要求的所有锁,并且还没有开始释放任何锁的时刻如果允许锁的转换,锁的升级必须在成长阶段进行,锁的降级必须在锁的衰退阶段进行。 2PL可以保证事务执行的可串行性.2PL2PL协议(两阶段封锁协议)协议(两阶段封锁协议)开始加锁点结束事务执行过程获得锁释放锁两阶段封锁协议基本基本2PL2
2、PL协议协议基本2PL协议实现的难点锁管理器必须要知道事务的锁点位置级联撤销(cascading aborts)如果事务在开始释放Lock后又Abort时, 将引起级联撤销(cascading aborts)(其他访问这个数据项的事务也被撤销)保守2PL要求事务在开始执行之前就持有所有它要访问的数据项上的锁(可避免死锁)事务要预先声明它的读集和写集(很难做到,所以很少用)大多数2PL调度器实现的是严格2PL(S2PL)事务在提交或者撤销之前,绝对不释放任何一个写锁事务结束时(提交或者撤销),同时释放所有的锁开始结束事务执行阶段获得锁释放锁 严格2PL(Strict Two-phase Lock
3、ing)协议数据项使用严格2PL事务T在提交或撤销之前,不能释放任何一个锁(写锁或者读锁),因此它比基本2PL更容易实现 总之,传统的并发控制方法是以等待和放弃为基本手段,目的是实现事务的可串行化运行。高 级 数 据 库 系 统 对 并 发 控 制 的 新 需 求适合适合长事事务的并的并发控制方法控制方法 对适合 于长 事务并 发控 制方法 的研究分 为 两大流派: 其 一是依 然 以可 串行 性 为判 断事务 正确运行 的标 准, 同时利 用事 务的语 义, 扩 展 可串行化 技术,达 到提 高 系统 并 发度 的 目的。如利它锁其 二 为突破 可 串行性标 准 的限制,充分 利用应 用层语
4、 义 和 一致 性谓 词 ,构 造非 串行化 的,维护 数 据 库 状 态 一 致 的 事 务 经 历 。如NT/PV模型利 它 锁 协 议 赠锁操作的规则如下 :( 1 )事 务 只 能 对 它 们 当 前 上 锁 的 数 据 项 实 行 赠 锁 操 作 ;( 2 ) 事务 不能存 取任何 已被 自己赠 锁后 的数 据项利它锁 方法 虽不能完 全解 决长事务 并发控 制的问题 , 但 可 明显缓解 事务 的长期等 待。基 于 NT P V 模 型 的 井 发 控 制 方 法嵌 套 事务 ( N e s t T r a n s a c t i o n )谓词 ( P r e d i c a t
5、 e s ) 和 多版 本( Mu l t i p l e V e r s i o n )基于 N T P V 模 型 的 并 发 控制 方 法 被 认 为 是 一 种 适 于 长事 务 管 理 ,突 破 可 串 行 化 限 制 ,具 有 前 途 的 并 发 控 制 方 法 !三个概念嵌 套 事 务 是 指 在 NT P V 模 型 中 每 个 事 务 都 可 看 作 由若 干 子 事 务 组 成 ,每 个 子 事 务 又 是 一 个 事 务 . 如 此形成 事务的嵌 套树 , 直 至用树 的叶结点代表 数据库操 作谓词 用来 表示 数据库 的一致性 限制多 版本允许 一数据项 同时存 在不 同时期 的多个 版本值 这三个 概念 的存 在使 N T P V 模型适 于描述 划分长事务 ,有利 于提 高系 统并 发度!利它锁 方 法和基 于 NT/PV 的并发控制方法 ,代表了两 种不同的工作成果。前者试图改 进传 统 方法以适应 数据 库应 用新需 求;而后 者则 尝试 突破传 统方 法 的局限 ,充分利用应 用层语义,构造基于新的正确性标准的事务经 历。利它锁 和N T/P V比较谢谢