> > Why would you spent time on implementing a mechanism whose ultimate
> > benefit is supposed to be increasing reliability and performance, when you
> > already realize that it will have to lock up at the slightest sight of
> > trouble? There are better mechanisms out there that you can use instead.
>
> If you want cross-server transactions, what other methods are there that
> are more reliable? It seems network unreliability is going to be a
> problem no matter what method you use.
And unless you have 2-phase (or 3-phase) commit, all other methods are going
to be worse, since their time window for possible critical failure is
going to be substantially larger. (extending 2-phase to 3-phase should not be
too difficult)
A lot of use cases for 2PC are not for manipulating the same data on more than
one server (replication), but different data that needs to be manipulated in an
all or nothing transaction. In this scenario it is not about reliability but about
physically locating data (e.g. in LA vs New York) where it is needed most often.
Andreas