Atualmente, tenho uma tarefa de replicação semelhante a esta:
{
"continuous": true,
"create_target": true,
"owner": "admin",
"source": "https://remote/db/",
"target": "db",
"user_ctx": {
"roles": [
"_admin"
]
}
}
Usando http, não vejo erros no log. Usando https, a replicação tecnicamente funciona, mas um grande número de erros também aparece nos logs. Eu gostaria de corrigir esses erros.
Os erros são assim:
[Fri, 01 Nov 2013 22:11:49 GMT] [info] [<0.2227.0>] Retrying GET request to https://remote/db/doc?atts_since=%5B%2271-315ddf7e3d31004df5cd00846fd1cf38%22%5D&revs=true&open_revs=%5B%2275-a40b4c7d00c17cddcbef5b093bd10392%22%5D in 0.5 seconds due to error req_timedout
No entanto, posso curl
destas URLs sem exceder o tempo limite:
$ curl -k 'https://remote/db/doc?atts_since=%5B%2273-7a26ae649429b96ed01757b477af40bd%22%5D&revs=true&open_revs=%5B%2276-c9e25fe15497c1c60f65f8da3a68d57d%22%5D'
<returns a bunch of garbage (expected garbage ;)>
E eu tenho um generoso 120s connection_timeout
definido na replicação do couchdb:
[Fri, 01 Nov 2013 22:13:00 GMT] [info] [<0.3359.0>] Replication '"36d8a613224f3749a73ae4423b5f9733+continuous+create_target"' is using:
4 worker processes
a worker batch size of 500
20 HTTP connections
a connection timeout of 120000 milliseconds
10 retries per request
socket options are: [{keepalive,true},{nodelay,true}]
source start sequence 100321
Não consigo pensar em uma diferença significativa o suficiente para que o curl receba uma resposta em segundos e o replicador do CouchDB tenha um tempo limite de 120 segundos. O que estou perdendo, o que mais posso tentar ajustar?
CouchDB v1.2.0 no Ubuntu 13.04 executando o Linux ip-10-40-65-137 3.8.0-32-genérico # 47-Ubuntu SMP Ter 1 de outubro 22:35:23 UTC 2013 x86_64 x86_64 x86_64 GNU / Linux