我在看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,那么我不能使用它。 –