mirror of
https://github.com/postgres/postgres.git
synced 2025-11-07 19:06:32 +03:00
Avoid having autovacuum workers wait for relation locks.
Waiting for relation locks can lead to starvation - it pins down an autovacuum worker for as long as the lock is held. But if we're doing an anti-wraparound vacuum, then we still wait; maintenance can no longer be put off. To assist with troubleshooting, if log_autovacuum_min_duration >= 0, we log whenever an autovacuum or autoanalyze is skipped for this reason. Per a gripe by Josh Berkus, and ensuing discussion.
This commit is contained in:
@@ -2332,7 +2332,8 @@ typedef enum VacuumOption
|
||||
VACOPT_ANALYZE = 1 << 1, /* do ANALYZE */
|
||||
VACOPT_VERBOSE = 1 << 2, /* print progress info */
|
||||
VACOPT_FREEZE = 1 << 3, /* FREEZE option */
|
||||
VACOPT_FULL = 1 << 4 /* FULL (non-concurrent) vacuum */
|
||||
VACOPT_FULL = 1 << 4, /* FULL (non-concurrent) vacuum */
|
||||
VACOPT_NOWAIT = 1 << 5
|
||||
} VacuumOption;
|
||||
|
||||
typedef struct VacuumStmt
|
||||
|
||||
Reference in New Issue
Block a user