【问题标题】:CouchDB 1.6 continuous replication: how to configure resume time after connection failureCouchDB 1.6 连续复制:连接失败后如何配置恢复时间
【发布时间】:2016-05-05 13:14:18
【问题描述】:

我有一个包含许多不同节点的网络,每个节点都运行不同的 CouchDB 实例。 每个实例在 _replicator 数据库中都有文档,以设置与网络的其他一些节点的连续(主-主)复制。 这些节点可以在未定义的、不可预见的时间间隔内离线。 复制一切都很好,但是当节点离线时我遇到了超时问题。

CouchDB 文档说 (http://docs.couchdb.org/en/1.6.1/replication/replicator.html)

"当您将文档 PUT/POST 到 _replicator 数据库时,CouchDB 将尝试启动复制最多 10 次(可配置 在 [replicator] 下,参数 max_replication_retry_count)。如果它 第一次尝试失败,它会等待 5 秒,然后再进行第二次 试图。如果第二次尝试失败,它会等待 10 秒后再执行 第三次尝试。如果第三次尝试失败,则等待 20 秒 在进行第四次尝试之前(每次尝试都会使前一次等待加倍 期间)。”

当复制目标节点脱机(因此复制失败)时,日志文件会显示

在 5 秒内重新启动复制。 在 10 秒内重新启动复制。 在 20 秒内重新启动复制。 在 40 秒内重新启动复制。 在 80 秒内重新启动复制。 在 160 秒内重新启动复制。 在 320 秒内重新启动复制。 在 600 秒内重新启动复制。 在 600 秒内重新启动复制...(600 秒似乎是最大超时)

我需要加快连接丢失后恢复复制的速度。

这个值是否在 CouchDB 源中硬编码?

是否有一个参数可以将 600 间隔重新定义/覆盖为其他值?

【问题讨论】:

    标签: couchdb replication connection-timeout


    【解决方案1】:

    在 CouchDB 1.x 中,您既不能更改初始延迟,也不能更改最大延迟。它们各自的值(2.5 秒 [立即乘以 2 得到 5 秒] 和 600 秒)在源文件 couch_replicator_manager.erl 中硬编码,除非您修改 CouchDB 本身,否则无法修改。

    【讨论】:

    • 这就是我所担心的。谢谢塞缪尔,
    猜你喜欢
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多