> On 5 Jan 2017, at 13:49, Simon Riggs <si...@2ndquadrant.com> wrote:
> Surely in this case the master server is acting as the Transaction
> Manager, and it knows the mapping, so we are good?
> I guess if you are using >2 nodes then you need to use full 2PC on each node.
> Please explain precisely how you expect to use this, to check that GID
> is required.

For example if we are using logical replication just for failover/HA and 
allowing user
to be transaction manager itself. Then suppose that user prepared tx on server 
A and server A
crashed. After that client may want to reconnect to server B and commit/abort 
that tx.
But user only have GID that was used during prepare.

> But even then, if you adopt the naming convention that all in-progress
> xacts will be called RepOriginId-EPOCH-XID, so they have a fully
> unique GID on all of the child nodes then we don't need to add the
> GID.

Yes, that’s also possible but seems to be less flexible restricting us to some
specific GID format.

Anyway, I can measure WAL space overhead introduced by the GID’s inside commit 
to know exactly what will be the cost of such approach.

Stas Kelvich
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:

Reply via email to