Ответ 1
Я не специалист, но шаблон read/write master database и read-only slaves - это "общий" шаблон, особенно для больших приложений, занимающихся главным образом доступом для чтения или хранилищами данных:
- он позволяет масштабировать (при необходимости вы добавляете дополнительные ведомые только для чтения)
- позволяет настраивать базы данных по-разному (для эффективного чтения или эффективной записи).
Что было бы хорошим ресурсом, чтобы узнать больше об этой архитектуре?
В Интернете есть хорошие ресурсы. Например:
- Highscalability.com имеет хорошие примеры (например, Архитектура Викимедиа, master-slave category,...)
- Обработка данных в Mega Scale Systems (начиная с слайда 29)
- Подход MySQL Scale-Out для повышения производительности и масштабируемости как ключевого фактора для роста Википедии
- Глава 24. Высокая доступность и балансировка нагрузки в документации PostgreSQL
- Глава 16. Репликация в документации MySQL
- http://www.google.com/search?q=read%2Fwrite+master+database+and+read-only+slaves
Это просто вопрос репликации между двумя идентичными схемами, или ваши схемы будут отличаться в зависимости от операций, нормализация тоже будет меняться?
Я не уверен - я очень хочу прочитать ответы экспертов, но я думаю, что схемы идентичны в традиционных сценариях репликации (настройка может быть другой). Возможно, люди делают больше экзотических вещей, но мне интересно, полагаются ли они на репликацию базы данных в этом случае, это больше похоже на "ETL реального времени".
Как вы гарантируете, что данные, записанные в одну базу данных, сразу доступны для чтения со второго?
Думаю, для этого вам понадобится синхронная репликация (что, конечно, медленнее асинхронного). Хотя некоторые базы данных поддерживают этот режим, не все AFAIK. Но посмотрите этот ответ или этот для SQL Server.