Re: BUG #3898: Postgres autovacuum not respecting pg_autovacuum.enabled = false

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Steven Flatt <steven(dot)flatt(at)gmail(dot)com>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #3898: Postgres autovacuum not respecting pg_autovacuum.enabled = false
Date: 2008-01-24 03:01:13
Message-ID: 20080124030113.GC21620@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Tom Lane escribió:
> "Steven Flatt" <steven(dot)flatt(at)gmail(dot)com> writes:
> > I noticed that the Postgres autovacuum process was vacuuming some tables
> > that had enabled = false in pg_autovacuum.
>
> I think what is happening is that because you set
> pg_autovacuum.freeze_max_age to zero, the thing always thinks that it's
> time to force an anti-wraparound vacuum. IOW a nondefault freeze age is
> still applied whether or not enabled is true.

That's correct.

> I'm not quite sure if that's a bug or a feature --- you could argue
> that it's a feature because it lets you suppress routine autovacuuming
> and still customize the anti-wraparound timing. Maybe it's a
> documentation bug: the docs say that enabled = false means the table
> is "never autovacuumed", but what the code seems to be implementing is
> "it's only autovacuumed when necessary to prevent wraparound". I
> think that's the behavior we want ...

IMO it's a usability bug which will be gone when we move to
pg_class.reloptions -- you won't need to set random values for options
you don't know what to set to.

As for documentation, this is mentioned somewhere. Perhaps not clearly
enough? OTOH I think the real problem is that people think
documentation can be skipped, thus they don't know the "fine print" --
so it won't matter how non-fine we make it.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Simon Riggs 2008-01-24 09:19:17 Re: BUG #3898: Postgres autovacuum not respecting pg_autovacuum.enabled = false
Previous Message Tom Lane 2008-01-24 01:09:42 Re: Statement Timeout Message Incorrect