Thread: Is autovacuum doing a wraparound-avoiding VACUUM?
Is autovacuum doing a wraparound-avoiding VACUUM? Currently, no easy way to tell. Patch to change message of autovac in pg_stat_activity when we are performing an anti-wraparound VACUUM. We will then be able to explain why an autovacuum process doesn't get cancelled, like we might otherwise hope it would be. That way we can tell difference between hung and just important. Perhaps message should say "non-automatically cancelled VACUUM <tablename>", but that sounded more obscure than the phrase I selected. Discuss... -- Simon Riggs www.2ndQuadrant.com PostgreSQL Training, Services and Support
Attachment
Simon Riggs wrote: > > Is autovacuum doing a wraparound-avoiding VACUUM? > Currently, no easy way to tell. > > Patch to change message of autovac in pg_stat_activity when we are > performing an anti-wraparound VACUUM. I just obsoleted this patch. The new patch should be easier to do though -- just a one line change I think. I don't like your wording though; it feels too verbose (and you're losing the ANALYZE in case it's doing both things). How about snprintf(activity, MAX_AUTOVAC_ACTIV_LEN, "autovacuum: VACUUM%s%s", vac tab->at_doanalyze ? " ANALYZE" : "", tab->at_wraparound ? " (wraparound)" : ""); You're not proposing it for 8.3 right? -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support
On Thu, 2008-07-17 at 17:10 -0400, Alvaro Herrera wrote: > Simon Riggs wrote: > > > > Is autovacuum doing a wraparound-avoiding VACUUM? > > Currently, no easy way to tell. > > > > Patch to change message of autovac in pg_stat_activity when we are > > performing an anti-wraparound VACUUM. > > I just obsoleted this patch. The new patch should be easier to do > though -- just a one line change I think. > > I don't like your wording though; it feels too verbose (and you're > losing the ANALYZE in case it's doing both things). How about > > snprintf(activity, MAX_AUTOVAC_ACTIV_LEN, > "autovacuum: VACUUM%s%s", vac > tab->at_doanalyze ? " ANALYZE" : "", > tab->at_wraparound ? " (wraparound)" : ""); Yes, looks good. Losing the ANALYZE was conscious, but in retrospect is something we might live to regret. Yours is better. > You're not proposing it for 8.3 right? I think I am. It's an important diagnostic for your other fix. We need to be able to tell the difference between a wraparound and other weird situations. -- Simon Riggs www.2ndQuadrant.com PostgreSQL Training, Services and Support
Simon Riggs <simon@2ndquadrant.com> writes: > On Thu, 2008-07-17 at 17:10 -0400, Alvaro Herrera wrote: >> I don't like your wording though; it feels too verbose (and you're >> losing the ANALYZE in case it's doing both things). How about >> >> snprintf(activity, MAX_AUTOVAC_ACTIV_LEN, >> "autovacuum: VACUUM%s%s", vac >> tab->at_doanalyze ? " ANALYZE" : "", >> tab->at_wraparound ? " (wraparound)" : ""); > Yes, looks good. May I suggest "(to prevent wraparound)" or something like that? Otherwise, +1. >> You're not proposing it for 8.3 right? > I think I am. It's an important diagnostic for your other fix. I agree, this is important for visibility into what's happening. The string isn't getting translated so I don't see any big downside to applying the patch in back branches. regards, tom lane
On Fri, 2008-07-18 at 01:44 -0400, Tom Lane wrote: > Simon Riggs <simon@2ndquadrant.com> writes: > > On Thu, 2008-07-17 at 17:10 -0400, Alvaro Herrera wrote: > >> I don't like your wording though; it feels too verbose (and you're > >> losing the ANALYZE in case it's doing both things). How about > >> > >> snprintf(activity, MAX_AUTOVAC_ACTIV_LEN, > >> "autovacuum: VACUUM%s%s", vac > >> tab->at_doanalyze ? " ANALYZE" : "", > >> tab->at_wraparound ? " (wraparound)" : ""); > > > Yes, looks good. > > May I suggest "(to prevent wraparound)" or something like that? > Otherwise, +1. > > >> You're not proposing it for 8.3 right? > > > I think I am. It's an important diagnostic for your other fix. > > I agree, this is important for visibility into what's happening. > The string isn't getting translated so I don't see any big downside > to applying the patch in back branches. Patches for 8.3 and CVS HEAD. -- Simon Riggs www.2ndQuadrant.com PostgreSQL Training, Services and Support
Attachment
Simon Riggs wrote: > On Fri, 2008-07-18 at 01:44 -0400, Tom Lane wrote: > > I agree, this is important for visibility into what's happening. > > The string isn't getting translated so I don't see any big downside > > to applying the patch in back branches. > > Patches for 8.3 and CVS HEAD. Applied, thanks. -- Alvaro Herrera http://www.CommandPrompt.com/ The PostgreSQL Company - Command Prompt, Inc.