Можно ли получить противоречивые данные при использовании реплик чтения Amazon RDS? - PullRequest
0 голосов
/ 07 февраля 2019

Представьте себе следующий сценарий:

  1. Вы используете веб-приложение для изменения данных своего профиля (скажем, вы меняете свое имя с A на B ).
  2. Данные хранятся в Amazon RDS.Вы сконфигурировали свою БД для использования дополнительных реплик чтения.
  3. Как только вы отправили обновление своих данных ( B ), вы немедленно обновите страницу.
  4. Вы видите старую версиюданные ( A ), считываемые из Amazon RDS (извлеченные из еще не синхронизированной реплики чтения).

Возможно ли получить описанный выше сценарий?Насколько это вероятно?

Я знаю, что реплики чтения Amazon RDS не гарантируют строгой согласованности чтения после записи, но в этом случае пользователь может столкнуться с очень плохим интерфейсом.Как вы должны разработать свое приложение, чтобы справиться с такими проблемами?

1 Ответ

0 голосов
/ 07 февраля 2019

Можно нажать (запросить) реплику чтения с устаревшими данными.Тем не менее это не очень вероятно в вашем описанном способе.Репликация обычно требует меньше секунды.А для обновления страницы нужно немного:)

Скорость репликации зависит от нагрузки (в основном, от реплики чтения).

Чтобы избежать странного поведения в вашем случае:

  1. Если вам действительно нужны постоянные чтения после записи, просто читайте от мастера!Но я не вижу этого в описанном вами случае использования.Попытайтесь отследить это, если хотите получить подтверждение.
  2. Не подвергайте дополнительную нагрузку реплике чтения (например, отчетам или аналитическим запросам).Это может замедлить репликацию.
  3. Вы можете использовать Amazon Aurora, чтобы получить еще лучшую синхронизацию (чтение) реплик.

Существует еще больше способов усложнить ситуацию и сделатьэто "лучше".Но обычно вы думаете об этом с большими системами, с большой нагрузкой записи / обновления.

...