樂觀離線鎖定
作者 David Rice
透過偵測衝突並回滾交易,防止同時進行的商業交易發生衝突。
如需完整說明,請參閱 EAA 的 P 第 416 頁
商業交易通常會在多個系統交易中執行。一旦超出單一系統交易的範圍,我們就不能只依賴資料庫管理員,確保商業交易會將記錄資料保留在一致的狀態。一旦兩個工作階段開始處理相同的記錄,資料完整性就會面臨風險,而且很可能會遺失更新。此外,如果一個工作階段編輯資料,而另一個工作階段正在讀取資料,就很有可能發生不一致的讀取。
樂觀離線鎖定透過驗證一個工作階段即將提交的變更不會與另一個工作階段的變更發生衝突,來解決這個問題。成功的提交前驗證,在某種意義上來說,就是取得鎖定,表示可以繼續對記錄資料進行變更。只要驗證和更新在單一系統交易中發生,商業交易就會顯示一致性。
悲觀離線鎖定 (426) 假設工作階段衝突的機率很高,因此會限制系統的同時執行性,而樂觀離線鎖定假設衝突的機率很低。由於預期工作階段衝突不太可能發生,因此允許多個使用者同時處理相同的資料。