----- Original Message -----
From: "Bruce Momjian" <pgman@candle.pha.pa.us>
> Mike Mascari wrote:
> > Okay. But please keep in mind that a 2-phase commit implementation
> > is used for more than just replication.
>
> This is a good point. I don't want to push Postgres-R as our solution.
> Rather, I have looked at both and like Postgres-R, but others need to
> look at both and decide so we are all in agreement when we move forward.
>
After having read your post regarding Spread, I see that it is an alternative to 2PC as a distributed TX protocol. If I
understandyou correctly, a DBLINK implementation built atop Spread would also be possible. Correct? The question then
is,do other RDBMS expose a 2PC implementation which could not then be leveraged at a later time? For example imagine:
1. 7.4 includes a native 2PC protocol with:
CREATE DATABASE LINK accounting
CONNECT TO accounting.acme.com:5432
IDENTIFIED BY mascarm/mascarm;
SELECT *
FROM employees@accounting;
INSERT INTO employees@accounting
VALUES (1, 'Mike', 'Mascari');
That would be great, allowing PostgreSQL servers running in different departments to participate in a distributed tx.
2. 7.5 includes a DBLINK which supports PostgreSQL participating in a heterogenous distributed transaction (with say,
anOracle database):
CREATE DATABASE LINK finance
CONNECT TO <oracle names entry>
IDENTIFIED BY mascarm/mascarm
USING INTERFACE 'pg2oracle.so';
INSERT INTO employees@finance
VALUES (1, 'Mike', 'Mascari');
I guess I'm basically asking:
1) Is it necessary to *choose* between support for 2PC and Spread (Postgres-R) or can't we have both? Spread for
Replication,2PC for non-replicating distributed TX?
2) Do major SQL DBMS vendors which support distributed options expose a callable interface into a 2PC protocol that
wouldallow PostgreSQL to participate? I could check on this...
3) Are there any standards (besides ODBC, which, the last time I looked just had COMMIT/ABORT APIs), that have been
definedand adopted by the industry for distributed tx?
Again, I'd guess most people want:
1) High performance Master/Master replication *and* (r.e. Postgres-R)
2) Ability to participate in distrubuted tx's (r.e. 2PC?)
Mike Mascari
mascarm@mascari.com