On 15 March 2017 at 15:42, Petr Jelinek <petr.jelinek@2ndquadrant.com> wrote:
> Thinking about this some more. Why can't we use the same mechanism
> standby uses, ie, use xid to identify the 2PC?
It pushes work onto the downstream, which has to keep an <xid,gid>
mapping in a crash-safe, persistent form. We'll be doing a flush of
some kind anyway so we can report successful prepare to the upstream
so an additional flush of a SLRU might not be so bad for a postgres
downstream. And I guess any other clients will have some kind of
downstream persistent mapping to use.
So I think I have a mild preference for recording the gid on 2pc
commit and abort records in the master's WAL, where it's very cheap
and simple.
But I agree that just sending the xid is a viable option if that falls through.
I'm going to try to pick this patch up and amend its interface per our
discussion earlier, see if I can get it committable.
-- Craig Ringer http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services