3.8. Replicator

3.8.1. Replicator Database Configuration


New in version 1.2.


Maximum replication retry count can be a non-negative integer or “infinity”:

max_replication_retry_count = 10

With lower batch sizes checkpoints are done more frequently. Lower batch sizes also reduce the total amount of used RAM memory:

worker_batch_size = 500

More worker processes can give higher network throughput but can also imply more disk and network IO:

worker_processes = 4

Maximum number of HTTP connections per replication:

http_connections = 20

HTTP connection timeout per replication. Even for very fast/reliable networks it might need to be increased if a remote database is too busy:

connection_timeout = 30000

If a request fails, the replicator will retry it up to N times:

retries_per_request = 10

Some socket options that might boost performance in some scenarios:

  • {nodelay, boolean()}
  • {sndbuf, integer()}
  • {recbuf, integer()}
  • {priority, integer()}

See the inet Erlang module’s man page for the full list of options:

socket_options = [{keepalive, true}, {nodelay, false}]

New in version 1.6.

Defines replication checkpoint interval in milliseconds. Replicator will requests from the Source database at the specified interval:

checkpoint_interval = 5000

Lower intervals may be useful for frequently changing data, while higher values will lower bandwidth and make fewer requests for infrequently updated databases.


New in version 1.6.

If use_checkpoints is set to true, CouchDB will make checkpoints during replication and at the completion of replication. CouchDB can efficiently resume replication from any of these checkpoints:

use_checkpoints = true


Checkpoints are stored in local documents on both the source and target databases (which requires write access).


Disabling checkpoints is not recommended as CouchDB will scan the Source database’s changes feed from the beginning.


Path to a file containing the user’s certificate:

cert_file = /full/path/to/server_cert.pem

Path to file containing user’s private PEM encoded key:

key_file = /full/path/to/server_key.pem

String containing the user’s password. Only used if the private keyfile is password protected:

password = somepassword

Set to true to validate peer certificates:

verify_ssl_certificates = false

File containing a list of peer trusted certificates (in the PEM format):

ssl_trusted_certificates_file = /etc/ssl/certs/ca-certificates.crt

Maximum peer certificate depth (must be set even if certificate validation is off):

ssl_certificate_max_depth = 3

Table Of Contents

Previous topic

3.7. Logging

Next topic

3.9. Query Servers

More Help