兩階段鎖
在數據庫和事務處理中,兩階段鎖 (Two-phase locking,2PL) 是一種保證衝突可串行化的悲觀並發控制方法。[1][2]它也是數據庫事務調度 (歷史記錄) 的結果集的名稱。該協議使用事務對數據應用的鎖,這可能會阻止 (解釋為停止信號) 其他事務在事務生命周期內訪問同一數據。
根據兩階段鎖(2PL)協議,鎖的應用和解除分為兩個階段:
- 擴展階段:在此階段中,鎖被獲取,且不釋放任何鎖。
- 收縮階段:在此階段中,鎖被釋放,且不再獲取任何鎖。
基本協議中使用兩種類型的鎖:共享鎖和獨佔鎖。對基本協議的改進可能會使用更多類型的鎖。由於使用了阻塞進程的鎖,2PL、S2PL 和 SS2PL 可能會因兩個或多個事務的相互阻塞而導致死鎖。
參考文獻
- ^ Philip A. Bernstein, Vassos Hadzilacos, Nathan Goodman (1987): Concurrency Control and Recovery in Database Systems (頁面存檔備份,存於互聯網檔案館), Addison Wesley Publishing Company, ISBN 0-201-10715-5
- ^ Gerhard Weikum, Gottfried Vossen (2001): Transactional Information Systems (頁面存檔備份,存於互聯網檔案館), Elsevier, ISBN 1-55860-508-8