PostgreSQL Source Code git master
autovacuum.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * autovacuum.h
4 * header file for integrated autovacuum daemon
5 *
6 *
7 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
9 *
10 * src/include/postmaster/autovacuum.h
11 *
12 *-------------------------------------------------------------------------
13 */
14#ifndef AUTOVACUUM_H
15#define AUTOVACUUM_H
16
17#include "storage/block.h"
18
19/*
20 * Other processes can request specific work from autovacuum, identified by
21 * AutoVacuumWorkItem elements.
22 */
23typedef enum
24{
27
28
29/* GUC variables */
46
47/* autovacuum launcher PID, only valid when worker is shutting down */
49
52
53/* Status inquiry functions */
54extern bool AutoVacuumingActive(void);
55
56/* called from postmaster at server startup */
57extern void autovac_init(void);
58
59/* called from postmaster when a worker could not be forked */
60extern void AutoVacWorkerFailed(void);
61
62pg_noreturn extern void AutoVacLauncherMain(const void *startup_data, size_t startup_data_len);
63pg_noreturn extern void AutoVacWorkerMain(const void *startup_data, size_t startup_data_len);
64
66 Oid relationId, BlockNumber blkno);
67
68/* shared memory stuff */
69extern Size AutoVacuumShmemSize(void);
70extern void AutoVacuumShmemInit(void);
71
72#endif /* AUTOVACUUM_H */
AutoVacuumWorkItemType
Definition: autovacuum.h:24
@ AVW_BRINSummarizeRange
Definition: autovacuum.h:25
PGDLLIMPORT double autovacuum_vac_scale
Definition: autovacuum.c:124
PGDLLIMPORT int autovacuum_worker_slots
Definition: autovacuum.c:118
PGDLLIMPORT int autovacuum_anl_thresh
Definition: autovacuum.c:127
PGDLLIMPORT int autovacuum_vac_thresh
Definition: autovacuum.c:122
PGDLLIMPORT int autovacuum_vac_max_thresh
Definition: autovacuum.c:123
PGDLLIMPORT int autovacuum_vac_ins_thresh
Definition: autovacuum.c:125
PGDLLIMPORT int autovacuum_vac_cost_limit
Definition: autovacuum.c:133
Size AutoVacuumShmemSize(void)
Definition: autovacuum.c:3385
void AutoVacuumShmemInit(void)
Definition: autovacuum.c:3404
PGDLLIMPORT double autovacuum_anl_scale
Definition: autovacuum.c:128
pg_noreturn void AutoVacLauncherMain(const void *startup_data, size_t startup_data_len)
Definition: autovacuum.c:378
bool AutoVacuumRequestWork(AutoVacuumWorkItemType type, Oid relationId, BlockNumber blkno)
Definition: autovacuum.c:3326
bool AutoVacuumingActive(void)
Definition: autovacuum.c:3314
PGDLLIMPORT double autovacuum_vac_ins_scale
Definition: autovacuum.c:126
PGDLLIMPORT int autovacuum_work_mem
Definition: autovacuum.c:120
PGDLLIMPORT int autovacuum_freeze_max_age
Definition: autovacuum.c:129
PGDLLIMPORT int autovacuum_naptime
Definition: autovacuum.c:121
PGDLLIMPORT double autovacuum_vac_cost_delay
Definition: autovacuum.c:132
pg_noreturn void AutoVacWorkerMain(const void *startup_data, size_t startup_data_len)
Definition: autovacuum.c:1390
void AutoVacWorkerFailed(void)
Definition: autovacuum.c:1368
PGDLLIMPORT int AutovacuumLauncherPid
Definition: autovacuum.c:327
PGDLLIMPORT int Log_autoanalyze_min_duration
Definition: autovacuum.c:136
void autovac_init(void)
Definition: autovacuum.c:3368
PGDLLIMPORT bool autovacuum_start_daemon
Definition: autovacuum.c:117
PGDLLIMPORT int autovacuum_max_workers
Definition: autovacuum.c:119
PGDLLIMPORT int Log_autovacuum_min_duration
Definition: autovacuum.c:135
PGDLLIMPORT int autovacuum_multixact_freeze_max_age
Definition: autovacuum.c:130
uint32 BlockNumber
Definition: block.h:31
#define PGDLLIMPORT
Definition: c.h:1310
#define pg_noreturn
Definition: c.h:169
size_t Size
Definition: c.h:615
unsigned int Oid
Definition: postgres_ext.h:32
const char * type