Re: BUG #3898: Postgres autovacuum not respecting pg_autovacuum.enabled = false - Mailing list pgsql-bugs

From Alvaro Herrera
Subject Re: BUG #3898: Postgres autovacuum not respecting pg_autovacuum.enabled = false
Date
Msg-id 20080124030113.GC21620@alvh.no-ip.org
Whole thread Raw
In response to Re: BUG #3898: Postgres autovacuum not respecting pg_autovacuum.enabled = false  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: BUG #3898: Postgres autovacuum not respecting pg_autovacuum.enabled = false
List pgsql-bugs
Tom Lane escribió:
> "Steven Flatt" <steven.flatt@gmail.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.

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: Statement Timeout Message Incorrect
Next
From: Simon Riggs
Date:
Subject: Re: BUG #3898: Postgres autovacuum not respecting pg_autovacuum.enabled = false