Re: Autovacuum Improvements

Glen Parker <glenebob@nwlink.com>

From: Glen Parker <glenebob@nwlink.com>
To: Postgres general mailing list <pgsql-general@postgresql.org>
Date: 2006-12-19T23:31:20Z
Lists: pgsql-hackers
Matthew O'Connor wrote:
> No, how dirty a table isn't subjective, what is subjective is the 
> question "Does it need to be vacuumed?".  A that is 1% dirty (to use 
> your term) probably doesn't *need* to be vacuumed, but you might choose 
> to vacuum it anyway at least you might at night when the system isn't in 
> use.

This leads me further from wanting to see a simple time contraint added. 
  I'd like to see something more dynamic.

Perhaps define a "dirtiness" rating, and then allow a minimum 
"dirtiness" to be configured.  When autovacuum wakes up, it could build 
a list of sufficiently dirty tables sorted in "dirtiness" order, and 
could call an optional user defined function for each one, passing it 
useful bits of information including each table's "dirtiness".  The 
function could then decide whether to vacuum or not based on whatever 
constraints the admin dreamed up.

It would then be a simple matter to expose a function that, given a 
table's OID, could report its "dirtiness" level.

I think that explanation leaves room for refinement, but hopefully the 
idea makes sense :-)

-Glen