Autovacuum launcher patch
От | Alvaro Herrera |
---|---|
Тема | Autovacuum launcher patch |
Дата | |
Msg-id | 20070126234353.GZ13036@alvh.no-ip.org обсуждение исходный текст |
Ответы |
Re: Autovacuum launcher patch
|
Список | pgsql-patches |
Hello, This patch separates autovacuum in two families of processes: one is the "launcher", in charge of examining statistics and deciding when to start a worker. The other is the worker, which is started by the postmaster under command of the launcher, and processes what the launcher tells it to process (by way of setting info up in shared memory). The postmaster treats workers as regular backends; they are listed in the backend list, so when it wants to shut down, it'll send a SIGTERM signal just like everyone else, meaning it'll Just Work(tm). The launcher is a dummy process; it never connects to any database. Right now, the scheduling is more or less the same as before: it'll only start a single worker, which will process a whole database. Or rather, all tables in it that are determined to need vacuuming, per the old rules. Currently, the launcher first examines the last autovacuum time to determine which database to vacuum; the worker then examines the stats to determine which tables to vacuum. Eventually this will need to be changed so that the launcher tells the worker exactly what table to work on. I've been wondering how to make the scheduling work in the future, when we need to have the launcher read stuff from catalogs to configure the scheduling ... Maybe the solution will be to store flatfiles based on the catalogs, like we do for pg_database and pg_authid. Comments are welcome. -- Alvaro Herrera http://www.CommandPrompt.com/ The PostgreSQL Company - Command Prompt, Inc.
Вложения
В списке pgsql-patches по дате отправления: