1) Allow multiple "autovacuum workers": Currently Autovacuum is only capable of ordering one vacuum command at a time, for most work loads this is sufficient but falls down when a hot (very actively updated table) goes unvacuumed for a long period of time because a large table is currently being worked on.

2) Once we can have multiple autovacuum workers: Create the concept of hot tables that require more attention and should never be ignored for more that X minutes, perhaps have one "autovacuum worker" per hot table? (What do people think of this?)

3) Create "Maintenance Windows" for autovacuum: Currently autovacuum makes all of it's decisions based on a single per-table threshold value, maintenance windows would allow the setting of a per-window, per-table threshold. This makes it possible to, for example, forbid (or strongly discourage) autovacuum from doing maintenance work during normal business hours either for the entire system or for specific tables.

None of those three items are on the todo list, however I think there is general consensus that they (at least 1 & 3) are good ideas.

If it isn't there somewhere already, I would ask to add:

4) Expose all information used by autovacuum to form its decisions.

5) Expose a very easy way to discover autovacuum's opinion about a particular table, for example "table_needs_vacuum(oid)", ignoring any time constraints that may be in place.

-Glen


---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

              http://www.postgresql.org/docs/faq

Reply via email to