openGauss源码#session_context
2021-01-10 本文已影响0人
upup果
session_context表示与用户连接相关的所有资源。session_context.h和session.cpp是具体的实现.
- 重要变量
typedef uint32_t SessionId; 回话id
std::atomic<SessionId> m_nextSessionId 下一个session id
SessionId m_sessionId 当前的session id
ConnectionId m_connectionId 连接的id
uint64_t m_refCount 会话初始化的次数
TxnManager * m_txn 和session关联的可重用的transantion对象 - 重要函数
SessionContext:构造函数,m_sessionId(sessionId), m_connectionId(connectionId), m_refCount(1), m_txn(nullptr)
Init:初始化m_txn
CreateTransaction:创建新的TxnManger对象
AllocSessionId:获得下一个session id
IncRefCount和DecRefCount:维护m_refCount的增加和减少