aliases |
tags |
date |
zero-link |
parents |
linked |
|
|
|
|
|
|
Полусинхронная (semi-sync). Комит прошел на одной реплике, но данные по транзакции были скопированы во все остальные реплики, но еще не были применены.
Реализовано в MySQL
Схема выполнения на MySQL
Как работает
- Подготовка транзакции в движке БД: Транзакция начинается на master, где собираются все изменения данных.
- Запись транзакции в лог: Все изменения записываются в журнал транзакций.
- Пересылка лога репликам: Журнал транзакций отправляется на реплики. Master ждет подтверждения от как минимум одной реплики о получении журнала, но не обязательно его применении.
- Завершение транзакции в движке БД: После получения подтверждения от одной или нескольких реплик транзакция завершается на master, и клиент получает подтверждение.
- Воспроизведение транзакции на репликах: Реплики применяют полученные изменения к своим копиям данных, но это может произойти с задержкой.
Минусы