Re: snapshot too old issues, first around wraparound and then more.
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Kevin Grittner <kgrittn@gmail.com>
Cc: Peter Geoghegan <pg@bowt.ie>,Robert Haas
<robertmhaas@gmail.com>,"pgsql-hackers@postgresql.org"
<pgsql-hackers@postgresql.org>
Date: 2020-04-02T16:40:15Z
Lists: pgsql-hackers
Hi, On April 2, 2020 9:36:32 AM PDT, Kevin Grittner <kgrittn@gmail.com> wrote: >On Wed, Apr 1, 2020 at 7:17 PM Andres Freund <andres@anarazel.de> >wrote: > >> FWIW, with autovacuum=off the query does not get killed until a >manual >> vacuum, nor if fewer rows are deleted and the table has previously >been >> vacuumed. >> >> The vacuum in the second session isn't required. There just needs to >be >> something consuming an xid, so that oldSnapshotControl->latest_xmin >is >> increased. A single SELECT txid_current(); or such in a separate >session >> is sufficient. >> > >Agreed. I don't see that part as a problem; if no xids are being >consumed, >it's hard to see how we could be heading into debilitating levels of >bloat, >so there is no need to perform the early pruning. It would not be >worth >consuming any cycles to ensure that pruning happens sooner than it does >in >this case. It's OK for it to happen any time past the moment that the >snapshot hits the threshold, but it's also OK for it to wait until a >vacuum >of the table or until some activity consumes an xid. The point about txid being sufficient was just about simplifying the reproducer for wrong query results. Andres -- Sent from my Android device with K-9 Mail. Please excuse my brevity.
Commits
-
Remove the "snapshot too old" feature.
- f691f5b80a85 17.0 landed
-
Improve timeout.c's handling of repeated timeout set/cancel.
- 09cf1d522676 14.0 cited
-
Fix two bugs in MaintainOldSnapshotTimeMapping.
- 55b7e2f4d78d 14.0 cited