Alvaro Herrera wrote:
My vision is a little more complex than that. You define group of
tables, and separately you define time intervals. For each combination
of group and interval you can configure certain parameters, like a
multiplier for the autovacuum thresholds and factors; and also the
"enable" bit. So you can disable vacuum for some intervals, and refine
the equation factors for some others. This is all configured in tables,
not in GUC, so you have more flexibility in choosing stuff for different
groups of tables (say, you really want the small-but-high-update tables
to be still vacuumed even during peak periods, but you don't want that
big fat table to be vacuumed at all during the same period).
That sounds good. I worry a bit that it's going to get overly complex.
I suppose if we create the concept of a default window that all new
tables will be automatically be added to when created, then out of the
box we can create 1 default 24 hour maintenance window that would
effectively give us the same functionality we have now.
Could we also use these groups to be used for concurrent vacuums? That
is autovacuum will loop through each group of tables independently thus
allowing multiple simultaneous vacuums on different tables and giving us
a solution to the constantly updated table problem.
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not