第六节 两段锁协议
两段锁协议的内容: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不遵守两段协议。并行执行的所有事务均遵守两段锁协议,则对这些事
务的所有并行调度策略都是可串行化的。所有遵守两段锁协议的事务,其并行执行的结果一定是正确的,事
务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件,可串行化的调度中,不一定所有事务都必
须符合两段锁协议。
|