pgsql: Set cutoff xmin more aggressively when vacuuming a temporary tab
От | Tom Lane |
---|---|
Тема | pgsql: Set cutoff xmin more aggressively when vacuuming a temporary tab |
Дата | |
Msg-id | E1kDExT-0002G8-LP@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Set cutoff xmin more aggressively when vacuuming a temporary table. Since other sessions aren't allowed to look into a temporary table of our own session, we do not need to worry about the global xmin horizon when setting the vacuum XID cutoff. Indeed, if we're not inside a transaction block, we may set oldestXmin to be the next XID, because there cannot be any in-doubt tuples in a temp table, nor any tuples that are dead but still visible to some snapshot of our transaction. (VACUUM, of course, is never inside a transaction block; but we need to test that because CLUSTER shares the same code.) This approach allows us to always clean out a temp table completely during VACUUM, independently of concurrent activity. Aside from being useful in its own right, that simplifies building reproducible test cases. Discussion: https://postgr.es/m/3490536.1598629609@sss.pgh.pa.us Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/a7212be8b9e0885ee769e8c55f99ef742cda487b Modified Files -------------- src/backend/access/heap/vacuumlazy.c | 1 + src/backend/commands/cluster.c | 28 ++++++++------ src/backend/commands/vacuum.c | 73 ++++++++++++++++++++++++------------ src/include/commands/cluster.h | 3 +- src/include/commands/vacuum.h | 1 + 5 files changed, 70 insertions(+), 36 deletions(-)
В списке pgsql-committers по дате отправления: