This document describes solutions to problems involving the two-phase commit protocol.
Problem 1 discusses scenarios that could occur with two participants (P1 and P2) and a coordinator (C) using two-phase commit with cooperative termination. Scenario 1B is described where only P2 is blocked after failures occur.
Problem 2 involves devising a version of two-phase commit for a chain of n processes where each can only communicate with adjacent processes. The protocol uses 2n-2 messages and has process n never in an uncertainty period. Committing occurs when process n writes a commit record to its log. The protocol can be sped up if a process votes no by having it send abort messages to neighbors who