Встречается на собеседованиях • сегодня

Что такое двухфазный коммит

Двухфазный коммит (2PC) — это протокол распределённых транзакций, обеспечивающий атомарность операций между несколькими участниками.

Фазы:

  1. Подготовка — координатор запрашивает все участников, могут ли они выполнить транзакцию.
  2. Фиксация/откат — если все участники готовы, координатор отправляет команду на фиксацию. Если хотя бы один отказал — транзакция откатывается.

Пример (псевдокод):

python
class Coordinator:
    def commit(self, participants):
        # Фаза 1: Подготовка
        votes = [p.prepare() for p in participants]
        if all(votes):
            # Фаза 2: Фиксация
            [p.commit() for p in participants]
        else:
            # Откат
            [p.rollback() for p in participants]

Проблемы:

  • Блокировки при отказе координатора.
  • Недостаточная отказоустойчивость (например, при сетевых сбоях).

Альтернативы: 3PC, Saga.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы