跳至內容

兩階段鎖

維基百科,自由的百科全書

數據庫事務處理中,兩階段鎖 (Two-phase locking,2PL) 是一種保證衝突可串行化的悲觀並發控制方法。[1][2]它也是數據庫事務調度 (歷史記錄) 的結果集的名稱。該協議使用事務對數據應用的,這可能會阻止 (解釋為停止信號) 其他事務在事務生命周期內訪問同一數據。

根據兩階段鎖(2PL)協議,鎖的應用和解除分為兩個階段:

  1. 擴展階段:在此階段中,鎖被獲取,且不釋放任何鎖。
  2. 收縮階段:在此階段中,鎖被釋放,且不再獲取任何鎖。

基本協議中使用兩種類型的鎖:共享鎖獨占鎖。對基本協議的改進可能會使用更多類型的鎖。由於使用了阻塞進程的鎖,2PL、S2PL 和 SS2PL 可能會因兩個或多個事務的相互阻塞而導致死鎖

參考文獻

[編輯]
  1. ^ Philip A. Bernstein, Vassos Hadzilacos, Nathan Goodman (1987): Concurrency Control and Recovery in Database Systems頁面存檔備份,存於網際網路檔案館), Addison Wesley Publishing Company, ISBN 0-201-10715-5
  2. ^ Gerhard Weikum, Gottfried Vossen (2001): Transactional Information Systems頁面存檔備份,存於網際網路檔案館), Elsevier, ISBN 1-55860-508-8