codekingpro/portable-devtools
114k
1/*-------------------------------------------------------------------------2 *3 * autovacuum.h4 * header file for integrated autovacuum daemon5 *6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 * Portions Copyright (c) 1994, Regents of the University of California9 *10 * src/include/postmaster/autovacuum.h11 *12 *-------------------------------------------------------------------------13 */14#ifndef AUTOVACUUM_H15#define AUTOVACUUM_H16 17#include "storage/block.h"18 19/*20 * Other processes can request specific work from autovacuum, identified by21 * AutoVacuumWorkItem elements.22 */23typedef enum24{25 AVW_BRINSummarizeRange26} AutoVacuumWorkItemType;27 28 29/* GUC variables */30extern PGDLLIMPORT bool autovacuum_start_daemon;31extern PGDLLIMPORT int autovacuum_max_workers;32extern PGDLLIMPORT int autovacuum_work_mem;33extern PGDLLIMPORT int autovacuum_naptime;34extern PGDLLIMPORT int autovacuum_vac_thresh;35extern PGDLLIMPORT double autovacuum_vac_scale;36extern PGDLLIMPORT int autovacuum_vac_ins_thresh;37extern PGDLLIMPORT double autovacuum_vac_ins_scale;38extern PGDLLIMPORT int autovacuum_anl_thresh;39extern PGDLLIMPORT double autovacuum_anl_scale;40extern PGDLLIMPORT int autovacuum_freeze_max_age;41extern PGDLLIMPORT int autovacuum_multixact_freeze_max_age;42extern PGDLLIMPORT double autovacuum_vac_cost_delay;43extern PGDLLIMPORT int autovacuum_vac_cost_limit;44 45/* autovacuum launcher PID, only valid when worker is shutting down */46extern PGDLLIMPORT int AutovacuumLauncherPid;47 48extern PGDLLIMPORT int Log_autovacuum_min_duration;49 50/* Status inquiry functions */51extern bool AutoVacuumingActive(void);52extern bool IsAutoVacuumLauncherProcess(void);53extern bool IsAutoVacuumWorkerProcess(void);54 55#define IsAnyAutoVacuumProcess() \56 (IsAutoVacuumLauncherProcess() || IsAutoVacuumWorkerProcess())57 58/* Functions to start autovacuum process, called from postmaster */59extern void autovac_init(void);60extern int StartAutoVacLauncher(void);61extern int StartAutoVacWorker(void);62 63/* called from postmaster when a worker could not be forked */64extern void AutoVacWorkerFailed(void);65 66#ifdef EXEC_BACKEND67extern void AutoVacLauncherMain(int argc, char *argv[]) pg_attribute_noreturn();68extern void AutoVacWorkerMain(int argc, char *argv[]) pg_attribute_noreturn();69extern void AutovacuumWorkerIAm(void);70extern void AutovacuumLauncherIAm(void);71#endif72 73extern bool AutoVacuumRequestWork(AutoVacuumWorkItemType type,74 Oid relationId, BlockNumber blkno);75 76/* shared memory stuff */77extern Size AutoVacuumShmemSize(void);78extern void AutoVacuumShmemInit(void);79 80#endif /* AUTOVACUUM_H */81 