兩階段鎖:我已經修改的不允許別惹修改,我准備修改的我會爭取修改。
兩階段鎖:慢性貪婪鎖算法;可能發生死鎖;
一次封鎖法:急性貪婪鎖算法:不可能發生死鎖。
兩段鎖協議和防止死鎖的一次封鎖法的異同之處。
一次封鎖法要求每個事務必須一次將所有要使用的數據全部加鎖,否則就不能繼續執行,因此一次封鎖法遵守兩段鎖協議;
但是兩段鎖協議並不要求事務必須一次將所有要使用的數據全部加鎖,因此遵守兩段鎖協議的事務可能發生死鎖。
可以證明,若並發執行的所有事務均遵守兩段鎖協議,則對這些事務的任何並發調度策略都是可串行化的。
需要說明的是,事務遵守兩段鎖協議是可串行化調度的充分條件,而不是必要條件。也就是說,若並發事務都遵守兩段鎖協議,則對這些事務的任何並發調度策略都是可串行化的;若對並發事務的一個調度是可串行化的,不一定所有事務都符合兩段鎖協議。
兩階段封鎖協議實現了事務集的串行化調度,但同時,一個事務的失敗可能會引起一連串事務的回滾。為避免這種情況的發生,我們需要進一步加強對兩階段封鎖協議的控制,這就是:嚴格兩階段封鎖協議和強兩階段封鎖協議。
http://qingtian886.blog.sohu.com/162663696.html
