codekingpro/portable-devtools
114k
1/*-------------------------------------------------------------------------2 *3 * xlogprefetcher.h4 * Declarations for the recovery prefetching module.5 *6 * Portions Copyright (c) 2022-2023, PostgreSQL Global Development Group7 * Portions Copyright (c) 1994, Regents of the University of California8 *9 * IDENTIFICATION10 * src/include/access/xlogprefetcher.h11 *-------------------------------------------------------------------------12 */13#ifndef XLOGPREFETCHER_H14#define XLOGPREFETCHER_H15 16#include "access/xlogdefs.h"17#include "access/xlogreader.h"18#include "access/xlogrecord.h"19 20/* GUCs */21extern PGDLLIMPORT int recovery_prefetch;22 23/* Possible values for recovery_prefetch */24typedef enum25{26 RECOVERY_PREFETCH_OFF,27 RECOVERY_PREFETCH_ON,28 RECOVERY_PREFETCH_TRY29} RecoveryPrefetchValue;30 31struct XLogPrefetcher;32typedef struct XLogPrefetcher XLogPrefetcher;33 34 35extern void XLogPrefetchReconfigure(void);36 37extern size_t XLogPrefetchShmemSize(void);38extern void XLogPrefetchShmemInit(void);39 40extern void XLogPrefetchResetStats(void);41 42extern XLogPrefetcher *XLogPrefetcherAllocate(XLogReaderState *reader);43extern void XLogPrefetcherFree(XLogPrefetcher *prefetcher);44 45extern XLogReaderState *XLogPrefetcherGetReader(XLogPrefetcher *prefetcher);46 47extern void XLogPrefetcherBeginRead(XLogPrefetcher *prefetcher,48 XLogRecPtr recPtr);49 50extern XLogRecord *XLogPrefetcherReadRecord(XLogPrefetcher *prefetcher,51 char **errmsg);52 53extern void XLogPrefetcherComputeStats(XLogPrefetcher *prefetcher);54 55#endif56 