gooderp18绿色标准版
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

82 行
2.4KB

  1. /*-------------------------------------------------------------------------
  2. *
  3. * autovacuum.h
  4. * header file for integrated autovacuum daemon
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2019, 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. #include "storage/block.h"
  17. /*
  18. * Other processes can request specific work from autovacuum, identified by
  19. * AutoVacuumWorkItem elements.
  20. */
  21. typedef enum
  22. {
  23. AVW_BRINSummarizeRange
  24. } AutoVacuumWorkItemType;
  25. /* GUC variables */
  26. extern bool autovacuum_start_daemon;
  27. extern int autovacuum_max_workers;
  28. extern int autovacuum_work_mem;
  29. extern int autovacuum_naptime;
  30. extern int autovacuum_vac_thresh;
  31. extern double autovacuum_vac_scale;
  32. extern int autovacuum_anl_thresh;
  33. extern double autovacuum_anl_scale;
  34. extern int autovacuum_freeze_max_age;
  35. extern int autovacuum_multixact_freeze_max_age;
  36. extern double autovacuum_vac_cost_delay;
  37. extern int autovacuum_vac_cost_limit;
  38. /* autovacuum launcher PID, only valid when worker is shutting down */
  39. extern int AutovacuumLauncherPid;
  40. extern int Log_autovacuum_min_duration;
  41. /* Status inquiry functions */
  42. extern bool AutoVacuumingActive(void);
  43. extern bool IsAutoVacuumLauncherProcess(void);
  44. extern bool IsAutoVacuumWorkerProcess(void);
  45. #define IsAnyAutoVacuumProcess() \
  46. (IsAutoVacuumLauncherProcess() || IsAutoVacuumWorkerProcess())
  47. /* Functions to start autovacuum process, called from postmaster */
  48. extern void autovac_init(void);
  49. extern int StartAutoVacLauncher(void);
  50. extern int StartAutoVacWorker(void);
  51. /* called from postmaster when a worker could not be forked */
  52. extern void AutoVacWorkerFailed(void);
  53. /* autovacuum cost-delay balancer */
  54. extern void AutoVacuumUpdateDelay(void);
  55. #ifdef EXEC_BACKEND
  56. extern void AutoVacLauncherMain(int argc, char *argv[]) pg_attribute_noreturn();
  57. extern void AutoVacWorkerMain(int argc, char *argv[]) pg_attribute_noreturn();
  58. extern void AutovacuumWorkerIAm(void);
  59. extern void AutovacuumLauncherIAm(void);
  60. #endif
  61. extern bool AutoVacuumRequestWork(AutoVacuumWorkItemType type,
  62. Oid relationId, BlockNumber blkno);
  63. /* shared memory stuff */
  64. extern Size AutoVacuumShmemSize(void);
  65. extern void AutoVacuumShmemInit(void);
  66. #endif /* AUTOVACUUM_H */
上海开阖软件有限公司 沪ICP备12045867号-1