Disable 'emergency mode' autovacuum worker.
In GPDB, we only want an autovacuum worker to start once we know
there is a database to vacuum.
When we changed the default value of the `autovacuum_start_daemon` from
`true` to `false` for GPDB, we made the behavior of the AutoVacuumLauncherMain()
be to immediately start an autovacuum worker from the launcher and exit,
which is called 'emergency mode'. When the 'emergency mode' is running it is possible
to continuously start an autovacuum worker. Within the worker, the
PMSIGNAL_START_AUTOVAC_LAUNCHER signal is sent when a database is found that is old
enough to be vacuumed, but because we only autovacuum non-connectable
databases (template0) in GPDB and we do not have logic to filter out
connectable databases in the autovacuum worker.
This change allows the autovacuum launcher to do more up-front decision making
about whether it should start an autovacuum worker, including GPDB specific rules.
Co-authored-by: NAshwin Agrawal <aagrawal@pivotal.io>
Showing
想要评论请 注册 或 登录