Two Phase Locking 為兩階段鎖定法,在DBMS(資料庫管理系統)中
控制Transaction(交易),確保資料的一致性。
該方法會將所有在資料庫中的資料項(可以是table、column)設定為兩個狀態(S)hared lock、e(X)clusive lock
從字面上可以得知,若某資料項被某交易設為S,表示資料項仍可被其他交易鎖定
假設被設為X,就表示直到某交易釋放鎖,其他交易才能鎖定該資料項,
如果原先為S狀態,後續想要被X lock則要等待該資料項解除鎖定。
其交易的階段為
1.
成長階段(Growing Phase):交易可以獲得鎖,但無法釋放鎖。
2.
縮減階段(Shrinking Phase):交易可以釋放鎖,但無法再獲得新的鎖。
目前常見的DBMS採用嚴格兩階段鎖定,需要執行commit或是abort 進行交易管理
資料來源:
https://zhuanlan.zhihu.com/p/59535337參考[[資料庫的核心理論與實務]]書籍