Re: 2-phase commit - Mailing list pgsql-hackers

From Zeugswetter Andreas SB SD
Subject Re: 2-phase commit
Date
Msg-id 46C15C39FEB2C44BA555E356FBCD6FA4962020@m0114.s-mxs.net
Whole thread Raw
In response to 2-phase commit  (Andrew Sullivan <andrew@libertyrms.info>)
Responses Re: 2-phase commit
List pgsql-hackers
> > > > The simplest senario(though there could be varations) is
> > >
> > > > [At participant(master)'s side]
> > > >   Because the commit operations is done, does nothing.
> > >
> > > > [At coordinator(slave)' side]
> > > >    1) After a while
> > > >    2) re-establish the communication path between the
> > > >       partcipant(master)'s TM.
> > > >    3) resend the "commit requeset" to the participant's TM.
> > > >   1)2)3) would be repeated until the coordinator receives
> > > >   the "commit ok" message from the partcipant.
> > >
> > > [ scratches head ] I think you are using the terms "master" and "slave"
> > > oppositely than I would.
> >
> > Oops my mistake, sorry.
> > But is it 2-phase commit protocol in the first place ?
>
> That is, in your exmaple below
>
>  Example:
>
>         Master          Slave
>         ------          -----
>         commit ready-->

This is the commit for phase 1. This commit is allowed to return all
sorts of errors, like violated deferred checks, out of diskspace, ...

>                         <--OK
>         commit done->XX

This is commit for phase 2, the slave *must* answer with "success"
in all but hardware failure cases. (Note that instead the master could
instead send rollback, e.g. because some other slave aborted)

> is the "commit done" message needed ?

So, yes this is needed.

Andreas


pgsql-hackers by date:

Previous
From: Bruno Wolff III
Date:
Subject: Re: pg_dump bug in 7.4
Next
From: Bruce Momjian
Date:
Subject: Re: pg_get_ruledef and extra line breaks