2011-04-06 26 views
8

是否可以在CouchDB中完全解決數據庫複製導致的衝突?我知道它有自己的內部算法來決定使用哪個版本,但是應用程序是否可以註冊一個自定義的javascript函數來處理特定於應用程序的衝突?在CouchDB中完全解決複製衝突

CouchDB指南和維基都似乎只是建議使用外部應用程序代碼來解決衝突。

回答

3

不,不可能在CouchDB中自動解決衝突(或以某種方式觸發)。

它總是由開發人員來解決衝突,這是真的。

在MVCC系統中,自動衝突解決感覺很尷尬。我們需要保存以前的版本並授予非鎖定訪問權限?

(糾正我,如果我錯了,請)

+0

我們都同意它是由開發人員決定如何最好地解決應用程序衝突。我的問題是爲了解決這個衝突解決邏輯的位置。它可以是存儲在CouchDB中的JavaScript函數嗎? – nil 2011-04-07 01:51:21

+1

+1,我會更新你的答案,使「不」更清晰。我同意無:開發人員必須解決衝突,不一定是*用戶*。 Dropbox和GMail是兩種似乎始終透明地解決衝突的服務。不幸的是,目前這一切都必須通過作爲普通客戶連接到沙發來完成。 – JasonSmith 2011-04-07 04:25:24

+1

謝謝,jhs澄清。我想知道爲什麼這是不可能的。它肯定會讓CouchApps直接從CouchDB提供服務,自給自足。 – nil 2011-04-08 17:25:21