Re: snapshot too old issues, first around wraparound and then more.
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Andres Freund <andres@anarazel.de>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>,
Kevin Grittner <kgrittn@gmail.com>
Date: 2020-04-02T20:04:12Z
Lists: pgsql-hackers
On Thu, Apr 2, 2020 at 11:28 AM Peter Geoghegan <pg@bowt.ie> wrote: > In conclusion, I share Andres' concerns here. There are glaring > problems with how we manipulate the data structure that controls the > effective horizon for pruning. Maybe they can be fixed while leaving > the code that manages the OldSnapshotControl circular buffer in > something resembling its current form, but I doubt it. In my opinion, > there is no approach to fixing "snapshot too old" that won't have some > serious downside. I'll add something that might be constructive: It would probably be a good idea to introduce a function like syncrep.c's SyncRepQueueIsOrderedByLSN() function, which is designed to be called by assertions only. That would both clearly document and actually verify the circular buffer/OldSnapshotControl data structure's invariants. -- Peter Geoghegan
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