gpt4 book ai didi

rest - CouchDB 中的并行/冗余复制

转载 作者:行者123 更新时间:2023-12-04 12:55:18 25 4
gpt4 key购买 nike

我有多个 CouchDB 服务器,我希望彼此保持同步,并且我使用这些服务器来共享大文件(例如 >100 MB)。为了让它们保持同步,我让每个 CouchDB 实例从其他实例中进行持续的拉取复制。

这是一个示例:我有三个 CouchDB 服务器 A、B 和 C,所有这些服务器都具有相互之间的连续拉取复制,如下所示:

------- <------------- -------
| A | -------------> | B |
------- -------
^ | | ^
| | | |
| V | |
------- <---------------- |
| C | -------------------
-------

有人将带有 500MB 附件的文档上传到服务器 A。 B 和 C 都开始从 A 复制文档,并且 B 在 C 之前完成复制:
-------    doc         -------
| A |--------------->| B |
------- -------
|
| doc
V
-------
| C |
-------

我的问题是, 然后 C 将开始从 B 复制相同的文档(因为 C 也有来自 B 的连续拉取复制), 当它仍在从 A 传输文档时?
-------                -------
| A | | B |
------- -------
| doc |
doc| |------------------
| |
V V
-------
| C |
-------

我猜这会发生,因为 AFAIK,CouchDB 复制实际上不会将复制的文档存储到目标(使用 _bulk_docs API),直到文档(包括附件)从源 [1] 完全获取。我担心这种情况会发生,因为它是多余的,而且会浪费大量带宽。

[1] https://github.com/couchbaselabs/TouchDB-iOS/wiki/Replication-Algorithm

最佳答案

根据 recent discussion on the CouchDB users@ list并到 this document describing the replication algorithm复制知道目标上已经存在哪个附件。但是,如果附件非常大并且两端在其中任何一个完成之前就开始复制,则附件将被多次传输。

关于rest - CouchDB 中的并行/冗余复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14115398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com