1 /*-------------------------------------------------------------------------
4 * POSTGRES shared cache invalidation data manager.
6 * The shared cache invalidation manager is responsible for transmitting
7 * invalidation messages between backends. Any message sent by any backend
8 * must be delivered to all already-running backends before it can be
9 * forgotten. (If we run out of space, we instead deliver a "RESET"
10 * message to backends that have fallen too far behind.)
12 * The struct type SharedInvalidationMessage, defining the contents of
13 * a single message, is defined in sinval.h.
15 * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
16 * Portions Copyright (c) 1994, Regents of the University of California
18 * src/include/storage/sinvaladt.h
20 *-------------------------------------------------------------------------
25 #include "storage/lock.h"
26 #include "storage/sinval.h"
29 * prototypes for functions in sinvaladt.c
31 extern Size
SInvalShmemSize(void);
32 extern void CreateSharedInvalidationState(void);
33 extern void SharedInvalBackendInit(bool sendOnly
);
34 extern PGPROC
*BackendIdGetProc(int backendID
);
35 extern void BackendIdGetTransactionIds(int backendID
, TransactionId
*xid
, TransactionId
*xmin
);
37 extern void SIInsertDataEntries(const SharedInvalidationMessage
*data
, int n
);
38 extern int SIGetDataEntries(SharedInvalidationMessage
*data
, int datasize
);
39 extern void SICleanupQueue(bool callerHasWriteLock
, int minFree
);
41 extern LocalTransactionId
GetNextLocalTransactionId(void);
43 #endif /* SINVALADT_H */