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