Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > Marc G. Fournier wrote:
> >>> Or the slave could reject the request.
> >>
> >> Huh? The slave has that option?? In what circumstance?
>
> > I thought the slave could reject if someone local already had the row
> > locked.
>
> All normal reasons for transaction failure are supposed to be checked
> for before the slave responds that it's ready to commit. Otherwise it's
> supposed to say it can't commit.
>
> Basically the weak spot of 2PC is that it assumes there are no possible
> reasons for failure after "ready to commit" is sent. You can make that
> approximately true, with sufficient investment of resources, but it's
> definitely not a pleasant assumption.
Yep. There is no full solution. I think it is like running with fsync
off --- if the OS crashes, you have to clean up --- if you fail on a
2-phase commit, you have to clean up. Multi-master will be the same.
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square,
Pennsylvania19073