On 2016-04-04 08:42:02 +0200, Andres Freund wrote: > On 2016-04-04 07:31:46 +0100, Simon Riggs wrote: > > On 4 April 2016 at 07:24, Andres Freund <and...@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.72...@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.
For that matter, it's also important for hot standby; to deal with FATALed transactions which didn't write an abort record. It's kinda important to call StandbyReleaseOldLocks for those. And if a standby is in STANDBY_SNAPSHOT_READY it's also important to see this kind of record. Additionally, we're now logging more WAL if archive timeout isn't configured, which doesn't strike me as a good idea. Andres -- Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers