Two-phase commit optimizations and tradeoffs in the commercial environment

Eleven two-phase commit (2PC) protocol variations that optimize towards the normal case are described and compared with a baseline 2PC protocol. Environments in which they are most effective are discussed. The variations are compared and contrasted in terms of number of message flows, number of log writes (both forced and non-forced), probability of heuristic damage, how damage is reported, and other tradeoffs.<<ETX>>