Непрерывная репликация CouchDB 1.6: как настроить время возобновления после сбоя подключения

У меня есть сеть с множеством разных узлов, на каждом из которых работает отдельный экземпляр CouchDB. Каждый экземпляр имеет документ(ы) в базе данных _replicator для настройки непрерывной (мастер-мастер) репликации с некоторыми другими узлами сети. Эти узлы могут отключаться на неопределенный, непредвиденный интервал времени. Все отлично работает с репликацией, но я столкнулся с проблемой тайм-аута, когда узел отключается.

В документации CouchDB говорится (http://docs.couchdb.org/en/1.6.1/replication/replicator.html)

«Когда вы помещаете/отправляете документ в базу данных _replicator, CouchDB пытается запустить репликацию до 10 раз (настраивается в [replicator], параметр max_replication_retry_count). Если это не удается с первой попытки, он ждет 5 секунд, прежде чем выполнять вторая попытка. Если вторая попытка не удалась, он ждет 10 секунд, прежде чем сделать третью попытку. Если третья попытка не удалась, он ждет 20 секунд, прежде чем сделать четвертую попытку (каждая попытка удваивает предыдущий период ожидания)».

Когда целевой узел репликации отключается (и, таким образом, происходит сбой репликации), файл журнала сообщает:

Перезапуск репликации через 5 секунд. Перезапуск репликации через 10 секунд. Перезапуск репликации через 20 секунд. Перезапуск репликации через 40 секунд. Перезапуск репликации через 80 секунд. Перезапуск репликации через 160 секунд. Перезапуск репликации через 320 секунд. Перезапуск репликации через 600 секунд. Перезапуск репликации через 600 секунд... (600 секунд кажется максимальным временем ожидания)

Мне нужно ускорить возобновление репликации после потери соединения.

Это значение жестко запрограммировано в исходниках CouchDB?

Есть ли параметр для переопределения/переопределения интервала 600 на что-то другое?


person teo    schedule 05.05.2016    source источник


Ответы (1)


Вы не можете изменить ни начальную задержку, ни максимальную задержку в CouchDB 1.x. Их соответствующие значения (2,5 секунды [немедленно умноженные на 2, что дает 5 секунд] и 600 секунд) жестко запрограммированы в исходном файле couch_replicator_manager.erl и не могут быть изменены, если вы не измените сам CouchDB.

person Samuel Tardieu    schedule 13.05.2016
comment
Это то, чего я боялся. Спасибо Самуэль, - person teo; 16.05.2016