Два фаза Commit

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

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

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

Помните, что предан, но B нет, и мы используем 2 шт. (Итак, дизайн 2 шт. Перестает работать, не так ли?)

57
задан Mikel Urkia 31 March 2015 в 03:57
поделиться