Как репликация CouchDB ведет себя с отказавшими / восстановленными серверами?

Рассмотрим следующий сценарий:

3 экземпляра EC2, расположенных в:

  • US-WEST
  • Ирландия
  • Токио

Каждый экземпляр является выделенным сервером CouchDB. Каждый сервер CouchDB настроен для выполнения непрерывной репликации с каждым другим сервером (двунаправленной).

Теперь предположим, что сервер в Ирландии отключился из-за некоторого сбоя AWS. Серверы US-WEST и Tokyo CouchDB будут повторять X попыток, а затем в конечном итоге откажутся от репликации с этим сервером (это правильно?)

Допустим, прошло 6 часов, и AWS вернул регион в оперативный режим, и этот сервер снова заработал. - Я предполагаю, что US-WEST и Токио будут игнорировать сервер в Ирландии до тех пор, пока ирландский сервер CouchDB повторно не инициирует двунаправленную синхронизацию с обоими из них, например:

Irish CouchDB _replicator Pseudo- Настройки

  • реплицировать [source = localhost, target = us-west]
  • replicate [source = us-west, target = localhost]
  • реплицировать [source = localhost, target = tokyo]
  • реплицировать [источник = tokyo, target = localhost]

Q1: Верно ли я понимаю ошибку / восстановление репликации Couch?

Q2: Что если произойдет сбой сети, который устраняется через час (в частности: нет перезапуска сервера, заставляющего БД повторно инициализироваться при запуске), как на это реагируют соответствующие экземпляры CouchDB? Я предполагаю, что Запад США и Токио забудут об Ирландии, но вдруг Ирландия снова начнет разговаривать с этими двумя серверами, повторно инициализируя двунаправленную непрерывную репликацию?

Меня особенно интересует восстановление после сбоев в среде EC2, поэтому если есть конкретная деталь в этой среде, которую я пропустил, дайте мне знать.

Спасибо!

5
задан Riyad Kalla 13 August 2011 в 16:23
поделиться