並行控制(concurrency control)

 參照

四、
(一)並行控制(concurrency control)是確保及時糾正由並行操作導致的錯誤的一種機制。以「封鎖」、「時間戳」、「樂觀並行控制」和「悲觀並行控制」預防下列並行執行問題:
   1.「遺失更新問題」(Lost Update Problem) 。
   2.「暫時更新問題」(Temporary Update Problem)。
   3.「錯誤加總問題」(Incorrect Summary Problem) 。
(二)鎖定(locking)
   為利用交易對於要存取的資料先進行鎖定,以避免交易之間彼此產生衝突,達到交易的「並行控制」。如果該資料已經被其他交易鎖定時,則需要等待,直到該資料
已經被其他交易「解除鎖定」(Unlock) 為止。分為下列三種:
   1.二位元鎖定 (Binary Locks)
    包括「鎖定」(Lock) 和「解除鎖定」(Unlock)。每個交易在存取資料之前,必須對資料先申請「鎖定」,如果該資料已經被其他交易鎖定便需要等待,直到被「解除鎖定」。
   2.共享 / 互斥鎖定 (Shared / Exclusive Locks)
    也稱為讀取 / 寫入鎖定(Read / Write Locks)。包括「讀取鎖定」(Read Lock)、「寫入鎖定」(Write Lock) 和「解除鎖定」(Unlock) 。一旦交易讀取或寫入資料完畢之後,均可以使用「解除鎖定」,移除對於資料的「讀取鎖定」或「寫入鎖定」。
   3.兩階段鎖定法 (Two Phase Locking)
    要求每個交易都必須分別在兩個不同階段來「申請鎖定」(Locking) 和「解除鎖定」(Unlocking),這兩個階段分別為:
    (1)成長階段 (Growing Phase)
        或稱為鎖定階段(Locking Phase),在此階段的交易只能「申請鎖定」而不能夠「解除鎖定」。
    (2)收縮階段 (Shrinking Phase)
        或稱為解除鎖定階段 (Unlocking Phase),在此階段的交易只能「解除鎖定」而不能夠「申請鎖定」。

留言