292
правки
Изменения
→Ограничения
== Ограничения ==
Так как это алгоритм консенсуса, к нему применима [[Теорема Фишера-Линча-Патерсона (FLP)|FLP]].
Если у нас есть отказы узлов или связи, то 2PC будет ждать, пока связь не восстановится:
* Если отказ произошёл на первой фазе, то координатор может отменить транзакцию по таймауту.
* Если узел отказал, а потом восстановился, то он спрашивает координатора, какое решение было принято. Если "да", то обязан закрепить транзакцию (т.е. координатор должен хранить все подтверждённые транзакции, которые подтвердили не все узлы).
* Если отказал координатор, то, если узел ответил "да", он не имеет права забить на транзакцию, пока координатор не восстановится.