1 /*-------------------------------------------------------------------------
4 * header file for integrated autovacuum daemon
7 * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
10 * src/include/postmaster/autovacuum.h
12 *-------------------------------------------------------------------------
19 extern bool autovacuum_start_daemon;
20 extern int autovacuum_max_workers;
21 extern int autovacuum_work_mem;
22 extern int autovacuum_naptime;
23 extern int autovacuum_vac_thresh;
24 extern double autovacuum_vac_scale;
25 extern int autovacuum_anl_thresh;
26 extern double autovacuum_anl_scale;
27 extern int autovacuum_freeze_max_age;
28 extern int autovacuum_multixact_freeze_max_age;
29 extern int autovacuum_vac_cost_delay;
30 extern int autovacuum_vac_cost_limit;
32 /* autovacuum launcher PID, only valid when worker is shutting down */
33 extern int AutovacuumLauncherPid;
35 extern int Log_autovacuum_min_duration;
37 /* Status inquiry functions */
38 extern bool AutoVacuumingActive(void);
39 extern bool IsAutoVacuumLauncherProcess(void);
40 extern bool IsAutoVacuumWorkerProcess(void);
42 #define IsAnyAutoVacuumProcess() \
43 (IsAutoVacuumLauncherProcess() || IsAutoVacuumWorkerProcess())
45 /* Functions to start autovacuum process, called from postmaster */
46 extern void autovac_init(void);
47 extern int StartAutoVacLauncher(void);
48 extern int StartAutoVacWorker(void);
50 /* called from postmaster when a worker could not be forked */
51 extern void AutoVacWorkerFailed(void);
53 /* autovacuum cost-delay balancer */
54 extern void AutoVacuumUpdateDelay(void);
57 extern void AutoVacLauncherMain(int argc, char *argv[]) __attribute__((noreturn));
58 extern void AutoVacWorkerMain(int argc, char *argv[]) __attribute__((noreturn));
59 extern void AutovacuumWorkerIAm(void);
60 extern void AutovacuumLauncherIAm(void);
63 /* shared memory stuff */
64 extern Size AutoVacuumShmemSize(void);
65 extern void AutoVacuumShmemInit(void);
67 #endif /* AUTOVACUUM_H */