Participant Recovery
If a participant P fails and later recovers, it first performs centralized recovery (Restart)
For each distributed transaction T that was active at the time of failure
- If P is not uncertain about T, then it unilaterally aborts T
- If P is uncertain, it runs the termination protocol (which may leave P blocked)
To ensure it can tell whether it’s uncertain, P must log its vote before sending it to the coordinator
To avoid becoming totally blocked due to one blocked transaction, P should reacquire T’s locks during Restart and allow Restart to finish before T is resolved.