什麼是兩階段鎖定(2PL)
每筆交易有加鎖與解鎖兩個階段,一旦開始解鎖就不再加新鎖的並行控制方式。可保證可序列化,但仍可能發生死結。
日文名稱: 2相ロック
「兩階段鎖定(2PL)」出現在1領域的1道練習題中(資料庫基礎等)。
這個名詞所屬的領域: 資料庫基礎
每筆交易有加鎖與解鎖兩個階段,一旦開始解鎖就不再加新鎖的並行控制方式。可保證可序列化,但仍可能發生死結。
日文名稱: 2相ロック
「兩階段鎖定(2PL)」出現在1領域的1道練習題中(資料庫基礎等)。
這個名詞所屬的領域: 資料庫基礎
正確答案:C. 每筆交易只要解除了任何一個鎖,之後就不再加新的鎖。藉此保證即使同時執行,結果也與依序執行時相同,但仍可能發生死結
在兩階段鎖定(2PL)中,每筆交易有依序取得所需鎖的階段(成長階段)與解除鎖的階段(縮減階段)兩個階段,一旦開始解除鎖,就不再加新的鎖。只要所有交易都遵守這項規則,就能保證同時執行的結果與依某種順序逐一執行交易時相同(可序列化)。不過,它無法防止兩筆交易互相等待對方解鎖的死結,因此DBMS會偵測死結,並以回復其中一筆交易等方式處理。實務上常用直到提交為止都不解除排他鎖的嚴格兩階段鎖定,它也能防止其他交易讀取尚未提交的資料。
在兩階段鎖定(2PL)中,每筆交易有依序取得所需鎖的階段(成長階段)與解除鎖的階段(縮減階段)兩個階段,一旦開始解除鎖,就不再加新的鎖。
關於交易的並行控制所使用的兩階段鎖定(2PL),下列敘述何者正確?