fix tenant mtl module register with MTL_BIND2 remove old MTL_BIND

This commit is contained in:
obdev
2023-12-26 08:13:29 +00:00
committed by ob-robot
parent b97e65cf1e
commit 8c2fda8fdc
15 changed files with 76 additions and 72 deletions

View File

@ -22,6 +22,7 @@ namespace sqlclient
class ObTenantOciEnvs class ObTenantOciEnvs
{ {
public: public:
static int mtl_new(ObTenantOciEnvs *&tenant_oci_envs) { return OB_SUCCESS; }
static int mtl_init(ObTenantOciEnvs *&tenant_oci_envs) { return OB_SUCCESS; } static int mtl_init(ObTenantOciEnvs *&tenant_oci_envs) { return OB_SUCCESS; }
static void mtl_destroy(ObTenantOciEnvs *&tenant_oci_envs) { } static void mtl_destroy(ObTenantOciEnvs *&tenant_oci_envs) { }
}; };

View File

@ -666,7 +666,7 @@ int MockTenantModuleEnv::init()
STORAGE_LOG(ERROR, "init_before_start_mtl failed", K(ret)); STORAGE_LOG(ERROR, "init_before_start_mtl failed", K(ret));
} else { } else {
oceanbase::ObClusterVersion::get_instance().update_data_version(DATA_CURRENT_VERSION); oceanbase::ObClusterVersion::get_instance().update_data_version(DATA_CURRENT_VERSION);
MTL_BIND(ObTenantIOManager::mtl_init, ObTenantIOManager::mtl_destroy); MTL_BIND2(nullptr, ObTenantIOManager::mtl_init, nullptr, nullptr, nullptr, ObTenantIOManager::mtl_destroy);
MTL_BIND2(mtl_new_default, omt::ObSharedTimer::mtl_init, omt::ObSharedTimer::mtl_start, omt::ObSharedTimer::mtl_stop, omt::ObSharedTimer::mtl_wait, mtl_destroy_default); MTL_BIND2(mtl_new_default, omt::ObSharedTimer::mtl_init, omt::ObSharedTimer::mtl_start, omt::ObSharedTimer::mtl_stop, omt::ObSharedTimer::mtl_wait, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObTenantSchemaService::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObTenantSchemaService::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObStorageLogger::mtl_init, ObStorageLogger::mtl_start, ObStorageLogger::mtl_stop, ObStorageLogger::mtl_wait, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObStorageLogger::mtl_init, ObStorageLogger::mtl_start, ObStorageLogger::mtl_stop, ObStorageLogger::mtl_wait, mtl_destroy_default);
@ -705,7 +705,7 @@ int MockTenantModuleEnv::init()
MTL_BIND2(mtl_new_default, ObTableLockService::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObTableLockService::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, mtl_destroy_default);
MTL_BIND2(server_obj_pool_mtl_new<transaction::ObPartTransCtx>, nullptr, nullptr, nullptr, nullptr, server_obj_pool_mtl_destroy<transaction::ObPartTransCtx>); MTL_BIND2(server_obj_pool_mtl_new<transaction::ObPartTransCtx>, nullptr, nullptr, nullptr, nullptr, server_obj_pool_mtl_destroy<transaction::ObPartTransCtx>);
MTL_BIND2(server_obj_pool_mtl_new<ObTableScanIterator>, nullptr, nullptr, nullptr, nullptr, server_obj_pool_mtl_destroy<ObTableScanIterator>); MTL_BIND2(server_obj_pool_mtl_new<ObTableScanIterator>, nullptr, nullptr, nullptr, nullptr, server_obj_pool_mtl_destroy<ObTableScanIterator>);
MTL_BIND(ObTenantSQLSessionMgr::mtl_init, ObTenantSQLSessionMgr::mtl_destroy); MTL_BIND2(ObTenantSQLSessionMgr::mtl_new, ObTenantSQLSessionMgr::mtl_init, nullptr, nullptr, nullptr, ObTenantSQLSessionMgr::mtl_destroy);
MTL_BIND2(mtl_new_default, ObTenantCGReadInfoMgr::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObTenantCGReadInfoMgr::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObDecodeResourcePool::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObDecodeResourcePool::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObTenantDirectLoadMgr::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObTenantDirectLoadMgr::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default);

View File

@ -438,7 +438,7 @@ int ObMultiTenant::init(ObAddr myaddr,
} }
if (OB_SUCC(ret) && mtl_bind_flag) { if (OB_SUCC(ret) && mtl_bind_flag) {
MTL_BIND(ObTenantIOManager::mtl_init, ObTenantIOManager::mtl_destroy); MTL_BIND2(nullptr, ObTenantIOManager::mtl_init, nullptr, nullptr, nullptr, ObTenantIOManager::mtl_destroy);
// base mtl // base mtl
MTL_BIND2(mtl_new_default, storage::mds::ObTenantMdsService::mtl_init, storage::mds::ObTenantMdsService::mtl_start, storage::mds::ObTenantMdsService::mtl_stop, storage::mds::ObTenantMdsService::mtl_wait, mtl_destroy_default); MTL_BIND2(mtl_new_default, storage::mds::ObTenantMdsService::mtl_init, storage::mds::ObTenantMdsService::mtl_start, storage::mds::ObTenantMdsService::mtl_stop, storage::mds::ObTenantMdsService::mtl_wait, mtl_destroy_default);
@ -522,29 +522,29 @@ int ObMultiTenant::init(ObAddr myaddr,
MTL_BIND2(mtl_new_default, ObUDRMgr::mtl_init, nullptr, ObUDRMgr::mtl_stop, nullptr, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObUDRMgr::mtl_init, nullptr, ObUDRMgr::mtl_stop, nullptr, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObTenantCGReadInfoMgr::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObTenantCGReadInfoMgr::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObDecodeResourcePool::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObDecodeResourcePool::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObPxPools::mtl_init, nullptr, ObPxPools::mtl_stop, nullptr, ObPxPools::mtl_destroy);
MTL_BIND2(nullptr, ObPxPools::mtl_init, nullptr, ObPxPools::mtl_stop, nullptr, ObPxPools::mtl_destroy); MTL_BIND2(ObTenantDfc::mtl_new, ObTenantDfc::mtl_init, nullptr, nullptr, nullptr, ObTenantDfc::mtl_destroy);
MTL_BIND(ObTenantDfc::mtl_init, ObTenantDfc::mtl_destroy); MTL_BIND2(nullptr, init_compat_mode, nullptr, nullptr, nullptr, nullptr);
MTL_BIND(init_compat_mode, nullptr);
MTL_BIND2(ObMySQLRequestManager::mtl_new, ObMySQLRequestManager::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, ObMySQLRequestManager::mtl_destroy); MTL_BIND2(ObMySQLRequestManager::mtl_new, ObMySQLRequestManager::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, ObMySQLRequestManager::mtl_destroy);
MTL_BIND2(mtl_new_default, ObTenantWeakReadService::mtl_init, mtl_start_default, MTL_BIND2(mtl_new_default, ObTenantWeakReadService::mtl_init, mtl_start_default,
mtl_stop_default, mtl_stop_default,
mtl_wait_default, mtl_wait_default,
mtl_destroy_default); mtl_destroy_default);
//MTL_BIND(ObTransAuditRecordMgr::mtl_init, ObTransAuditRecordMgr::mtl_destroy); //MTL_BIND2(ObTransAuditRecordMgr::mtl_init, ObTransAuditRecordMgr::mtl_destroy);
MTL_BIND(ObTenantSqlMemoryManager::mtl_init, ObTenantSqlMemoryManager::mtl_destroy); MTL_BIND2(ObTenantSqlMemoryManager::mtl_new, ObTenantSqlMemoryManager::mtl_init, nullptr, nullptr, nullptr, ObTenantSqlMemoryManager::mtl_destroy);
MTL_BIND(ObPlanMonitorNodeList::mtl_init, ObPlanMonitorNodeList::mtl_destroy); MTL_BIND2(mtl_new_default, ObPlanMonitorNodeList::mtl_init, nullptr, nullptr, nullptr, ObPlanMonitorNodeList::mtl_destroy);
MTL_BIND2(mtl_new_default, ObTableLoadService::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObTableLoadService::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObSharedMacroBlockMgr::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObSharedMacroBlockMgr::mtl_init, mtl_start_default, mtl_stop_default, mtl_wait_default, mtl_destroy_default);
MTL_BIND(ObFLTSpanMgr::mtl_init, ObFLTSpanMgr::mtl_destroy); MTL_BIND2(mtl_new_default, ObFLTSpanMgr::mtl_init, nullptr, nullptr, nullptr, ObFLTSpanMgr::mtl_destroy);
MTL_BIND(common::sqlclient::ObTenantOciEnvs::mtl_init, common::sqlclient::ObTenantOciEnvs::mtl_destroy); MTL_BIND2(common::sqlclient::ObTenantOciEnvs::mtl_new, common::sqlclient::ObTenantOciEnvs::mtl_init,
nullptr, nullptr, nullptr, common::sqlclient::ObTenantOciEnvs::mtl_destroy);
MTL_BIND2(mtl_new_default, ObPlanCache::mtl_init, nullptr, ObPlanCache::mtl_stop, nullptr, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObPlanCache::mtl_init, nullptr, ObPlanCache::mtl_stop, nullptr, mtl_destroy_default);
MTL_BIND2(mtl_new_default, ObPsCache::mtl_init, nullptr, ObPsCache::mtl_stop, nullptr, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObPsCache::mtl_init, nullptr, ObPsCache::mtl_stop, nullptr, mtl_destroy_default);
MTL_BIND2(server_obj_pool_mtl_new<ObPartTransCtx>, nullptr, nullptr, nullptr, nullptr, server_obj_pool_mtl_destroy<ObPartTransCtx>); MTL_BIND2(server_obj_pool_mtl_new<ObPartTransCtx>, nullptr, nullptr, nullptr, nullptr, server_obj_pool_mtl_destroy<ObPartTransCtx>);
MTL_BIND2(server_obj_pool_mtl_new<ObTableScanIterator>, nullptr, nullptr, nullptr, nullptr, server_obj_pool_mtl_destroy<ObTableScanIterator>); MTL_BIND2(server_obj_pool_mtl_new<ObTableScanIterator>, nullptr, nullptr, nullptr, nullptr, server_obj_pool_mtl_destroy<ObTableScanIterator>);
MTL_BIND2(mtl_new_default, ObTenantDirectLoadMgr::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default); MTL_BIND2(mtl_new_default, ObTenantDirectLoadMgr::mtl_init, nullptr, nullptr, nullptr, mtl_destroy_default);
MTL_BIND(ObDetectManager::mtl_init, ObDetectManager::mtl_destroy); MTL_BIND2(ObDetectManager::mtl_new, ObDetectManager::mtl_init, nullptr, nullptr, nullptr, ObDetectManager::mtl_destroy);
MTL_BIND(ObTenantSQLSessionMgr::mtl_init, ObTenantSQLSessionMgr::mtl_destroy); MTL_BIND2(ObTenantSQLSessionMgr::mtl_new, ObTenantSQLSessionMgr::mtl_init, nullptr, nullptr, nullptr, ObTenantSQLSessionMgr::mtl_destroy);
MTL_BIND2(mtl_new_default, ObDTLIntermResultManager::mtl_init, ObDTLIntermResultManager::mtl_start, MTL_BIND2(mtl_new_default, ObDTLIntermResultManager::mtl_init, ObDTLIntermResultManager::mtl_start,
ObDTLIntermResultManager::mtl_stop, ObDTLIntermResultManager::mtl_wait, ObDTLIntermResultManager::mtl_destroy); ObDTLIntermResultManager::mtl_stop, ObDTLIntermResultManager::mtl_wait, ObDTLIntermResultManager::mtl_destroy);
if (GCONF._enable_new_sql_nio && GCONF._enable_tenant_sql_net_thread) { if (GCONF._enable_new_sql_nio && GCONF._enable_tenant_sql_net_thread) {

View File

@ -138,10 +138,7 @@ public:
{ {
int ret = common::OB_SUCCESS; int ret = common::OB_SUCCESS;
uint64_t tenant_id = MTL_ID(); uint64_t tenant_id = MTL_ID();
pools = OB_NEW(ObPxPools, ObMemAttr(tenant_id, "PxPools")); if (OB_FAIL(pools->init(tenant_id))) {
if (OB_ISNULL(pools)) {
ret = common::OB_ALLOCATE_MEMORY_FAILED;
} else if (OB_FAIL(pools->init(tenant_id))) {
} }
return ret; return ret;
} }

View File

@ -155,6 +155,18 @@ void ObDMMultiDlist::pop_active_node(
} }
} }
int ObDetectManager::mtl_new(ObDetectManager *&dm)
{
int ret = OB_SUCCESS;
uint64_t tenant_id = MTL_ID();
dm = OB_NEW(ObDetectManager, ObMemAttr(tenant_id, "DetectManager"), tenant_id);
if (OB_ISNULL(dm)) {
ret = OB_ALLOCATE_MEMORY_FAILED;
LIB_LOG(WARN, "[DM] failed to alloc detect manager", K(ret));
}
return ret;
}
int ObDetectManager::mtl_init(ObDetectManager *&dm) int ObDetectManager::mtl_init(ObDetectManager *&dm)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
@ -165,11 +177,7 @@ int ObDetectManager::mtl_init(ObDetectManager *&dm)
if (is_meta_tenant(tenant_id)) { if (is_meta_tenant(tenant_id)) {
mem_factor = mem_factor * 0.01; mem_factor = mem_factor * 0.01;
} }
dm = OB_NEW(ObDetectManager, ObMemAttr(tenant_id, "DetectManager"), tenant_id); if (OB_FAIL(dm->init(GCTX.self_addr(), mem_factor))) {
if (OB_ISNULL(dm)) {
ret = OB_ALLOCATE_MEMORY_FAILED;
LIB_LOG(WARN, "[DM] failed to alloc detect manager", K(ret));
} else if (OB_FAIL(dm->init(GCTX.self_addr(), mem_factor))) {
LIB_LOG(WARN, "[DM] failed to init detect manager", K(ret)); LIB_LOG(WARN, "[DM] failed to init detect manager", K(ret));
} }
return ret; return ret;

View File

@ -110,6 +110,7 @@ private:
static const uint64_t ACTIVATE_DELAY_TIME = 5 * 1000L * 1000L; // dm only detects checkitems that have been present for at least "ACTIVATE_DELAY_TIME" seconds static const uint64_t ACTIVATE_DELAY_TIME = 5 * 1000L * 1000L; // dm only detects checkitems that have been present for at least "ACTIVATE_DELAY_TIME" seconds
public: public:
static int mtl_new(ObDetectManager *&dm);
static int mtl_init(ObDetectManager *&dm); static int mtl_init(ObDetectManager *&dm);
static void mtl_destroy(ObDetectManager *&dm); static void mtl_destroy(ObDetectManager *&dm);
public: public:

View File

@ -110,21 +110,10 @@ int ObPlanMonitorNodeList::mtl_init(ObPlanMonitorNodeList* &node_list)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
uint64_t tenant_id = lib::current_resource_owner_id(); uint64_t tenant_id = lib::current_resource_owner_id();
node_list = OB_NEW(ObPlanMonitorNodeList, ObMemAttr(tenant_id, MOD_LABEL));
if (nullptr == node_list) {
ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_WARN("failed to alloc memory for ObPlanMonitorNodeList", K(ret));
} else {
int64_t mem_limit = get_tenant_memory_limit(tenant_id); int64_t mem_limit = get_tenant_memory_limit(tenant_id);
if (OB_FAIL(node_list->init(tenant_id, mem_limit))) { if (OB_FAIL(node_list->init(tenant_id, mem_limit))) {
LOG_WARN("failed to init event list", K(ret)); LOG_WARN("failed to init event list", K(ret));
} }
}
if (OB_FAIL(ret) && node_list != nullptr) {
// cleanup
common::ob_delete(node_list);
node_list = nullptr;
}
return ret; return ret;
} }

