基于序列号的Couchdb复制

时间:2015-10-29 09:07:21

标签: git couchdb

问题: 我没有很多文档,但每个文档都经过了大量的修改,因此有很多历史记录,update_seq数字很大。

当我第一次尝试将它复制到我的本地数据库时,需要花费很多时间。我正在进行一次复制。

问题: 有没有办法根据seq数进行一次复制?像git clone --depth = x之类的东西。

我只想在执行此复制时复制文档的最新版本(叶版本)。

我该如何解决这个问题?请指教。谢谢 !

1 个答案:

答案 0 :(得分:0)

CouchDB仅复制叶子修订版,因此(除非文档的历史记录是非线性的),它应该只获取最新版本。所以这实际上有点等同于

git clone --depth=1 --no-single-branch

有关此概念的直观解释,请参阅this diagram

没有可能将复制的深度限制为单个分支' (这是默认的git行为),因为它破坏了CouchDB冲突解决机制。

如果您对新副本的复制速度较慢,则可以尝试以下操作之一:

  • 检查您的文档的修订版本数量:curl http://server/database/document?conflicts=true。如果您有很多,请考虑通过删除不需要的树叶来解决冲突。
  • 对源数据库执行压缩 - 它应该为数据库重建B树,并在复制期间更快地获取修订树。