Re: recovering from "found xmin ... from before relfrozenxid ..."
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Amit Kapila <amit.kapila16@gmail.com>, Robert Haas <robertmhaas@gmail.com>, Ashutosh Sharma <ashu.coek88@gmail.com>, Mark Dilger <mark.dilger@enterprisedb.com>, Masahiko Sawada <masahiko.sawada@2ndquadrant.com>, "Andrey M. Borodin" <x4mmm@yandex-team.ru>, MBeena Emerson <mbeena.emerson@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Stephen Frost <sfrost@snowman.net>
Date: 2020-10-15T08:37:35Z
Lists: pgsql-hackers
Attachments
- WIP-horizon-stuff.diff (text/x-diff) patch
Hi, On 2020-09-21 14:20:03 -0700, Andres Freund wrote: > I can give it a try. I can see several paths of varying invasiveness, > not sure yet what the best approach is. Let me think about if for a bit. Ugh, sorry for taking so long to get around to this. Attached is a *prototype* implemention of this concept, which clearly is lacking some comment work (and is intentionally lacking some re-indentation). I described my thoughts about how to limit the horizons for temp tables in https://www.postgresql.org/message-id/20201014203103.72oke6hqywcyhx7s%40alap3.anarazel.de Besides comments this probably mainly needs a bit more tests around temp table vacuuming. Should have at least an isolation test that verifies that temp table rows can be a) vacuumed b) pruned away in the presence of other sessions with xids. Greetings, Andres Freund
Commits
-
Fix wrong data table horizon computation during backend startup.
- 1c7675a7a426 14.0 landed
-
Centralize horizon determination for temp tables, fixing bug due to skew.
- 94bc27b57680 14.0 landed
-
pg_surgery: Try to stabilize regression tests.
- 0811f766fd74 14.0 landed
-
New contrib module, pg_surgery, with heap surgery functions.
- 34a947ca13e5 14.0 landed
-
Set cutoff xmin more aggressively when vacuuming a temporary table.
- a7212be8b9e0 14.0 cited
-
snapshot scalability: Don't compute global horizons while building snapshots.
- dc7420c2c927 14.0 cited
-
Introduce vacuum errcontext to display additional information.
- b61d161c1463 13.0 cited