Dan*_*n S 7 rest replication synchronization couchdb database-replication
我有多个CouchDB服务器,我想彼此保持同步,我使用这些服务器共享大文件(例如> 100 MB).为了使它们保持同步,我让每个CouchDB实例从每个其他实例执行连续拉式复制.
这是一个例子:我有三个CouchDB服务器A,B和C,所有这些服务器都有相互连续的拉式复制,如下所示:
------- <------------- -------
| A | -------------> | B |
------- -------
^ | | ^
| | | |
| V | |
------- <---------------- |
| C | -------------------
-------
Run Code Online (Sandbox Code Playgroud)
有人将文档上传到服务器A,附件为500MB.B和C都开始从A复制文档,B在C完成之前完成复制:
------- doc -------
| A |--------------->| B |
------- -------
|
| doc
V
-------
| C |
-------
Run Code Online (Sandbox Code Playgroud)
我的问题是,然后C会开始从B复制相同的文件(因为C也有从B的连续拉式复制),而它仍然从A传输文件?
------- -------
| A | | B |
------- -------
| doc |
doc| |------------------
| |
V V
-------
| C |
-------
Run Code Online (Sandbox Code Playgroud)
我猜这会发生,因为AFAIK,CouchDB复制实际上并没有将复制的文档存储到目标(使用_bulk_docs API),直到从源[1]完全提取文档(包括附件).我担心这种情况会发生,因为它会带来多余的带宽,并且会浪费大量带宽.
[1] https://github.com/couchbaselabs/TouchDB-iOS/wiki/Replication-Algorithm
| 归档时间: |
|
| 查看次数: |
450 次 |
| 最近记录: |