SA Шпаргалка

Все ответы в 2 клика

Продвинутый

Что такое Двухфазный коммит (2PC) в распределенных транзакциях?

2PC (Two-Phase Commit) — это алгоритм для синхронных распределенных транзакций (когда нужно обновить данные сразу в двух разных БД).

Есть Координатор и Участники (БД 1 и БД 2).

Фаза 1 (Prepare): Координатор спрашивает: "Вы готовы закоммитить?". Участники блокируют строки и отвечают "Да" или "Нет".
Фаза 2 (Commit/Rollback): Если ВСЕ ответили "Да", координатор шлет команду COMMIT. Если хоть один ответил "Нет" (или отвалился по таймауту) — координатор шлет всем ROLLBACK.

❌ Минусы: Очень медленно, блокирует таблицы на долгое время. В микросервисах вместо 2PC используют паттерн Saga.

Сложная тема? Разберём на мок-интервьюЗаписаться на менторство →

Другие вопросы темы «Нюансы ACID»

Ещё вопросы раздела «SQL и БД»

Все вопросы раздела «SQL и БД»