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

2.1 KiB
Raw Blame History

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

Асинхронная (async). Если коммит прошел, то он прошел только на одной реплике, и когда-нибудь выполнится на остальных. Быстро, но не надежно. Возможно используется по умолчанию.

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

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

Как работает

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

Плюсы

  • Клиент быстрее получает ответ

Минусы