xlogprefetcher.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*-------------------------------------------------------------------------
  2. *
  3. * xlogprefetcher.h
  4. * Declarations for the recovery prefetching module.
  5. *
  6. * Portions Copyright (c) 2022, PostgreSQL Global Development Group
  7. * Portions Copyright (c) 1994, Regents of the University of California
  8. *
  9. * IDENTIFICATION
  10. * src/include/access/xlogprefetcher.h
  11. *-------------------------------------------------------------------------
  12. */
  13. #ifndef XLOGPREFETCHER_H
  14. #define XLOGPREFETCHER_H
  15. #include "access/xlogdefs.h"
  16. #include "access/xlogreader.h"
  17. #include "access/xlogrecord.h"
  18. /* GUCs */
  19. extern PGDLLIMPORT int recovery_prefetch;
  20. /* Possible values for recovery_prefetch */
  21. typedef enum
  22. {
  23. RECOVERY_PREFETCH_OFF,
  24. RECOVERY_PREFETCH_ON,
  25. RECOVERY_PREFETCH_TRY
  26. } RecoveryPrefetchValue;
  27. struct XLogPrefetcher;
  28. typedef struct XLogPrefetcher XLogPrefetcher;
  29. extern void XLogPrefetchReconfigure(void);
  30. extern size_t XLogPrefetchShmemSize(void);
  31. extern void XLogPrefetchShmemInit(void);
  32. extern void XLogPrefetchResetStats(void);
  33. extern XLogPrefetcher *XLogPrefetcherAllocate(XLogReaderState *reader);
  34. extern void XLogPrefetcherFree(XLogPrefetcher *prefetcher);
  35. extern XLogReaderState *XLogPrefetcherGetReader(XLogPrefetcher *prefetcher);
  36. extern void XLogPrefetcherBeginRead(XLogPrefetcher *prefetcher,
  37. XLogRecPtr recPtr);
  38. extern XLogRecord *XLogPrefetcherReadRecord(XLogPrefetcher *prefetcher,
  39. char **errmsg);
  40. extern void XLogPrefetcherComputeStats(XLogPrefetcher *prefetcher);
  41. #endif