事务处理-锁 提纲 并发控制 基于锁的协议 两段锁协议 多粒度 封锁带来的问题 恢复 故障 日志 恢复 封锁的定义 封锁就是一个事务对某个数据对象加锁,取得对它一定的控制,限制其它事务对该数据对象使用 要访问一个数据项R,事务Ti必须先申请对R的封锁,如果R已经被事务Tj加了不相容的锁,则Ti需要等待,直至Tj释放它的封锁 封锁的类型 排它锁(X锁,eXclusive lock) 事务T对数据对象R加上X锁,则其它事务对R的任何封锁请求都不能成功,直至T释放R上的X锁;又称写锁 申请对R的排它锁:lock-X(R) 共享锁(S锁,Share lock) 事务T对数据对象R加上S锁,则其它事务对R的X锁请求不能成功,而对R的S锁请求可以成功;又称读锁 申请对R的共享锁: lock-S(R) 封锁的相容矩阵 两阶段封锁协议 Two-Phase Locking Protocol 两阶段封锁协议内容 增长阶段(Growing Phase) 事务可以获得锁,但不能释放锁 缩减阶段(Shrinking Phase) 事务可以释放锁,但不能获得锁 示例 lock-S(A)…lock-S(B)…lock-X(C)…unlock(A)… unlock(C)…unlock(B)遵从两段锁协议 lock-S(A)…unlock-S(A)…lock-S(B)…lock-X(C)… unlock(C)…

文档评论(0)

1亿VIP精品文档

相关文档