CouchDB:最大复制重试次数和每个请求重试次数之间的差异

CouchDB:最大复制重试次数和每个请求重试次数之间的差异,couchdb,replication,couchdb-2.0,Couchdb,Replication,Couchdb 2.0,我目前正在探索CouchDB复制,并试图找出配置文件[replicator]部分中的最大复制重试次数和每请求重试次数配置选项之间的区别 基本上,我想配置本地couchdb到远程实例的连续复制,这将永远不会停止复制尝试,考虑到离线的可能连续时间(几天甚至几周)。因此,我希望有无限次的复制尝试,最大重试间隔为5分钟左右。我能做这个吗?我需要更改默认配置来实现这一点吗?以下是我在CouchDB邮件列表中得到的回复: 如果我们讨论的是Coach 1.6,则该属性会根据请求重试 控制当前复制要对其执行的尝

我目前正在探索CouchDB复制,并试图找出配置文件[replicator]部分中的最大复制重试次数和每请求重试次数配置选项之间的区别


基本上,我想配置本地couchdb到远程实例的连续复制,这将永远不会停止复制尝试,考虑到离线的可能连续时间(几天甚至几周)。因此,我希望有无限次的复制尝试,最大重试间隔为5分钟左右。我能做这个吗?我需要更改默认配置来实现这一点吗?

以下是我在CouchDB邮件列表中得到的回复:

如果我们讨论的是Coach 1.6,则该属性会根据请求重试 控制当前复制要对其执行的尝试次数 在放弃之前先读一读。属性 最大复制重试次数控制复制管理器将重试整个复制作业的次数。 将此属性设置为“infinity”将使复制 经理永远不要放弃

我不认为这些尝试之间的间隔是可配置的。作为 据我所知,它将从 重试,然后加倍,直到达到10分钟,这将是 硬上限

扩展答案:

答案略有不同,这取决于您使用的是1.x/2.0 释放或当前主控形状

如果您使用的是1.x或2.0版本:设置“最大复制重试次数”= “无限”,因此它将始终重试失败的复制。那背景 控制出现任何错误时整个复制作业的重新启动方式。 然后,“每个请求重试”可用于处理单个请求的错误 复制HTTP请求。基本上是一个快速的即时 重试成功。“每个请求重试次数”的默认值为10。 第一次失败后,等待时间为0.25秒。然后下一个 失败它加倍到0.5,以此类推。最大等待间隔为5分钟。 但如果你希望经常离线,那可能就不值得了 重试单个请求的时间过长,因此会减少 “每个请求重试”到6或7次。因此,单个请求将重试 几次,大约10-20秒,然后完成整个复制作业 将崩溃并重试

如果您使用的是当前主控,则其中包含新的调度 复制器:无需设置“最大复制次数\重试次数” 已消失,所有复制作业将始终重试,重试时间为 复制文档已存在。但“每个请求重试”的效果是一样的 如上所述。复制计划程序在以下情况下也会执行指数退避: 复制作业连续失败。第一次退避是30秒。然后 它加倍到1分钟,2分钟,依此类推。最大退避等待时间为 大约8小时。但是如果你不想平均等4个小时 恢复网络连接时要重新启动的复制,以及 如果希望时间大约为5分钟,请在中设置“max_history=8” “复制器”配置部分。max_history(最大历史记录)控制 将为每个复制作业保留过去的事件。如果少一点 连续崩溃的历史记录,该退避等待间隔也将 再短一点

总之,对于1.x/2.0版本:

[replicator]最大复制次数\u重试次数=无穷大 每个请求重试次数=6次

对于当前主机:

[replicator]每个请求最多重试8次历史记录=6次