Потому что все говорят, что мастер-мастер не рекомендуется.
Но если задуматься ... одного сервера записи вряд ли хватит!
Итак, как бы вы настроили его (высокоуровневый, а не учебный), чтобы он работал хорошо?
Когда я думаю об этом, я понимаю, что одного сервера с возможностью записи достаточно. HA заботится о доступности, а сегментирование - о емкости.
Учитывая, что на некоторых из крупнейших сайтов в мире используются отдельные главные экземпляры, ваша предпосылка ошибочна. Способ решить вашу проблему - вставить слой кеширования (memcached для непостоянных данных и что-то вроде CouchDB для постоянных данных) и избегать использования базы данных как чумы. Внедрите асинхронные процессы для вставки данных в базу данных и поймите, что пользователям редко нужно видеть актуальные данные ... несколько секунд или минут обычно нормально. Шардинг и установка с несколькими мастерами - это просто панацея от архитектурных изменений, которые действительно ускорят вашу систему.
Я думаю, вы обнаружите, что большинство ваших проблем можно решить другими способами: например,
SELECTS в очереди после ОБНОВЛЕНИЙ, которые требуют времени:
Слишком много вариантов выбора для 1 машины:
Даже если у вас есть какое-то абсурдное приложение, которое должно выполнять триллионы операций записи, вам, вероятно, было бы лучше просто иметь несколько неподключенных серверов, доступных через какой-то циклический интерфейс, и просто объединять данные позже в более контролируемая среда ... Практически невозможно быть уверенным в репликации, когда тебя так бьют.
В конце концов, большинство приложений баз данных не выполняют много операций записи по сравнению с чтением.