View File

@ -389,8 +389,6 @@ using ObTableScanIteratorObjPool = common::ObServerObjectPool<oceanbase::storage
#define MTL_MEM_SIZE() share::ObTenantEnv::get_tenant()->unit_memory_size() #define MTL_MEM_SIZE() share::ObTenantEnv::get_tenant()->unit_memory_size()
// 注意MTL_BIND调用需要在租户创建之前,否则会导致租户创建时无法调用到绑定的函数。 // 注意MTL_BIND调用需要在租户创建之前,否则会导致租户创建时无法调用到绑定的函数。
#define MTL_BIND(INIT, DESTROY) \
share::ObTenantBase::mtl_bind_func(nullptr, INIT, nullptr, nullptr, nullptr, DESTROY);
#define MTL_BIND2(NEW, INIT, START, STOP, WAIT, DESTROY) \ #define MTL_BIND2(NEW, INIT, START, STOP, WAIT, DESTROY) \
share::ObTenantBase::mtl_bind_func(NEW, INIT, START, STOP, WAIT, DESTROY); share::ObTenantBase::mtl_bind_func(NEW, INIT, START, STOP, WAIT, DESTROY);

View File

@ -38,7 +38,7 @@ ObTenantDfc::ObTenantDfc(uint64_t tenant_id)
ObTenantDfc::~ObTenantDfc() ObTenantDfc::~ObTenantDfc()
{} {}
int ObTenantDfc::mtl_init(ObTenantDfc *&tenant_dfc) int ObTenantDfc::mtl_new(ObTenantDfc *&tenant_dfc)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
uint64_t tenant_id = MTL_ID(); uint64_t tenant_id = MTL_ID();
@ -47,7 +47,16 @@ int ObTenantDfc::mtl_init(ObTenantDfc *&tenant_dfc)
ret = OB_ALLOCATE_MEMORY_FAILED; ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_WARN("failed to alloc tenant dfc", K(ret)); LOG_WARN("failed to alloc tenant dfc", K(ret));
} else if (FALSE_IT(new (tenant_dfc) ObTenantDfc(tenant_id))) { } else if (FALSE_IT(new (tenant_dfc) ObTenantDfc(tenant_id))) {
} else { }
return ret;
}
int ObTenantDfc::mtl_init(ObTenantDfc *&tenant_dfc)
{
int ret = OB_SUCCESS;
uint64_t tenant_id = MTL_ID();
if (OB_SUCC(ret)) {
tenant_dfc->channel_total_cnt_ = 0; tenant_dfc->channel_total_cnt_ = 0;
tenant_dfc->blocked_dfc_cnt_ = 0; tenant_dfc->blocked_dfc_cnt_ = 0;
tenant_dfc->max_parallel_cnt_ = 0; tenant_dfc->max_parallel_cnt_ = 0;
@ -60,14 +69,6 @@ int ObTenantDfc::mtl_init(ObTenantDfc *&tenant_dfc)
// tenant_dfc->calc_max_buffer(10); // tenant_dfc->calc_max_buffer(10);
LOG_INFO("init tenant dfc", K(ret), K(tenant_dfc->tenant_id_)); LOG_INFO("init tenant dfc", K(ret), K(tenant_dfc->tenant_id_));
} }
if (OB_FAIL(ret)) {
if (nullptr != tenant_dfc) {
tenant_dfc->tenant_mem_mgr_.destroy();
common::ob_delete(tenant_dfc);
tenant_dfc = nullptr;
}
LOG_WARN("failed to mtl init", K(ret));
}
return ret; return ret;
} }

