digital-garden/_inbox/Полу-синхронная репликация.md

2.0 KiB
Raw Blame History

aliases tags date zero-link parents linked
зрелость/🌱
2024-06-07
00 Базы Данных
Репликация БД
Асинхронная репликация
Синхронная репликация

Полусинхронная (semi-sync). Комит прошел на одной реплике, но данные по транзакции были скопированы во все остальные реплики, но еще не были применены.

Реализовано в MySQL

Схема выполнения на MySQL

Как работает

  • Подготовка транзакции в движке БД: Транзакция начинается на master, где собираются все изменения данных.
  • Запись транзакции в лог: Все изменения записываются в журнал транзакций.
  • Пересылка лога репликам: Журнал транзакций отправляется на реплики. Master ждет подтверждения от как минимум одной реплики о получении журнала, но не обязательно его применении.
  • Завершение транзакции в движке БД: После получения подтверждения от одной или нескольких реплик транзакция завершается на master, и клиент получает подтверждение.
  • Воспроизведение транзакции на репликах: Реплики применяют полученные изменения к своим копиям данных, но это может произойти с задержкой.

Минусы