Re: Temporary tables prevent autovacuum, leading to XID wraparound
Michael Paquier <michael.paquier@gmail.com>
From: Michael Paquier <michael.paquier@gmail.com>
To: "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Cc: Robert Haas <robertmhaas@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2018-02-07T00:43:40Z
Lists: pgsql-hackers
On Wed, Feb 07, 2018 at 12:37:50AM +0000, Tsunakawa, Takayuki wrote: > From: Michael Paquier [mailto:michael.paquier@gmail.com] >> I am not sure that we would like to give up that easily the property that >> we have now to clean up past temporary files only at postmaster startup >> and only when not in recovery. If you implement that, there is a risk that >> the backend you are starting is eating the connection slot and by consequence >> its temporary schema and its set of temporary tables on which one may want >> to look into after a crash. > > postmaster deletes temporary relation files at startup by calling > RemovePgTempFiles() regardless of whether it's in recovery. It > doesn't call that function during auto restart after a crash when > restart_after_crash is on. The comment on top of RemovePgTempFiles() states the following: * NOTE: we could, but don't, call this during a post-backend-crash restart * cycle. The argument for not doing it is that someone might want to examine * the temp files for debugging purposes. This does however mean that * OpenTemporaryFile had better allow for collision with an existing temp * file name. >> > 2. Teach autovacuum to remove any leftover tables in a pg_temp_%d >> > schema if the backend is active but in some other database (rather >> > than only when the backend is not active at all). >> >> Yeah. Here we can do something. This does not sound much difficult to >> me. > > I did that in my patch. Nice to hear that. Please note that I did not check your patch, so I cannot conclude on its correctness in details. -- Michael
Commits
-
Clarify comment about assignment and reset of temp namespace ID in MyProc
- 9fc9933695af 11.0 landed
- 1339fcc89617 12.0 landed
-
Make autovacuum more aggressive to remove orphaned temp tables
- 943576bddcb5 11.0 landed
- 246a6c8f7b23 12.0 landed
-
Don't count background workers against a user's connection limit.
- 13752743bf70 9.6.2 cited