Re: 2-phase commit

From: Jordan Henderson <jordan_henders(at)yahoo(dot)com>
To: Rod Taylor <rbt(at)rbt(dot)ca>, Dann Corbit <DCorbit(at)connx(dot)com>
Cc: "Jeroen T(dot) Vermeulen" <jtv(at)xs4all(dot)nl>, Christopher Browne <cbbrowne(at)acm(dot)org>, PostgreSQL Development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: 2-phase commit
Date: 2003-10-14 02:13:53
Message-ID: 200310132213.53751.jordan_henders@yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Monday 13 October 2003 20:11, Rod Taylor wrote:
> > I think another way it could be handled is with nested transactions.
> > Just have the promise phase be an inner transaction commit but have an
> > outer transaction bracket that one for the actual commit.
>
> Not really. In the event of a crash, most 2PC systems will expect the
> participant to come back in the same state it crashed in.
>

Yes, this is correct. There are certain phases of the protocol in which the
transaction state must be re-instated from the log file after a crash of the
DB server. The re-instatement must occur prior to any connections being
accepted by the server. Additionally, the coordinator must be fully
recoverable as well. The coordinator may, depending on the phase of the
commit/abort, contact child servers after it crashes. The requirement is
that during log replay, the transaction structures might have to be fully
reconstructed and remain in-place after log replay has completed, until the
disposition of the (sub)transaction is settled by the coordinator. All
dependent on the phase of course.

> Our nested-transaction implementation (like our standard transaction
> implementation) aborts all transactions on crash.

Jordan Henderson

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Rod Taylor 2003-10-14 02:13:59 Re: Heading to final release
Previous Message Bob Badour 2003-10-14 02:07:09 Re: Dreaming About Redesigning SQL