11月 19, 2010

證明 2PL 保證可序列化性質

pf:
(若 p 則 q ≡ 若 ~q 則 ~p )
使用反證法,假設排程可序列化。
表示存在一組 cycle (T1 -> T2 ->...-> Tn -> T1)
在上式中表示,當 T1 完成工作後,會進行 Unlock 動作放出資源;
而 T2 要開始交易前,會進行 Lock 動作鎖住資源。因此可以條列成

---
T1 Unlock 之後,T2 進行 Lock (即 Unlock 1 -> Lock 2)
T2 Unlock 之後,T3 進行 Lock (即 Unlock 2 -> Lock 3)
...
Tn Unlock 之後,T1 進行 Lock (即 Unlock n -> Lock 1)
---

為了達成 2PL,所有交易的 Lock 都要在 Unlock 之前,即 Lock(x) -> Unlock(x)。
但是在上式中,可以發現 Unlock 1 發生在最開頭,而 Lock 1 發生在最後面。
此點無法滿足 2PL。

沒有留言:

張貼留言