下载后可任意编辑(转)两阶段封锁协议2024-10-23 14:04一、两段锁协议的内容 1
在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁 2
在释放一个封锁之后,事务不再获得任何其他封锁
“两段”锁的含义 事务分为两个阶段: 第一阶段是获得封锁,也称为扩展阶段; 第二阶段是释放封锁,也称为收缩阶段
例: 事务 1 的封锁序列: Slock A
Slock B
Xlock C
Unlock B
Unlock A
Unlock C; 事务 2 的封锁序列: Slock A
Unlock A
Slock B
Xlock C
Unlock C
Unlock B; 事务 1 遵守两段锁协议,而事务 2 不遵守两段协议
并行执行的所有事务均遵守两段锁协议,则对这些事务的所有并行调度策略都是可串 行化的
所有遵守两段锁协议的事务,其并行执行的结果一定是正确的
事务遵守两段锁协议 是可串行化调度的充分条件,而不是必要条件
可串行化的调度中,不一定所有事务 都必须符合两段锁协议
二、两段锁协议与防止死锁的一次封锁法 一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执 行,因此一次封锁法遵守两段锁协议,但是两段锁协议并不要求事务必须一次将所有 要使用的数据全部加锁,因此遵守两段锁协议的事务可能发生死锁
三、两段锁协议与三级封锁协议 两类不同目的的协议 两段锁协议:保证并发调度的正确性 三级封锁协议:在不同程度上保证数据一致性 遵守第三级封锁协议必定遵守两段协议转自:http://dept
cn/yxdh/computer/sjk/htm/8
htm(另外参考 http://blog
chinaunix
net/u2/70714/showar