3.11. 复制因子¶
3.11.1. Replicator数据库配置¶
-
[replicator]
¶ -
max_jobs
¶ 2.1 新版功能.
活动运行的复制数。此值表示触发自动复制计划程序的阈值。系统将检查每
interval
毫秒有多少复制作业正在运行,如果超过max_jobs
活动作业时,调度程序将暂停并重新启动max_churn
调度程序队列中的作业。将此值设置得过高可能会导致性能问题,而将此值设置得过低可能意味着复制作业可能没有足够的时间来取得进展,而不会再次计划。此参数可在运行时调整,并将在下一个重新计划周期中生效:[replicator] max_jobs = 500
-
interval
¶ 2.1 新版功能.
计划间隔(毫秒)。在每个重新调度周期中,调度程序可能启动或停止
max_churn
作业数量:[replicator] interval = 60000
-
max_churn
¶ 2.1 新版功能.
重新计划期间要启动和停止的最大复制作业数。这个参数,以及
interval
,定义作业替换率。但是,在启动期间,可以启动更多的作业(最多max_jobs
)在短时间内:[replicator] max_churn = 20
-
max_history
¶ 为每个作业记录的最大事件数。此参数定义作业连续失败计数的上限,进而定义在重新启动作业之前确定延迟时使用的最大退避系数。崩溃计数的长度越长,延迟的可能长度越长:
[replicator] max_history = 20
-
update_docs
¶ 2.1 新版功能.
当设置为
true
replicator将使用错误和触发状态更新复制文档。这近似于2.1版之前的复制器行为:[replicator] update_docs = false
-
worker_batch_size
¶ 批量越小,检查点就越频繁。较小的批处理大小也会减少RAM内存的使用总量:
[replicator] worker_batch_size = 500
-
worker_processes
¶ 更多的工作进程可以提供更高的网络吞吐量,但也可能意味着更多的磁盘和网络IO::
[replicator] worker_processes = 4
-
http_connections
¶ 每个复制的最大HTTP连接数::
[replicator] http_connections = 20
-
connection_timeout
¶ 每次复制的HTTP连接超时。当复制器发出更改feed请求时,这个值除以三(3)。即使对于非常快速/可靠的网络,如果远程数据库太忙,也可能需要增加:
[replicator] connection_timeout = 30000
-
retries_per_request
¶ 在 2.1.1 版更改.
如果一个请求失败,复制程序将重试N次。N的默认值是5(在版本2.1.1之前是10)。从0.25秒开始,请求将以双倍的指数后退方式重试。所以默认情况下,请求将以0.25、0.5、1、2、4秒的间隔重试。当失效数用完时,整个复制作业将停止,稍后将重试:
[replicator] retries_per_request = 5
-
socket_options
¶ 在某些情况下,某些套接字选项可能会提高性能:
{nodelay, boolean()}
{sndbuf, integer()}
{recbuf, integer()}
{priority, integer()}
见 inet Erlang模块的手册页提供了完整的选项列表:
[replicator] socket_options = [{keepalive, true}, {nodelay, false}]
-
checkpoint_interval
¶ 1.6 新版功能.
定义复制检查点间隔(毫秒)。 Replicator 将 :get:`requests </{{db}}>` 以指定的时间间隔从源数据库:
[replicator] checkpoint_interval = 5000
较短的时间间隔对于频繁更改的数据可能很有用,而较高的值将降低带宽,并减少对不经常更新的数据库的请求。
-
use_checkpoints
¶ 1.6 新版功能.
如果
use_checkpoints
设置为true
,CouchDB将在复制期间和复制完成时创建检查点。CouchDB可以有效地从以下任一检查点恢复复制:[replicator] use_checkpoints = true
注解
检查点存储在 local documents 在源数据库和目标数据库上(这需要写访问权限)。
警告
禁用检查点是 未推荐的 因为CouchDB将从一开始扫描源数据库的更改提要。
-
cert_file
¶ 包含用户证书的文件的路径:
[replicator] cert_file = /full/path/to/server_cert.pem
-
key_file
¶ 包含用户专用PEM编码密钥的文件的路径:
[replicator] key_file = /full/path/to/server_key.pem
-
password
¶ 包含用户密码的字符串。仅当私钥文件受密码保护时使用:
[replicator] password = somepassword
-
verify_ssl_certificates
¶ 设置为true以验证对等证书:
[replicator] verify_ssl_certificates = false
-
ssl_trusted_certificates_file
¶ 包含对等信任证书列表的文件(PEM格式):
[replicator] ssl_trusted_certificates_file = /etc/ssl/certs/ca-certificates.crt
-
ssl_certificate_max_depth
¶ 最大对等证书深度(即使关闭证书验证也必须设置)::
[replicator] ssl_certificate_max_depth = 3
-
auth_plugins
¶ 2.2 新版功能.
replicator客户端身份验证插件的列表。将按顺序尝试插件,并使用第一个成功初始化的插件。默认情况下,有两个插件可用: couch_replicator_auth_session 实现会话(cookie)身份验证,以及 couch_replicator_auth_noop 实现基本身份验证。为了向后兼容,no-op插件应该用在插件列表的末尾:
[replicator] auth_plugins = couch_replicator_auth_session,couch_replicator_auth_noop
-
usage_coeff
¶ 3.2.0 新版功能.
利用系数衰减了每个调度周期的历史公平份额使用率。该值必须介于0.0和1.0之间。较低的值将确保历史使用率更快地衰减,较高的值意味着它将被记住更长时间:
[replicator] usage_coeff = 0.5
-
priority_coeff
¶ 3.2.0 新版功能.
优先级系数会衰减所有作业优先级,使它们慢慢地漂移到运行队列的前面。该系数定义了该算法将在其上运行的最大时间窗口。例如,如果此值太小(0.1),在几个周期之后,相当多的作业将以优先级0结束,并且会使此算法变得无用。选择默认值0.98是这样的:如果作业运行了一个调度程序周期,然后没有运行7小时,它的优先级仍将大于0。选择7小时是因为它足够接近默认的最大误差回退间隔8小时:
[replicator] priority_coeff = 0.98
-