Рассмотрим следующий сценарий:
3 экземпляра EC2, расположенные в:
- США-ЗАПАД
- Ирландия
- Токио
Каждый экземпляр представляет собой выделенный сервер CouchDB. Каждый сервер CouchDB настроен на непрерывную репликацию со всеми остальными серверами (двунаправленную).
Теперь предположим, что сервер в Ирландии отключился из-за какого-то сбоя AWS. Серверы US-WEST и Tokyo CouchDB будут повторять попытку X раз, а затем, в конечном итоге, не смогут выполнить репликацию с этим сервером (правильно ли это?)
Допустим, пройдет 6 часов, и AWS снова подключит регион к сети, и этот сервер снова заработает — я предполагаю, что US-WEST и Токио будут игнорировать сервер в Ирландии, пока ирландский сервер CouchDB повторно инициирует двунаправленная синхронизация с ними обоими, а-ля:
Псевдо-настройки Irish CouchDB _replicator
- реплицировать [источник = локальный хост, цель = мы-запад]
- репликация [источник = сша-запад, цель = локальный хост]
- репликация [источник = локальный хост, цель = Токио]
- репликация [источник = Токио, цель = локальный хост]
Q1: Правильно ли я понимаю сбой/восстановление репликации Couch?
Q2: Что делать, если происходит сбой сети, который устраняется через час (в частности, нет перезапуска сервера, заставляющего БД повторно инициализировать себя при запуске), как реагируют на это соответствующие экземпляры CouchDB? Я предполагаю, что us-west и tokyo забудут об Ирландии, но вдруг Ирландия снова начнет общаться с этими двумя серверами, повторно инициализируя двунаправленную непрерывную репликацию?
Я особенно заинтересован в восстановлении после сбоя в среде EC2, поэтому, если я пропустил какую-то конкретную деталь этой среды, сообщите мне об этом.
Спасибо!