Я читал протокол трехфазной фиксации в Википедии (http://en.wikipedia.org/wiki/Three-phase_commit_protocol), и вот сценарий, который пришел мне на ум, когда 3PC не удастся:
Предположим, что есть два участника A и B и координатор C:
1) C отправил сообщение предварительной фиксации в A, и до того, как он отправит сообщение предварительной фиксации в B, оба A и C одновременно терпят неудачу. 2) Теперь транзакция перезапущена, и B прерывает ее, потому что нет ответа от A. 3) A фиксирует транзакцию, потому что уже получил предварительное сообщение.
Разве это не было изначальной проблемой 2PC, которую должен был решить 3PC? Как 3PC решает проблему? Что мне не хватает. Спасибо.