Вот очень простой вопрос о репликации.Репликация master-slave гарантирует, что записи появятся в последующих чтениях?
Если вы настроили свою базу данных с помощью репликации master-slave, где записи переходят к главному устройству и читаются, перейдите к подчиненным устройствам, не означает ли это, что вновь записанные данные не обязательно будут отображаться в режиме чтения до некоторого времени позже?
Например, предположим, что пользователь отправляет комментарий на ваш сайт (запись: INSERT INTO comment ...), а затем обновляет страницу (чтение: SELECT * FROM comment ...). Чтение переходит к подчиненному устройству, где оператор INSERT еще не реплицирован, поэтому список комментариев возвращается без нового. Это, по крайней мере, временно нарушит «прочность» части ACID.
Как это работает? Или есть какой-то способ обеспечить, чтобы пользователи всегда могли читать то, что они только что написали?
Я не думаю, что у вас есть правильная идея для master-> slave-репликации. Ведомое устройство почти всегда будет синхронизироваться с подчиненным устройством, и когда INSERT будет отправлен в основную базу данных, ведомое устройство также будет содержать эти данные, когда в INSERT будет сделано. – ryekayo
В какой СУБД вы говорите? Какую репликацию вы настраивали? –