"Brian Oki (boki)" <boki@cisco.com> writes:
> ... I worked at Oracle in
> the distributed database group and could do things like the following
> using PL/SQL, where we insert the same row into the same table on three
> different nodes, including the local one:
> insert into foo ....
> insert into foo@node2.acme.com ....
> insert into foo@node3.acme.com ....
> COMMIT
[ shrug... ] Stuff like that is why Oracle is enormously larger, more
complicated, and more expensive than Postgres.
There is no distributed transaction support built into Postgres. There
is two-phase commit, on top of which a transaction manager can be built
to manage distributed transactions externally. This seems like a
reasonable design to me, both because it splits up the concerns and
because it allows distributed transactions across different DBMSes
so long as they all support the 2PC protocol. (Hence, don't hold your
breath waiting for an integrated solution.)
I believe there's some suitable external XA support available in the
Java environment, but I'm pretty clueless on details. The folk in
pgsql-jdbc would probably be able to help you out if that seems like
a reasonable approach for you.
regards, tom lane