> -----Original Message-----
> From: Bruce Momjian [mailto:pgman@candle.pha.pa.us]
> Sent: Monday, September 29, 2003 7:10 AM
> To: Marc G. Fournier
> Cc: Hiroshi Inoue; Tom Lane; 'Zeugswetter Andreas SB SD';
> 'Andrew Sullivan'; pgsql-hackers@postgresql.org
> Subject: Re: [HACKERS] 2-phase commit
>
>
> Marc G. Fournier wrote:
> > > Master Slave
> > > ------ -----
> > > commit ready-->
> > > <--OK
> > > commit done->XX
> > >
> > > is the "commit done" message needed ?
> >
> > Of course ... how else will the Slave commit? From my
> understanding,
> > the concept is that the master sends a commit ready to the
> slave, but
> > the OK back is that "OK, I'm ready to commit whenever you are", at
> > which point the master does its commit and tells the slave
> to do its
> > ...
>
> Or the slave could reject the request.
>
Here is a BSD-like licensed transaction monitor:
http://tyrex.sourceforge.net/tpmonitor.html
The stuff that eventually became Tuxedo and Encina was open source from
MIT (not sure what came of it). You used to be able to download the
source code for their transaction monitor that worked on the IBM RS/2.
This is the Transaction Internet Protocol:
http://www.ietf.org/html.charters/OLD/tip-charter.html
It should be considered very seriously as a general solution to the
problem.
I mention this, because a transaction monitor is the next logical step
in managing database activity.
Two phase commit is a subset of transaction processing.
Interesting discussion:
http://www.developer.com/db/article.php/10920_2246481_2
http://www.developer.com/java/data/article.php/10932_3066301_4
Article worth a look (win32 specific, but talks about developing a
transaction monitor):
http://archive.devx.com/free/mgznarch/vcdj/1998/octmag98/dtc1.asp
Some simple background for those who have not spent much time looking
into it:
http://www.geocities.com/rajesh_purohit/db/twophasecommit.html