Двухэтапный протокол является блокирующим, потому что, когда участники переходят на подготовительную фазу, им приходится ждать, пока координатор решит, какой следующий шаг обработки. Когда координатор выходит из строя, им приходится ждать, пока он не воскреснет. Невозможно запустить другого координатора для достижения результата. Участникам не разрешается изменять свое состояние до тех пор, пока им не будет приказано сделать это.
Я понимаю, что вы сравниваете 3PC с 2PC. Таким образом, протокол 3PC (как я его понимаю) представляет собой семейство протоколов, где их немного. 3PC решает проблему блокирующего характера 2PC. Суть в том, чтобы последовательно завершать транзакцию (коммит или откат) только со знанием «среды». Ожидается, что будет запущен новый координатор (резервный) (вероятно, выбранный из числа участников) и транзакция может быть завершена. Существует способ включить тайм-ауты, чтобы прервать участника через некоторое время. Даже то, что только что запущенный координатор должен иметь возможность последовательно завершить всю транзакцию (возможно, в этом случае путем отката).
person
chalda
schedule
19.06.2017