> The first problem is the restart/rejoin problem. When a 2PC member
> goes away, it is supposed to come back with all its former locks and
> everything in place, so that it can know what to do. This is also
> extremely tricky, but I think the answer is sort of easy. A member
> which re-joins without crashing (that is, it has open transactions,
I think you may be confusing 2PC with replication.
PostgreSQLs 2PC implementation should follow enough of the XA rules to
play nice in a mixed environment where something else is managing the
transactions (application servers are becoming more common all the
time).
As far as inter-PostgreSQL replication / queries are concerned we can
choose whatever semantics we like -- just realize that they are 2
different problems.