digital-garden/dev/database/Write-read pattern.md

2.9 KiB
Raw Permalink Blame History

aliases tags date zero-link parents linked
запись-чтение
maturity/🌱
2024-09-17
../../meta/zero/00 Базы Данных

Ситуация, когда после записи данных в master реплику вы пытаетесь немедленно прочитать те же данные с другой реплики. Это может привести к проблемам из-за задержек синхронизации между основным узлом и репликами.

Основные причины, почему стоит избегать этого паттерна при репликации:

  • ../architecture/highload/Отставание реплики БД: Данные, записанные на основном узле, не сразу реплицируются на все реплики. При чтении с реплики можно получить устаревшую информацию.
  • Непоследовательность данных: Вы можете получить неконсистентные данные, так как реплика может не успеть синхронизироваться с основным узлом.
  • Race condition: Возникает ситуация, когда операции записи и чтения конкурируют между собой. Это может привести к тому, что операция чтения прочитает данные до того, как завершится операция записи на всех узлах.

Чтобы избежать этих проблем, рекомендуется:

  • Чтение данных с основного узла, если требуется сразу после записи.
  • Использование механизмов согласованности, таких как кворумное чтение и запись, где для подтверждения операции необходимо согласие нескольких узлов.
  • Настройка задержек или проверок синхронизации для гарантии, что данные были реплицированы перед чтением.

Мета информация

Область:: ../../meta/zero/00 Базы Данных Родитель:: Источник:: Создана:: 2024-09-17 Автор::

Дополнительные материалы

Дочерние заметки