兩階段封鎖

兩階段封鎖是在對任何數據進行讀、寫操作之前,事務首先要獲得對該數據的封鎖

兩段鎖協定的內容

1.

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

“兩段”鎖的含義

事務分為兩個階段:

第一階段是獲得封鎖,也稱為擴展階段;

第二階段是釋放封鎖,也稱為收縮階段。

例:

事務1的封鎖序列:

Slock A ... Slock B ... Xlock C ... Unlock C ... Unlock B ... Unlock A;

事務2的封鎖序列:

Slock A ... Unlock A ... Slock B ... Xlock C ... Unlock C ... Unlock B;

事務1遵守兩段鎖協定,而事務2不遵守兩段協定。

並行執行的所有事務均遵守兩段鎖協定,則對這些事務的所有並行調度策略都是可串

行化的。

所有遵守兩段鎖協定的事務,其並行執行的結果一定是正確的。事務遵守兩段鎖協定

是可串列化調度的充分條件,而不是必要條件。可串列化的調度中,不一定所有事務

都必須符合兩段鎖協定。

兩段鎖協定與防止死鎖的一次封鎖法

一次封鎖法要求每個事務必須一次將所有要使用的數據全部加鎖,否則就不能繼續執

行,因此一次封鎖法遵守兩段鎖協定,但是兩段鎖協定並不要求事務必須一次將所有

要使用的數據全部加鎖,因此遵守兩段鎖協定的事務可能發生死鎖。

兩段鎖協定與三級封鎖協定

兩類不同目的的協定

兩段鎖協定:保證並發調度的正確性

三級封鎖協定:在不同程度上保證數據一致性

遵守第三級封鎖協定必然遵守兩段協定

相關詞條

熱門詞條

聯絡我們