TGViewer
Женя Янченко Женя Янченко @jane_yanchenko · 5.51K subscribers
Post #54 1.53K
Синхронная и асинхронная репликация

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

➕ копия данных на реплике гарантированно актуальна. Если лидер выйдет из строя, можно переключаться на реплику без потери данных.
➖ увеличение времени ответа (обычно репликация занимает меньше секунды, но гарантий нет: могут быть сетевые задержки и другие проблемы)
➖ если синхронная реплика не отвечает (из-за своего сбоя или сбоя сети), то операцию записи завершить не удастся. Лидеру придется блокировать все операции записи и ждать, пока синхронная реплика не станет снова доступна.

Обычно синхронная репликация подразумевает только одну синхронную реплику, а остальные — асинхронные. В случае замедления или недоступности синхронной реплики в неё превращается одна из асинхронных.

Асинхронная репликация означает, что лидер отправит данные на реплику, но для завершения записи не будет дожидаться ответа от реплики.

➕ лидер может выполнять записи даже в случае запаздывания реплик
➖ при фатальном сбое лидера операции, которые не успели реплицироваться, потеряются

Восстановление после отказов


🔴 Отказ реплики

Каждая реплика хранит на своем жестком диске журнал полученных от лидера изменений данных. Если произошел сбой и перезагрузка реплики, то из своего журнала реплика определяет, какая транзакция была обработана перед сбоем и запрашивает у лидера все изменения данных, которые произошли за время недоступности реплики. То есть наверстывает упущенное и продолжает обработку в обычном режиме.

🔴 Отказ лидера

Справиться с отказом лидера сложнее. Нужно:
👉 определить, что лидер отказал
👉 «повысить в звании» одну из реплик до лидера
👉 настроить систему на работу с новым лидером.

Этот процесс называется восстановлением после отказа (failover). Он может выполняться вручную или автоматически. Процесс failover-а сопряжен со многими сложными вопросами, например, тайм-аут для фиксации отказа лидера, отбрасывание не успевших реплицироваться данных после отказа лидера и др.

#кабанчик #сисдиз
  • 👍 7
  • ❤‍🔥 3
  • 🔥 3
More from @jane_yanchenko
  1. Sep 25, 2026В прошлой жизни, когда я была менеджером проектов, одним из первых мест работы у меня был…
  2. Sep 23, 2026Куда пропало обращение - развязка В прошлом посте у нас загадочно пропало обращение 58122.…
  3. Sep 23, 2026Куда пропало обращение Однажды от руководителя техподдержки пришло письмо, суть которого с…
  4. Sep 21, 2026🔗 Подборка постов про Кафку Как обещала на стриме, собрала посты про Кафку в удобное огла…
  5. Sep 21, 2026🎞 Готова запись стрима про Кафку: https://youtu.be/2aRKsD-MWDA Большое спасибо всем, кто…
  6. Sep 16, 2026Сегодня стрим по Кафке в 19:00 Планируем не в формате доклада, а в формате вопрос-ответ, ч…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →