autovacuum.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*-------------------------------------------------------------------------
  2. *
  3. * autovacuum.h
  4. * header file for integrated autovacuum daemon
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2016, 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. /* GUC variables */
  17. extern bool autovacuum_start_daemon;
  18. extern int autovacuum_max_workers;
  19. extern int autovacuum_work_mem;
  20. extern int autovacuum_naptime;
  21. extern int autovacuum_vac_thresh;
  22. extern double autovacuum_vac_scale;
  23. extern int autovacuum_anl_thresh;
  24. extern double autovacuum_anl_scale;
  25. extern int autovacuum_freeze_max_age;
  26. extern int autovacuum_multixact_freeze_max_age;
  27. extern int autovacuum_vac_cost_delay;
  28. extern int autovacuum_vac_cost_limit;
  29. /* autovacuum launcher PID, only valid when worker is shutting down */
  30. extern int AutovacuumLauncherPid;
  31. extern int Log_autovacuum_min_duration;
  32. /* Status inquiry functions */
  33. extern bool AutoVacuumingActive(void);
  34. extern bool IsAutoVacuumLauncherProcess(void);
  35. extern bool IsAutoVacuumWorkerProcess(void);
  36. #define IsAnyAutoVacuumProcess() \
  37. (IsAutoVacuumLauncherProcess() || IsAutoVacuumWorkerProcess())
  38. /* Functions to start autovacuum process, called from postmaster */
  39. extern void autovac_init(void);
  40. extern int StartAutoVacLauncher(void);
  41. extern int StartAutoVacWorker(void);
  42. /* called from postmaster when a worker could not be forked */
  43. extern void AutoVacWorkerFailed(void);
  44. /* autovacuum cost-delay balancer */
  45. extern void AutoVacuumUpdateDelay(void);
  46. #ifdef EXEC_BACKEND
  47. extern void AutoVacLauncherMain(int argc, char *argv[]) pg_attribute_noreturn();
  48. extern void AutoVacWorkerMain(int argc, char *argv[]) pg_attribute_noreturn();
  49. extern void AutovacuumWorkerIAm(void);
  50. extern void AutovacuumLauncherIAm(void);
  51. #endif
  52. /* shared memory stuff */
  53. extern Size AutoVacuumShmemSize(void);
  54. extern void AutoVacuumShmemInit(void);
  55. #endif /* AUTOVACUUM_H */