Much of the existing literature on the two phase commit protocol is restricted to discussing and analyzing the protocol (and its variants) in the absence of failure. Very little, especially in quantitative terms, has been written about its performance in the presence of site failures. In this study, we use a simulation testbed of a distributed database system to quantify the differences in the performances of four 2PC protocols (the generic 2PC, presumed commit, presumed abort, and early prepare). Our study covers both the no-failure case and the case of site failures. We present a number of interesting experiment results. One is that the performance of these protocols is highly dependent on the message-processing latency at the transaction coordinator site. Another is that the presumed abort protocol does not necessarily yield better performance in the presence of site failures.