PostgreSQL Source Code  git master
sinvaladt.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * sinvaladt.h
4  * POSTGRES shared cache invalidation data manager.
5  *
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.)
11  *
12  * The struct type SharedInvalidationMessage, defining the contents of
13  * a single message, is defined in sinval.h.
14  *
15  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
16  * Portions Copyright (c) 1994, Regents of the University of California
17  *
18  * src/include/storage/sinvaladt.h
19  *
20  *-------------------------------------------------------------------------
21  */
22 #ifndef SINVALADT_H
23 #define SINVALADT_H
24 
25 #include "storage/lock.h"
26 #include "storage/sinval.h"
27 
28 /*
29  * prototypes for functions in sinvaladt.c
30  */
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,
36  TransactionId *xmin, int *nsubxid,
37  bool *overflowed);
38 
39 extern void SIInsertDataEntries(const SharedInvalidationMessage *data, int n);
40 extern int SIGetDataEntries(SharedInvalidationMessage *data, int datasize);
41 extern void SICleanupQueue(bool callerHasWriteLock, int minFree);
42 
44 
45 #endif /* SINVALADT_H */
uint32 LocalTransactionId
Definition: c.h:638
uint32 TransactionId
Definition: c.h:636
size_t Size
Definition: c.h:589
const void * data
void SICleanupQueue(bool callerHasWriteLock, int minFree)
Definition: sinvaladt.c:654
Size SInvalShmemSize(void)
Definition: sinvaladt.c:203
void SharedInvalBackendInit(bool sendOnly)
Definition: sinvaladt.c:266
void BackendIdGetTransactionIds(int backendID, TransactionId *xid, TransactionId *xmin, int *nsubxid, bool *overflowed)
Definition: sinvaladt.c:412
int SIGetDataEntries(SharedInvalidationMessage *data, int datasize)
Definition: sinvaladt.c:550
void CreateSharedInvalidationState(void)
Definition: sinvaladt.c:227
void SIInsertDataEntries(const SharedInvalidationMessage *data, int n)
Definition: sinvaladt.c:447
LocalTransactionId GetNextLocalTransactionId(void)
Definition: sinvaladt.c:780
PGPROC * BackendIdGetProc(int backendID)
Definition: sinvaladt.c:385
Definition: proc.h:162