**
我們都知道,事務排程一般有序列排程
和並行排程
,那首先來了解幾個概念。
併發控制:所謂併發控制,是指多使用者共享的系統中,許多使用者可能同時對同一資料進行操作。
排程:指的是事務的執行次序。
序列排程:多個事務依次序列執行,且只有當乙個事務的所有操作都執行完後才執行另乙個事務的所有操作。只要是序列排程,執行的結果都是正確的。
並行排程:利用分時
的方法同時處理多個事務。但是並行排程的排程結果可能是錯誤的,可能產生不一致的狀態,包括有:丟失修改,不可重複讀和讀髒資料。
序列排程和並行排程的區別:
其實比較明顯的是雖然序列排程能夠保證排程結果的正確性,但是卻限制了系統並行性的發揮,不能有效利用資源,但是並行排程的排程結果又可能出現錯誤,而且可能不具有序列,正是因為這樣,有乙個具有序列排程效果的並行排程方法,而兩段鎖協議就是保證並行事務可串化的方法
。
兩段鎖協議:是指所有的事務必須分兩個階段對資料項加鎖和解鎖。即事務分兩個階段
,第乙個階段是獲得封鎖
。事務可以獲得任何資料項上的任何型別的鎖,但是不能釋放;第二階段是釋放封鎖
,事務可以釋放任何資料項上的任何型別的鎖,但不能申請。
第一階段是獲得封鎖的階段,稱為擴充套件階段
:其實也就是該階段可以進入加鎖操作,在對任何資料進行讀操作之前要申請獲得s鎖
,在進行寫操作之前要申請並獲得x鎖
,加鎖不成功,則事務進入等待狀態
,直到加鎖成功才繼續執行。就是加鎖後就不能解鎖
了。
第二階段是釋放封鎖的階段,稱為收縮階段
:當事務釋放乙個封鎖後,事務進入封鎖階段,在該階段只能進行解鎖而不能再進行加鎖操作
。
這裡舉個例子說明:
事務t1遵守兩段鎖協議,其封鎖序列是:
可以證明,若併發執行的所有事務均遵守兩段鎖協議
,則對這些事務的任何併發排程策略都是可序列化
的。
最後,說一下什麼是可序列化
:多個事務的併發執行是正確的,當且僅當其結果與某一次序序列地執行它們時的結果相同,稱這種排程策略是可序列化排程。
兩段鎖協議
我們都知道,事務排程一般有序列排程和並行排程,那首先來了解幾個概念。1 併發控制 所謂併發控制,是指多使用者共享的系統中,許多使用者可能同時對同一資料進行操作。2 排程 指的是事務的執行次序。3 序列排程 多個事務依次序列執行,且只有當乙個事務的所有操作都執行完後才執行另乙個事務的所有操作。只要是序...
兩段鎖協議
在對任何資料進行讀 寫操作之前,事務首先要獲得對該資料的封鎖 在釋放乙個封鎖之後,事務不能再獲得任何其他封鎖。兩段鎖協議是指每個事務的執行可以分為兩個階段 生長階段 加鎖階段 和衰退階段 解鎖階段 加鎖階段 在該階段可以進行加鎖操作。在對任何資料進行讀操作之前要申請並獲得s鎖,在進行寫操作之前要申請...
2PL協議,兩段封鎖協議
two phase locking protocol 2pl協議,兩段封鎖協議 two phase transaction and two phase locking protocol 在乙個事務中,如果加鎖動作都在釋放鎖動作之前稱此事務為兩段事務。上述加鎖的限制稱兩段封鎖協議。兩段事務可截然為兩段...