diff options
Diffstat (limited to 'src/include/access')
-rw-r--r-- | src/include/access/xlogwait.h | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/src/include/access/xlogwait.h b/src/include/access/xlogwait.h deleted file mode 100644 index a77635eb97c..00000000000 --- a/src/include/access/xlogwait.h +++ /dev/null @@ -1,89 +0,0 @@ -/*------------------------------------------------------------------------- - * - * xlogwait.h - * Declarations for LSN replay waiting routines. - * - * Copyright (c) 2024, PostgreSQL Global Development Group - * - * src/include/access/xlogwait.h - * - *------------------------------------------------------------------------- - */ -#ifndef XLOG_WAIT_H -#define XLOG_WAIT_H - -#include "lib/pairingheap.h" -#include "postgres.h" -#include "port/atomics.h" -#include "storage/procnumber.h" -#include "storage/spin.h" -#include "tcop/dest.h" - -/* - * WaitLSNProcInfo - the shared memory structure representing information - * about the single process, which may wait for LSN replay. An item of - * waitLSN->procInfos array. - */ -typedef struct WaitLSNProcInfo -{ - /* LSN, which this process is waiting for */ - XLogRecPtr waitLSN; - - /* Process to wake up once the waitLSN is replayed */ - ProcNumber procno; - - /* A pairing heap node for participation in waitLSNState->waitersHeap */ - pairingheap_node phNode; - - /* - * A flag indicating that this item is present in - * waitLSNState->waitersHeap - */ - bool inHeap; -} WaitLSNProcInfo; - -/* - * WaitLSNState - the shared memory state for the replay LSN waiting facility. - */ -typedef struct WaitLSNState -{ - /* - * The minimum LSN value some process is waiting for. Used for the - * fast-path checking if we need to wake up any waiters after replaying a - * WAL record. Could be read lock-less. Update protected by WaitLSNLock. - */ - pg_atomic_uint64 minWaitedLSN; - - /* - * A pairing heap of waiting processes order by LSN values (least LSN is - * on top). Protected by WaitLSNLock. - */ - pairingheap waitersHeap; - - /* - * An array with per-process information, indexed by the process number. - * Protected by WaitLSNLock. - */ - WaitLSNProcInfo procInfos[FLEXIBLE_ARRAY_MEMBER]; -} WaitLSNState; - -/* - * Result statuses for WaitForLSNReplay(). - */ -typedef enum -{ - WAIT_LSN_RESULT_SUCCESS, /* Target LSN is reached */ - WAIT_LSN_RESULT_TIMEOUT, /* Timeout occurred */ - WAIT_LSN_RESULT_NOT_IN_RECOVERY, /* Recovery ended before or during our - * wait */ -} WaitLSNResult; - -extern PGDLLIMPORT WaitLSNState *waitLSNState; - -extern Size WaitLSNShmemSize(void); -extern void WaitLSNShmemInit(void); -extern void WaitLSNWakeup(XLogRecPtr currentLSN); -extern void WaitLSNCleanup(void); -extern WaitLSNResult WaitForLSNReplay(XLogRecPtr targetLSN, int64 timeout); - -#endif /* XLOG_WAIT_H */ |