Мы торгуем по доступности, согласованности и сложности. Сначала ответим на последний вопрос: имеет ли это значение? Да очень! Выбор относительно того, как управлять вашими данными, абсолютно фундаментален, и нет «наилучшей практики», чтобы избежать решений. Вы должны понимать ваши конкретные требования.
Существует фундаментальное напряжение:
Один экземпляр: последовательность проста, но если случается, что все не работают, все находятся вне воды, а если люди находятся далеко, то могут оплатить ужасные расходы на связь. Внесите в изображение переносные устройства, которые могут потребовать отсоединения, и одна копия не обрезает их.
Ведущий Ведомый: согласованность не слишком сложна, потому что у каждого элемента данных есть только один владелец-владелец. Но что делать, если вы не видите этого мастера, нужна какая-то отложенная работа.
Мастер-Мастер: хорошо, если вы можете заставить его работать, то, кажется, он предлагает все, без единой точки отказа, каждый может работать все время. Проблема в том, что очень трудно сохранить абсолютную последовательность. См. статью в Википедии для получения дополнительной информации.
В Википедии, похоже, есть краткое изложение преимуществ и недостатков
Преимущества
Если один мастер выйдет из строя, другие мастера продолжат обновлять
базы данных.
Мастера могут быть расположены в нескольких физических местах, т.е.
распределены по сети.
Недостатки
Большинство систем с несколькими главными репликациями слабо согласованы,
то есть ленивый и асинхронный, нарушающий свойства ACID.
Стремительные системы репликации являются сложными и вводят некоторые
задержка связи.
Такие вопросы, как разрешение конфликтов, могут стать
количество задействованных узлов увеличивается, а требуемая задержка уменьшается.