我在看CouchDB。文件有版本,並且可能有衝突的版本。它是否將版本序列存儲爲有向無環圖(DAG),就像dvcs一樣?如果不是,它是如何實現的?CouchDB文檔是否有DAG?
2
A
回答
0
你不能依靠CouchDB中的文件版本,他們只是不停地允許複製過程中的衝突解決。在compaction期間刪除先前版本的文檔。
CouchDB的維基上的這個more details。
3
是,修改序列是類似於向無環圖。我在CouchDB replication is like Git中討論過這個問題(在概念層面)。
我想說的是CouchDB的是如Git用於教育的目的。但是有顯着的差異。僅舉幾例:
- CouchDB中不存儲舊數據,只是舊的版本編號
- CouchDB的最終截斷很長的修訂歷史記錄,保留性能
因此,我不確定您是否可以在實踐中實現3路合併,因爲您最多隻能對數據進行兩次修改:源代碼和目標。共同的祖先將知道存在,但其價值不會。
雖然這可能是一個問題一般有幾個「作弊」,使它在實踐中不那麼糟糕。
validate_doc_update()
函數可以防止任意修改。它甚至可以要求更改元數據作爲文檔的一部分進行存儲。 (但是,這是一個應用級溶液)- 一大類數據的一大類的應用程序可以是2路合併:例如選擇最新的時間戳;將不同的電話號碼合併爲一組電話號碼;等等
顯然,這些是高度特定應用程序,並不是一般的解決方案。
相關問題
- 1. CouchDB文檔/功能
- 2. Couchdb參考文檔
- 3. 更新Couchdb文檔
- 4. 借給予CouchDB中下面的文檔CouchDB文檔
- 5. 是否有i18n api文檔?
- 6. 是否有Predis文檔?
- 7. CouchDB文檔ID是如何計算的?
- 8. 是否有關於在couchDB中使用的Date對象的官方文檔?
- 9. couchDB設計文檔不在所有其他文檔的末尾
- 10. 獲取couchdb數據庫中所有文檔的文檔ID
- 11. couchdb加入2個文檔
- 12. 在CouchDB中鏈接文檔
- 13. CouchDB文檔的序列號
- 14. CouchDB文檔的顯示值
- 15. CouchDB-Python檢索文檔
- 16. CouchDB-river及相關文檔
- 17. CouchDB文檔大小限制
- 18. CouchDB文檔模型更改?
- 19. 如何清除couchDB文檔
- 20. 在CouchDB中更新文檔
- 21. CouchDB文檔最大大小
- 22. CouchDB設計文檔格式
- 23. CouchDB複製覆蓋文檔
- 24. couchdb:是否有身份列表功能?
- 25. 添加新文檔時,couchDB能否自動更新特定文檔?
- 26. 是否有python的gi.repository文檔?
- 27. 是否有Opa API文檔的鏡像?
- 28. 是否有本地文檔查看器?
- 29. 這是否有意義(蘋果文檔)?
- 30. 是否有django文檔的硬拷貝?
嗯 - 我很感興趣的是得到一個DAG的原因是我希望能找到一個衝突版本A的LCA,從而使3路合併可以這樣做。但是如果我不能依靠訪問lca,那麼我不能使用它。 –