Content deleted Content added
Line 37:
The article isn't clear about the waiting and resending - the coordinator waits for all cohorts to finalize, resending the message on timeout.
Two phase commit is actually resilient to however many failures. Once the coordinator decides what to do and writes it to the log file, no matter how many failures occur, at some point the transaction will finalize. The wiki article is incorrect - the referenced paper does not say that 2PC FAILS, it says that in some cases everything must block for potentially a long time (which they argue is not acceptable in most applications). But (the basic, blocking) 2PC IS resilient to multiple failures. The problem is that it is blocking, and yes, if you remove the blocking part, it is no longer resilient (duh). Hope this helps, I think the article should be corrected but the author might want to make the corrections himself. Radu
|