Here is a potential problem with the auto-vacuum daemon, and I'm wondering
if anyone has considered this. To avoid transaction ID wraparound, the
auto-vacuum daemon will periodically determine that it needs to do a DB-wide
vacuum, which takes a long time. On our system, it is on the order of a
couple of weeks. (The system is very busy and there is a lot of I/O going
on pretty much 24/7). During this period of time, there is nothing to
automatically analyze any of the tables, leading to further performance
problems. What are your thoughts on having the DB-wide vacuum running on a
separate thread so that the daemon can concurrently wake up and take care of
analyzing tables?