use tenant memmory to alloc ObTxLSLogCb
This commit is contained in:
@ -177,7 +177,7 @@ int ObLSTxCtxMgr::init(const int64_t tenant_id,
|
||||
TRANS_LOG(WARN, "tx log adapter init error", KR(ret));
|
||||
} else if (OB_NOT_NULL(log_adapter) && OB_FALSE_IT(tx_log_adapter_ = log_adapter)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
} else if (OB_FAIL(ls_log_writer_.init(ls_id, tx_log_adapter_, this))) {
|
||||
} else if (OB_FAIL(ls_log_writer_.init(tenant_id, ls_id, tx_log_adapter_, this))) {
|
||||
TRANS_LOG(WARN, "ls_log_writer init fail", KR(ret));
|
||||
} else {
|
||||
is_inited_ = true;
|
||||
|
||||
@ -148,7 +148,7 @@ int ObTxLSLogCb::alloc_log_buf_()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
|
||||
ObMemAttr attr(OB_SERVER_TENANT_ID, "TxLSLogBuf");
|
||||
ObMemAttr attr(base_wr_->get_tenant_id(), "TxLSLogBuf");
|
||||
SET_USE_500(attr);
|
||||
if (0 == ObTxLSLogLimit::LOG_BUF_SIZE || nullptr != log_buf_) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
@ -167,7 +167,8 @@ ObTxLSLogWriter::ObTxLSLogWriter() : cbs_lock_(common::ObLatchIds::TX_LS_LOG_WRI
|
||||
|
||||
ObTxLSLogWriter::~ObTxLSLogWriter() { reset(); }
|
||||
|
||||
int ObTxLSLogWriter::init(const ObLSID &ls_id,
|
||||
int ObTxLSLogWriter::init(const int64_t tenant_id,
|
||||
const ObLSID &ls_id,
|
||||
ObITxLogAdapter * adapter,
|
||||
ObLSTxCtxMgr *ctx_mgr)
|
||||
{
|
||||
@ -180,6 +181,7 @@ int ObTxLSLogWriter::init(const ObLSID &ls_id,
|
||||
TRANS_LOG(WARN, "[TxLsLogWriter] invalid arguments", K(ls_id), KP(adapter), KP(ctx_mgr));
|
||||
} else {
|
||||
ls_id_ = ls_id;
|
||||
tenant_id_ = tenant_id;
|
||||
ctx_mgr_ = ctx_mgr;
|
||||
tx_log_adapter_ = adapter;
|
||||
ObTxLSLogLimit::decide_log_buf_size();
|
||||
|
||||
@ -90,7 +90,7 @@ public:
|
||||
|
||||
private:
|
||||
bool need_alloc_buf_() { return nullptr == log_buf_; }
|
||||
int alloc_log_buf_();
|
||||
OB_NOINLINE int alloc_log_buf_();
|
||||
|
||||
private:
|
||||
ObTxLogType type_; // Unkown == unused, not init
|
||||
@ -150,7 +150,8 @@ public:
|
||||
public:
|
||||
ObTxLSLogWriter();
|
||||
~ObTxLSLogWriter();
|
||||
int init(const share::ObLSID &ls_id,
|
||||
int init(const int64_t tenant_id,
|
||||
const share::ObLSID &ls_id,
|
||||
ObITxLogAdapter *adapter,
|
||||
ObLSTxCtxMgr *ctx_mgr);
|
||||
int stop();
|
||||
@ -162,6 +163,7 @@ public:
|
||||
public:
|
||||
int submit_start_working_log(const int64_t &leader_epoch, share::SCN &log_ts);
|
||||
|
||||
int64_t get_tenant_id() const { return tenant_id_; }
|
||||
public:
|
||||
int on_success(ObTxLSLogCb *cb);
|
||||
int on_failure(ObTxLSLogCb *cb);
|
||||
@ -199,6 +201,7 @@ private:
|
||||
common::ObDList<ObTxLSLogCb> start_working_cbs_;
|
||||
|
||||
share::ObLSID ls_id_;
|
||||
int64_t tenant_id_;
|
||||
ObLSTxCtxMgr *ctx_mgr_;
|
||||
ObITxLogAdapter *tx_log_adapter_;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user