-
- Downloads
Fix full-table-vacuum request mechanism for MultiXactIds
While autovacuum dutifully launched anti-multixact-wraparound vacuums when the multixact "age" was reached, the vacuum code was not aware that it needed to make them be full table vacuums. As the resulting partial-table vacuums aren't capable of actually increasing relminmxid, autovacuum continued to launch anti-wraparound vacuums that didn't have the intended effect, until age of relfrozenxid caused the vacuum to finally be a full table one via vacuum_freeze_table_age. To fix, introduce logic for multixacts similar to that for plain TransactionIds, using the same GUCs. Backpatch to 9.3, where permanent MultiXactIds were introduced. Andres Freund, some cleanup by Álvaro
Showing
- src/backend/access/transam/multixact.c 15 additions, 0 deletionssrc/backend/access/transam/multixact.c
- src/backend/commands/cluster.c 8 additions, 5 deletionssrc/backend/commands/cluster.c
- src/backend/commands/vacuum.c 45 additions, 17 deletionssrc/backend/commands/vacuum.c
- src/backend/commands/vacuumlazy.c 14 additions, 4 deletionssrc/backend/commands/vacuumlazy.c
- src/include/access/multixact.h 2 additions, 0 deletionssrc/include/access/multixact.h
- src/include/commands/vacuum.h 3 additions, 2 deletionssrc/include/commands/vacuum.h
Loading
Please register or sign in to comment