Re: pgsql: Avoid archiving XLOG_RUNNING_XACTS on idle server - Mailing list pgsql-committers

From Andres Freund
Subject Re: pgsql: Avoid archiving XLOG_RUNNING_XACTS on idle server
Date
Msg-id 20160404064202.GE2431@awork2.anarazel.de
Whole thread Raw
In response to Re: pgsql: Avoid archiving XLOG_RUNNING_XACTS on idle server  (Simon Riggs <simon@2ndQuadrant.com>)
Responses Re: pgsql: Avoid archiving XLOG_RUNNING_XACTS on idle server
List pgsql-committers
On 2016-04-04 07:31:46 +0100, Simon Riggs wrote:
> On 4 April 2016 at 07:24, Andres Freund <andres@anarazel.de> wrote:
>
> > On 2016-04-04 06:19:04 +0000, Simon Riggs wrote:
> > > Avoid archiving XLOG_RUNNING_XACTS on idle server
> > >
> > > If archive_timeout > 0 we should avoid logging XLOG_RUNNING_XACTS if
> > idle.
> > >
> > > Bug 13685 reported by Laurence Rowe, investigated in detail by Michael
> > Paquier,
> > > though this is not his proposed fix.
> > > 20151016203031.3019.72930@wrigleys.postgresql.org
> > >
> > > Simple non-invasive patch to allow later backpatch to 9.4 and 9.5
> >
> > Uh. This is wrong.
>
>
> For one it breaks cleanup with logical decoding which
> > does *NEED* to know that nothing is happening. Although only once, not
> > repeatedly.
> >
>
> If the patch did that, I agree it would be wrong. It doesn't,
> deliberately.

It doesn't?

+       if (running->xcnt == 0 &&
+           nlocks == 0 &&
+           XLogArchiveTimeout > 0 &&
+           !last_snapshot_overflowed)
+       {
+           LWLockRelease(XidGenLock);
+           return InvalidXLogRecPtr;
+       }

Overflowed snapshots aren't a problem for logical decoding. But we need
to know that no old transactions are running occasionally.

Andres


pgsql-committers by date:

Previous
From: Simon Riggs
Date:
Subject: Re: pgsql: Avoid archiving XLOG_RUNNING_XACTS on idle server
Next
From: Andres Freund
Date:
Subject: Re: pgsql: Avoid archiving XLOG_RUNNING_XACTS on idle server