[FEAT MERGE] support connection from LB in Public Cloud

This commit is contained in:
zhjc1124
2023-08-28 12:40:31 +00:00
committed by ob-robot
parent cf8e2df00e
commit 9e9f381d02
25 changed files with 860 additions and 154 deletions

View File

@ -193,9 +193,14 @@ ObSQLSessionInfo::ObSQLSessionInfo(const uint64_t tenant_id) :
expect_group_id_(OB_INVALID_ID),
group_id_not_expected_(false),
gtt_session_scope_unique_id_(0),
gtt_trans_scope_unique_id_(0)
gtt_trans_scope_unique_id_(0),
vid_(OB_INVALID_ID),
vport_(0),
in_bytes_(0),
out_bytes_(0)
{
MEMSET(tenant_buff_, 0, sizeof(share::ObTenantSpaceFetcher));
MEMSET(vip_buf_, 0, sizeof(vip_buf_));
}
ObSQLSessionInfo::~ObSQLSessionInfo()
@ -362,6 +367,11 @@ void ObSQLSessionInfo::reset(bool skip_sys_var)
gtt_trans_scope_unique_id_ = 0;
gtt_session_scope_ids_.reset();
gtt_trans_scope_ids_.reset();
vid_ = OB_INVALID_ID;
vport_ = 0;
in_bytes_ = 0;
out_bytes_ = 0;
MEMSET(vip_buf_, 0, sizeof(vip_buf_));
}
void ObSQLSessionInfo::clean_status()

View File

@ -1427,6 +1427,16 @@ public:
transaction::ObTxnFreeRouteCtx &get_txn_free_route_ctx() { return txn_free_route_ctx_; }
uint64_t get_txn_free_route_flag() const { return txn_free_route_ctx_.get_audit_record(); }
void check_txn_free_route_alive();
inline int64_t get_vid() const { return vid_; }
inline void set_vid(int64_t vid) { vid_ = vid; }
inline const common::ObString get_vip() const { return ObString::make_string(vip_buf_);; }
inline void set_vip(char *vip_buf) { MEMCPY(vip_buf_, vip_buf, sizeof(vip_buf_)); }
inline int32_t get_vport() const { return vport_; }
inline void set_vport(int32_t vport) { vport_ = vport; }
inline int64_t get_in_bytes() const { return ATOMIC_LOAD(&in_bytes_); }
inline void inc_in_bytes(int64_t in_bytes) { IGNORE_RETURN ATOMIC_FAA(&in_bytes_, in_bytes); }
inline int64_t get_out_bytes() const { return ATOMIC_LOAD(&out_bytes_); }
inline void inc_out_bytes(int64_t out_bytes) { IGNORE_RETURN ATOMIC_FAA(&out_bytes_, out_bytes); }
private:
transaction::ObTxnFreeRouteCtx txn_free_route_ctx_;
//save the current sql exec context in session
@ -1448,6 +1458,11 @@ private:
//storing table ids of accessed gtts in the session
common::ObSEArray<uint64_t, 1> gtt_session_scope_ids_;
common::ObSEArray<uint64_t, 1> gtt_trans_scope_ids_;
int64_t vid_;
char vip_buf_[MAX_IP_ADDR_LENGTH];
int32_t vport_;
int64_t in_bytes_;
int64_t out_bytes_;
};
inline bool ObSQLSessionInfo::is_terminate(int &ret) const

View File

@ -377,6 +377,14 @@ int ObSQLSessionMgr::create_session(ObSMConnection *conn, ObSQLSessionInfo *&ses
conn->sess_create_time_,
sess_info))) {
LOG_WARN("create session failed", K(ret));
} else if (OB_ISNULL(sess_info)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("sess_info is null", K(ret));
} else {
sess_info->set_vid(conn->vid_);
sess_info->set_vip(conn->vip_buf_);
sess_info->set_vport(conn->vport_);
sess_info->inc_in_bytes(conn->connect_in_bytes_);
}
return ret;
}