| /*------------------------------------------------------------------------- |
| * |
| * xlogprefetcher.h |
| * Declarations for the recovery prefetching module. |
| * |
| * Portions Copyright (c) 2022-2023, PostgreSQL Global Development Group |
| * Portions Copyright (c) 1994, Regents of the University of California |
| * |
| * IDENTIFICATION |
| * src/include/access/xlogprefetcher.h |
| *------------------------------------------------------------------------- |
| */ |
| #ifndef XLOGPREFETCHER_H |
| #define XLOGPREFETCHER_H |
| |
| #include "access/xlogdefs.h" |
| #include "access/xlogreader.h" |
| #include "access/xlogrecord.h" |
| |
| /* GUCs */ |
| extern PGDLLIMPORT int recovery_prefetch; |
| |
| /* Possible values for recovery_prefetch */ |
| typedef enum |
| { |
| RECOVERY_PREFETCH_OFF, |
| RECOVERY_PREFETCH_ON, |
| RECOVERY_PREFETCH_TRY |
| } RecoveryPrefetchValue; |
| |
| struct XLogPrefetcher; |
| typedef struct XLogPrefetcher XLogPrefetcher; |
| |
| |
| extern void XLogPrefetchReconfigure(void); |
| |
| extern size_t XLogPrefetchShmemSize(void); |
| extern void XLogPrefetchShmemInit(void); |
| |
| extern void XLogPrefetchResetStats(void); |
| |
| extern XLogPrefetcher *XLogPrefetcherAllocate(XLogReaderState *reader); |
| extern void XLogPrefetcherFree(XLogPrefetcher *prefetcher); |
| |
| extern XLogReaderState *XLogPrefetcherGetReader(XLogPrefetcher *prefetcher); |
| |
| extern void XLogPrefetcherBeginRead(XLogPrefetcher *prefetcher, |
| XLogRecPtr recPtr); |
| |
| extern XLogRecord *XLogPrefetcherReadRecord(XLogPrefetcher *prefetcher, |
| char **errmsg); |
| |
| extern void XLogPrefetcherComputeStats(XLogPrefetcher *prefetcher); |
| |
| #endif |