Двухфазный коммит

Я полагаю, что большинство людей знают, что такое 2PC (протокол двухфазной фиксации) и как использовать его в Java или большинстве современных языков. По сути, он используется для обеспечения синхронизации транзакций, когда у вас есть 2 или более БД.

Предположим, у меня есть две БД (A и B), использующие 2PC в двух разных местах. Прежде чем A и B будут готовы к совершению транзакции, обе базы данных сообщат менеджеру транзакций, что они готовы к фиксации. Таким образом, когда диспетчер транзакций будет подтвержден, он отправит сигнал A и B, сообщая им, что нужно идти дальше.

Вот мой вопрос: допустим, А получил сигнал и совершил транзакцию. Как только все будет завершено, B собирается сделать то же самое, но кто-то отключает кабель питания, вызывая отключение всего сервера. Когда B вернется в онлайн, что будет делать B? И как Б это делает?

Помните, что A зафиксирован, а B нет, и мы используем 2PC (так что дизайн 2PC перестает работать, не так ли?)

Ответы на вопрос(3)

Ваш ответ на вопрос