View File

@ -36,6 +36,7 @@ public:
ObTenantDfc(uint64_t tenant_id); ObTenantDfc(uint64_t tenant_id);
virtual ~ObTenantDfc(); virtual ~ObTenantDfc();
public: public:
static int mtl_new(ObTenantDfc *&tenant_dfc);
static int mtl_init(ObTenantDfc *&tenant_dfc); static int mtl_init(ObTenantDfc *&tenant_dfc);
static void mtl_destroy(ObTenantDfc *&tenant_dfc); static void mtl_destroy(ObTenantDfc *&tenant_dfc);

View File

@ -326,12 +326,10 @@ int ObTenantSqlMemoryManager::ObSqlWorkAreaCalcInfo::calculate_global_bound_size
return ret; return ret;
} }
//////////////////////////////////////////////////////////////////////////////////// int ObTenantSqlMemoryManager::mtl_new(ObTenantSqlMemoryManager *&sql_mem_mgr)
int ObTenantSqlMemoryManager::mtl_init(ObTenantSqlMemoryManager *&sql_mem_mgr)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
uint64_t tenant_id = MTL_ID(); uint64_t tenant_id = MTL_ID();
sql_mem_mgr = nullptr;
// 系统租户不创建 // 系统租户不创建
if (OB_MAX_RESERVED_TENANT_ID < tenant_id) { if (OB_MAX_RESERVED_TENANT_ID < tenant_id) {
sql_mem_mgr = OB_NEW(ObTenantSqlMemoryManager, sql_mem_mgr = OB_NEW(ObTenantSqlMemoryManager,
@ -339,7 +337,19 @@ int ObTenantSqlMemoryManager::mtl_init(ObTenantSqlMemoryManager *&sql_mem_mgr)
if (nullptr == sql_mem_mgr) { if (nullptr == sql_mem_mgr) {
ret = OB_ALLOCATE_MEMORY_FAILED; ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_WARN("failed to alloc tenant sql memory manager", K(ret)); LOG_WARN("failed to alloc tenant sql memory manager", K(ret));
} else if (OB_FAIL(sql_mem_mgr->allocator_.init( }
}
return ret;
}
////////////////////////////////////////////////////////////////////////////////////
int ObTenantSqlMemoryManager::mtl_init(ObTenantSqlMemoryManager *&sql_mem_mgr)
{
int ret = OB_SUCCESS;
uint64_t tenant_id = MTL_ID();
// 系统租户不init
if (OB_MAX_RESERVED_TENANT_ID < tenant_id) {
if (OB_FAIL(sql_mem_mgr->allocator_.init(
lib::ObMallocAllocator::get_instance(), lib::ObMallocAllocator::get_instance(),
OB_MALLOC_NORMAL_BLOCK_SIZE, OB_MALLOC_NORMAL_BLOCK_SIZE,
ObMemAttr(tenant_id, "SqlMemMgr")))) { ObMemAttr(tenant_id, "SqlMemMgr")))) {

View File

@ -584,6 +584,7 @@ public:
{} {}
~ObTenantSqlMemoryManager() {} ~ObTenantSqlMemoryManager() {}
public: public:
static int mtl_new(ObTenantSqlMemoryManager *&sql_mem_mgr);
static int mtl_init(ObTenantSqlMemoryManager *&sql_mem_mgr); static int mtl_init(ObTenantSqlMemoryManager *&sql_mem_mgr);
static void mtl_destroy(ObTenantSqlMemoryManager *&sql_mem_mgr); static void mtl_destroy(ObTenantSqlMemoryManager *&sql_mem_mgr);

View File

@ -81,11 +81,6 @@ namespace sql
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
uint64_t tenant_id = lib::current_resource_owner_id(); uint64_t tenant_id = lib::current_resource_owner_id();
span_mgr = OB_NEW(ObFLTSpanMgr, ObMemAttr(tenant_id, "SqlFltSpanRec"));
if (nullptr == span_mgr) {
ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_WARN("failed to alloc memory for ObMySQLRequestManager", K(ret));
} else {
int64_t mem_limit = lib::get_tenant_memory_limit(tenant_id); int64_t mem_limit = lib::get_tenant_memory_limit(tenant_id);
int64_t queue_size = MAX_QUEUE_SIZE; int64_t queue_size = MAX_QUEUE_SIZE;
if (OB_FAIL(span_mgr->init(tenant_id, mem_limit, queue_size))) { if (OB_FAIL(span_mgr->init(tenant_id, mem_limit, queue_size))) {
@ -93,12 +88,6 @@ namespace sql
} else { } else {
// do nothing // do nothing
} }
}
if (OB_FAIL(ret) && span_mgr != nullptr) {
// cleanup
common::ob_delete(span_mgr);
span_mgr = nullptr;
}
return ret; return ret;
} }

View File

@ -116,7 +116,7 @@ void ObTenantSQLSessionMgr::destroy()
{ {
} }
int ObTenantSQLSessionMgr::mtl_init(ObTenantSQLSessionMgr *&t_session_mgr) int ObTenantSQLSessionMgr::mtl_new(ObTenantSQLSessionMgr *&t_session_mgr)
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
t_session_mgr = OB_NEW(ObTenantSQLSessionMgr, ObMemAttr(MTL_ID(), "TSQLSessionMgr"), t_session_mgr = OB_NEW(ObTenantSQLSessionMgr, ObMemAttr(MTL_ID(), "TSQLSessionMgr"),
@ -124,7 +124,14 @@ int ObTenantSQLSessionMgr::mtl_init(ObTenantSQLSessionMgr *&t_session_mgr)
if (OB_ISNULL(t_session_mgr)) { if (OB_ISNULL(t_session_mgr)) {
ret = OB_ALLOCATE_MEMORY_FAILED; ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_WARN("failed to alloc tenant session manager", K(ret)); LOG_WARN("failed to alloc tenant session manager", K(ret));
} else if (OB_FAIL(t_session_mgr->init())) { }
return ret;
}
int ObTenantSQLSessionMgr::mtl_init(ObTenantSQLSessionMgr *&t_session_mgr)
{
int ret = OB_SUCCESS;
if (OB_FAIL(t_session_mgr->init())) {
LOG_WARN("failed to init tenant session manager", K(ret)); LOG_WARN("failed to init tenant session manager", K(ret));
} }
return ret; return ret;

View File

@ -376,6 +376,7 @@ public:
int init(); int init();
void destroy(); void destroy();
static int mtl_new(ObTenantSQLSessionMgr *&tenant_session_mgr);
static int mtl_init(ObTenantSQLSessionMgr *&tenant_session_mgr); static int mtl_init(ObTenantSQLSessionMgr *&tenant_session_mgr);
static void mtl_destroy(ObTenantSQLSessionMgr *&tenant_session_mgr); static void mtl_destroy(ObTenantSQLSessionMgr *&tenant_session_mgr);
ObSQLSessionInfo *alloc_session(); ObSQLSessionInfo *alloc_session();