兩段鎖協議

2021-10-11 17:38:27 字數 833 閱讀 3484

在對任何資料進行讀、寫操作之前,事務首先要獲得對該資料的封鎖

在釋放乙個封鎖之後,事務不能再獲得任何其他封鎖。

兩段鎖協議是指每個事務的執行可以分為兩個階段:生長階段(加鎖階段)和衰退階段(解鎖階段)。

加鎖階段:在該階段可以進行加鎖操作。在對任何資料進行讀操作之前要申請並獲得s鎖,在進行寫操作之前要申請並獲得x鎖。加鎖不成功,則事務進入等待狀態,直到加鎖成功才繼續執行。

解鎖階段:當事務釋放了乙個封鎖以後,事務進入解鎖階段,在該階段只能進行解鎖操作不能再進行加鎖操作。

兩段封鎖法可以這樣來實現:事務開始後就處於加鎖階段,一直到執行rollback和commit之前都是加鎖階段。rollback和commit使事務進入解鎖階段,即在rollback和commit模組中dbms釋放所有封鎖。

可以證明,若併發執行的所有事務均遵守兩段鎖協議,則對這些事務的任何併發排程策略都是可序列化的。

2pl定義:1.所有的讀寫操作之前均需加鎖;2.解鎖操作後不允許再出現加鎖操作;

s鎖:加s鎖後其他事務可讀,不可寫,直至加鎖事務結束;

x鎖:加x鎖後其他事務均不可以讀或寫,直至事務結束;

事務執行的過程分為兩個階段,一是獲得封鎖階段,二是釋放封鎖階段;2pl可能產生死鎖;

2pl可以防止讀髒資料、丟失修改等;是事務可序列化的必要條件,不是充分條件;

ps:要注意兩段鎖協議和防止死鎖的一次封鎖法的異同之處。一次封鎖法要求每個事務必須一次將所有要使用的資料全部加鎖,否則就不能繼續執行,因此一次封鎖法遵守兩段鎖協議;但是兩段鎖協議並不要求事務必須一次將所有要使用的資料全部加鎖,因此遵守兩段鎖協議的事務可能發生死鎖。

兩段鎖協議

我們都知道,事務排程一般有序列排程和並行排程,那首先來了解幾個概念。1 併發控制 所謂併發控制,是指多使用者共享的系統中,許多使用者可能同時對同一資料進行操作。2 排程 指的是事務的執行次序。3 序列排程 多個事務依次序列執行,且只有當乙個事務的所有操作都執行完後才執行另乙個事務的所有操作。只要是序...

兩段鎖協議

我們都知道,事務排程一般有序列排程和並行排程,那首先來了解幾個概念。併發控制 所謂併發控制,是指多使用者共享的系統中,許多使用者可能同時對同一資料進行操作。排程 指的是事務的執行次序。序列排程 多個事務依次序列執行,且只有當乙個事務的所有操作都執行完後才執行另乙個事務的所有操作。只要是序列排程,執行...

2PL協議,兩段封鎖協議

two phase locking protocol 2pl協議,兩段封鎖協議 two phase transaction and two phase locking protocol 在乙個事務中,如果加鎖動作都在釋放鎖動作之前稱此事務為兩段事務。上述加鎖的限制稱兩段封鎖協議。兩段事務可截然為兩段...