From d3d110b7663702c6c8d54c914f63d15113d75a45 Mon Sep 17 00:00:00 2001 From: ms Date: Wed, 16 Jun 2021 11:51:12 +0800 Subject: [PATCH] remove memstore limit for inner table --- src/share/allocator/ob_gmemstore_allocator.cpp | 4 +++- src/storage/memtable/ob_memtable.cpp | 2 +- src/storage/memtable/ob_memtable.h | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/share/allocator/ob_gmemstore_allocator.cpp b/src/share/allocator/ob_gmemstore_allocator.cpp index 63149c9874..66bc671f84 100644 --- a/src/share/allocator/ob_gmemstore_allocator.cpp +++ b/src/share/allocator/ob_gmemstore_allocator.cpp @@ -93,7 +93,9 @@ void* ObGMemstoreAllocator::alloc(AllocHandle& handle, int64_t size) hlist_.set_active(handle); } } - if (OB_FAIL(ObTenantManager::get_instance().check_tenant_out_of_memstore_limit(tenant_id, is_out_of_mem))) { + if (handle.mt_.is_inner_table()) { + // inner table memory not limited by memstore + } else if (OB_FAIL(ObTenantManager::get_instance().check_tenant_out_of_memstore_limit(tenant_id, is_out_of_mem))) { COMMON_LOG(ERROR, "fail to check tenant out of mem limit", K(ret), K(tenant_id)); is_out_of_mem = true; } else if (is_out_of_mem && REACH_TIME_INTERVAL(1 * 1000 * 1000)) { diff --git a/src/storage/memtable/ob_memtable.cpp b/src/storage/memtable/ob_memtable.cpp index c6632019af..285079e561 100644 --- a/src/storage/memtable/ob_memtable.cpp +++ b/src/storage/memtable/ob_memtable.cpp @@ -2634,7 +2634,7 @@ int ObMemtable::check_standby_cluster_schema_condition_( // user tables of normal tenants(not sys tenant) need to be checked by schema version of // itself; // sys tables of normal tenants(not sys tenant) need to be checked by schema version of sys tenent; - uint64_t referred_tenant_id = is_inner_table(table_id) ? OB_SYS_TENANT_ID : tenant_id; + uint64_t referred_tenant_id = common::is_inner_table(table_id) ? OB_SYS_TENANT_ID : tenant_id; int64_t tenant_schema_version = 0; if (OB_FAIL(GSCHEMASERVICE.get_tenant_refreshed_schema_version(referred_tenant_id, tenant_schema_version))) { TRANS_LOG(WARN, diff --git a/src/storage/memtable/ob_memtable.h b/src/storage/memtable/ob_memtable.h index e2f40198c6..7bbee27d47 100644 --- a/src/storage/memtable/ob_memtable.h +++ b/src/storage/memtable/ob_memtable.h @@ -256,6 +256,7 @@ class ObMemtable : public ObIMemtable { virtual int get_frozen_schema_version(int64_t& schema_version) const override; virtual bool is_frozen_memtable() const override; virtual bool is_active_memtable() const override; + virtual bool is_inner_table() const { return common::is_inner_table(key_.table_id_); } int set_snapshot_version(const int64_t snapshot_version); int set_base_version(const int64_t base_version); int set_start_log_ts(const int64_t start_ts); -- GitLab