【发布时间】:2013-03-27 00:59:54
【问题描述】:
在 CouchDB 1.2 版中。
有谁知道,如果将两个具有相同 id 的相同文档插入到两个数据库中,然后从一个数据库复制到另一个数据库,会不会发生冲突?
【问题讨论】:
-
是的。你的问题还有更多吗?你自己试过了吗?
在 CouchDB 1.2 版中。
有谁知道,如果将两个具有相同 id 的相同文档插入到两个数据库中,然后从一个数据库复制到另一个数据库,会不会发生冲突?
【问题讨论】:
我还没有尝试过。但我想如果发生这种情况,人们会希望自动解决冲突,因为文档是相同的,哪一个是最新的并不重要。
【讨论】:
在 CouchDB 版本 >= 0.10 中不会发生冲突。
这是因为通过发现未出现在文档历史记录中的不同修订来检测冲突。修订号对文档数据(包括 id)和历史是确定的,因此对于任何两个相同的新文档来说都是完全相同的,CouchDB 甚至不会知道存在问题。
旧版本(最高 0.9 的版本)使用随机修订号,在这种情况下会导致冲突。
请参阅http://guide.couchdb.org/draft/conflicts.html#deterministic 了解更多信息。在http://csm.tumblr.com/post/18963100318/how-couchdb-revision-number-generation-works 开头还有更多关于修订号生成的详细信息。
【讨论】: