Thread: [HACKERS] Re: [COMMITTERS] pgsql: Don't force-assign transaction id whenexporting a snapshot.

On 14/06/17 20:57, Andres Freund wrote:
> Don't force-assign transaction id when exporting a snapshot.
> 
> Previously we required every exported transaction to have an xid
> assigned. That was used to check that the exporting transaction is
> still running, which in turn is needed to guarantee that that
> necessary rows haven't been removed in between exporting and importing
> the snapshot.
> 
> The exported xid caused unnecessary problems with logical decoding,
> because slot creation has to wait for all concurrent xid to finish,
> which in turn serializes concurrent slot creation.   It also
> prohibited snapshots to be exported on hot-standby replicas.
> 
> Instead export the virtual transactionid, which avoids the unnecessary
> serialization and the inability to export snapshots on standbys. This
> changes the file name of the exported snapshot, but since we never
> documented what that one means, that seems ok.
> 

This commit has side effect that it makes it possible to export
snapshots on the standbys. This makes it possible to do pg_dump -j on
standby with consistent snapshot. Here is one line patch (+ doc update)
which allows doing that when pg_dumping from PG10+.

I also wonder if it should be mentioned in release notes. If the
attached patch would make it into PG10 it would be no brainer to mention
it as feature under pg_dump section, but exporting snapshots alone I am
not sure about.

-- 
  Petr Jelinek                  http://www.2ndQuadrant.com/
  PostgreSQL Development, 24x7 Support, Training & Services

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

Attachment
On 8/12/17 07:32, Petr Jelinek wrote:
> This commit has side effect that it makes it possible to export
> snapshots on the standbys. This makes it possible to do pg_dump -j on
> standby with consistent snapshot. Here is one line patch (+ doc update)
> which allows doing that when pg_dumping from PG10+.
> 
> I also wonder if it should be mentioned in release notes. If the
> attached patch would make it into PG10 it would be no brainer to mention
> it as feature under pg_dump section, but exporting snapshots alone I am
> not sure about.

Any other opinions on this patch?

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



On 2017-08-14 13:55:29 -0400, Peter Eisentraut wrote:
> On 8/12/17 07:32, Petr Jelinek wrote:
> > This commit has side effect that it makes it possible to export
> > snapshots on the standbys. This makes it possible to do pg_dump -j on
> > standby with consistent snapshot. Here is one line patch (+ doc update)
> > which allows doing that when pg_dumping from PG10+.
> > 
> > I also wonder if it should be mentioned in release notes. If the
> > attached patch would make it into PG10 it would be no brainer to mention
> > it as feature under pg_dump section, but exporting snapshots alone I am
> > not sure about.
> 
> Any other opinions on this patch?

I'd be oh so very slightly inclined to push this, including the modified
pg_dump check. We're going to be on the hook for supporting snapshots on
standbys anyway, unless we put in additional unnecessary error check.

- Andres



On 8/14/17 13:57, Andres Freund wrote:
> On 2017-08-14 13:55:29 -0400, Peter Eisentraut wrote:
>> On 8/12/17 07:32, Petr Jelinek wrote:
>>> This commit has side effect that it makes it possible to export
>>> snapshots on the standbys. This makes it possible to do pg_dump -j on
>>> standby with consistent snapshot. Here is one line patch (+ doc update)
>>> which allows doing that when pg_dumping from PG10+.
>>>
>>> I also wonder if it should be mentioned in release notes. If the
>>> attached patch would make it into PG10 it would be no brainer to mention
>>> it as feature under pg_dump section, but exporting snapshots alone I am
>>> not sure about.
>>
>> Any other opinions on this patch?
> 
> I'd be oh so very slightly inclined to push this, including the modified
> pg_dump check. We're going to be on the hook for supporting snapshots on
> standbys anyway, unless we put in additional unnecessary error check.

committed to 10 and master

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services