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
Attachments:
wraparound_msg.v1.patchtext/x-patch; charset=UTF-8; name=wraparound_msg.v1.patchDownload+11-11
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 aboutsnprintf(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 aboutsnprintf(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 aboutsnprintf(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
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.