2009年5月26日 星期二

彈性化的鎖定方式

針對被鎖定的文件,使用者依然可以取得該檔案資料到本地庫,並在有編輯許可權的前提下進行編輯動作,等到該檔案解鎖後,再進行上傳更新的動作。

這是針對<嚴格鎖定>的解決方案,如果是<樂觀鎖定>則會提供另一種更方便且不會浪費等待時間的解決方式。

    1. 嚴格鎖定

    • 功能

      當一個人鎖定某個檔案時,該檔案就會被鎖定成唯讀狀態,此時別人可以讀取這個檔案的內容,但就是無法修改。可避免造成衝突,只是後來想要編輯修改的人,必須等到取得鎖定的人解除鎖定後,才能修改。

    • 缺點

      當一個人鎖定某個檔案時,該檔案就會被鎖定成唯讀狀態,此時別人可以讀取這個檔案的內容,但就是無法修改。可避免造成衝突,只是後來想要編輯修改的人,必須等到取得鎖定的人解除鎖定後,才能修改。

    2. 樂觀鎖定

    • 功能

      不鎖定檔案,任誰都可以同時取出同一個檔案進行修改,當發生衝突時會出現提示,使用者再使用人工方式處理這些衝突。假設Fred 和 Wilma 都取出了 File1,而 Fred先修改完並且解鎖上傳,當 Wilma 也修改好,要執行解鎖上傳時,版本控制系統會告訴她,她本機上的 File1複本過時了(out-of-date),也就是說,資料庫裡的 File1從她上次取出後已經被別人更動過了,因此她必須先更新本地的複本,然後再以人工的方式做修改(根據更新過的檔案內容,將其修改內容整合入該檔案中),最後上傳更新的結果就包含了 Fred 和 Wilma 修改的內容。

    • 缺點

      需要自己手動解決衝突,有時會太過麻煩。

3. <嚴格鎖定>與<樂觀鎖定>之比較表


作業模式

優點

缺點

嚴格鎖定

鎖定-修改-解鎖(lock-modify-unlock

可避免衝突。

同一時間只有一個人可取得修改權,其他人必須排隊等候,可能造成工作無法順利進行,甚至造成相互鎖住對方要修改的檔案的情況。

樂觀鎖定

複製-修改-合併(copy-modify-merge

所有人可修改任何檔案。

當兩個人修改同一個檔案的相同部分時,需要手動解決衝突,但發生這種情況的機率很低。


    4. 我要怎樣做enggStar+的<嚴格鎖定>和<樂觀鎖定>功能?

           請參考enggStar+的<嚴格鎖定>和<樂觀鎖定>功能

沒有留言:

張貼留言