Re: 2-phase commit

From: Manfred Spraul <manfred(at)colorfullife(dot)com>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>, Andrew Sullivan <andrew(at)libertyrms(dot)info>, PostgreSQL Development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: 2-phase commit
Date: 2003-09-29 19:35:26
Message-ID: 3F78897E.1020508@colorfullife.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-advocacy pgsql-hackers

Peter Eisentraut wrote:

>Tom Lane writes:
>
>
>
>>No. The real problem with 2PC in my mind is that its failure modes
>>occur *after* you have promised commit to one or more parties. In
>>multi-master, if you fail you know it before you have told the client
>>his data is committed.
>>
>>
>
>I have a book here which claims that the solution to the problems of
>2-phase commit is 3-phase commit, which goes something like this:
>
>coordinator participant
>----------- -----------
>INITIAL INITIAL
> prepare -->
>WAIT
> <-- vote commit
> READY
>(all voted commit)
> prepare-to-commit -->
>PRE-COMMIT
> <-- ready-to-commit
> PRE-COMMIT
> global-commit -->
>COMMIT COMMIT
>
>
>If the coordinator fails and all participants are in state READY, they can
>safely decide to abort after some timeout. If some participant is already
>in state PRE-COMMIT, it becomes the new coordinator and sends the
>global-commit message.
>
>Details are left as an exercise. :-)
>
>
Ok. Lets assume one coordinator, two partitipants.
Global commit send to both by coordinator. One replies with ok, the
other one remains silent.
What should the coordinator do? It can't fail the transaction - the
first partitipant has commited its part. It can't complete the
transaction, because the ok from the 2nd partitipant is still outstanding.
I think Bruce is right: It's an admin decision. If a timeout expires, a
user supplied app should be called, with a safe default (database
shutdown?).

--
Manfred

In response to

Responses

Browse pgsql-advocacy by date

  From Date Subject
Next Message Peter Eisentraut 2003-09-29 19:55:45 Re: 2-phase commit
Previous Message Peter Eisentraut 2003-09-29 18:56:44 Re: 2-phase commit

Browse pgsql-hackers by date

  From Date Subject
Next Message Dann Corbit 2003-09-29 19:36:25 Re: 2-phase commit
Previous Message Tom Lane 2003-09-29 19:25:59 Re: pg_dump permissions problem