citus/src/include/distributed/backend_data.h

43 lines
1005 B
C

/*
* backend_data.h
*
* Data structure definition for managing backend data and related function
* declarations.
*
* Copyright (c) 2017, Citus Data, Inc.
*
*-------------------------------------------------------------------------
*/
#ifndef BACKEND_DATA_H
#define BACKEND_DATA_H
#include "datatype/timestamp.h"
#include "distributed/transaction_identifier.h"
#include "nodes/pg_list.h"
#include "storage/lwlock.h"
#include "storage/proc.h"
#include "storage/s_lock.h"
/*
* Each backend's active distributed transaction information is tracked via
* BackendData in shared memory.
*/
typedef struct BackendData
{
Oid databaseId;
slock_t mutex;
DistributedTransactionId transactionId;
} BackendData;
extern void InitializeBackendManagement(void);
extern void InitializeBackendData(void);
extern void UnSetDistributedTransactionId(void);
extern void AssignDistributedTransactionId(void);
extern void GetBackendDataForProc(PGPROC *proc, BackendData *result);
#endif /* BACKEND_DATA_H */