]> granicus.if.org Git - postgresql/blob - src/include/postmaster/autovacuum.h
Improve autovacuum launcher's ability to detect a problem in worker startup,
[postgresql] / src / include / postmaster / autovacuum.h
1 /*-------------------------------------------------------------------------
2  *
3  * autovacuum.h
4  *        header file for integrated autovacuum daemon
5  *
6  *
7  * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * $PostgreSQL: pgsql/src/include/postmaster/autovacuum.h,v 1.11 2007/06/25 16:09:03 alvherre Exp $
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef AUTOVACUUM_H
15 #define AUTOVACUUM_H
16
17 #include "storage/lock.h"
18
19 /* GUC variables */
20 extern bool autovacuum_start_daemon;
21 extern int      autovacuum_max_workers;
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_vac_cost_delay;
29 extern int      autovacuum_vac_cost_limit;
30
31 /* autovacuum launcher PID, only valid when worker is shutting down */
32 extern int      AutovacuumLauncherPid;
33
34 extern int      Log_autovacuum;
35
36 /* Status inquiry functions */
37 extern bool AutoVacuumingActive(void);
38 extern bool IsAutoVacuumLauncherProcess(void);
39 extern bool IsAutoVacuumWorkerProcess(void);
40
41 /* Functions to start autovacuum process, called from postmaster */
42 extern void autovac_init(void);
43 extern int      StartAutoVacLauncher(void);
44 extern int      StartAutoVacWorker(void);
45 /* called from postmaster when a worker could not be forked */
46 extern void AutoVacWorkerFailed(void);
47
48 /* autovacuum cost-delay balancer */
49 extern void AutoVacuumUpdateDelay(void);
50
51 #ifdef EXEC_BACKEND
52 extern void AutoVacLauncherMain(int argc, char *argv[]);
53 extern void AutoVacWorkerMain(int argc, char *argv[]);
54 extern void AutovacuumWorkerIAm(void);
55 extern void AutovacuumLauncherIAm(void);
56 #endif
57
58 /* shared memory stuff */
59 extern Size AutoVacuumShmemSize(void);
60 extern void AutoVacuumShmemInit(void);
61
62 #endif   /* AUTOVACUUM_H */