Как 2PC предотвращает сбой фиксации?

Я новичок в распределенных транзакциях, изучая, как двухфазная фиксация работает в распределенной транзакции в архитектуре микро-сервисов. Насколько я понимаю, в последней части фазы координатор транзакций спрашивает каждый узел, готов ли он к фиксации. Если все согласны, то это говорит им идти вперед и совершать.

Но что предотвращает следующую неудачу?

Все узлы отвечают, что они готовы к фиксации. Координатор транзакции говорит им "идти вперед и фиксировать", но один из узлов дает сбой при фиксации (скажем, из-за некоторых ограничений базы данных или тайм-аута соединения)

Все остальные узлы фиксируются успешно, но теперь распределенная транзакция повреждена

Короче говоря, что это значит, когда узлы говорят, что они готовы к фиксации?

Я предполагаю, что на каждом узле работает обычная база данных, которая ничего не знает о распределенных транзакциях.

0 ответов

Другие вопросы по тегам