From 30f03df8402fb1c04bfd69c5f282b81d8de2d78a Mon Sep 17 00:00:00 2001 From: obdev Date: Thu, 14 Sep 2023 05:10:41 +0000 Subject: [PATCH] Fix inner sql implicit 500 tenant memory usage --- src/observer/ob_inner_sql_connection.cpp | 1 + src/observer/ob_inner_sql_rpc_processor.cpp | 1 + src/observer/ob_inner_sql_rpc_proxy.h | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/src/observer/ob_inner_sql_connection.cpp b/src/observer/ob_inner_sql_connection.cpp index f96e608f6..fe404409e 100644 --- a/src/observer/ob_inner_sql_connection.cpp +++ b/src/observer/ob_inner_sql_connection.cpp @@ -1049,6 +1049,7 @@ int ObInnerSQLConnection::start_transaction_inner( } else if (OB_FAIL(arg.set_tz_info_wrap(get_session().get_tz_info_wrap()))) { LOG_WARN("fail to set tz info wrap", K(ret)); } else if (FALSE_IT(handler->get_result()->set_conn_id(OB_INVALID_ID))) { + } else if (FALSE_IT(handler->get_result()->set_tenant_id(get_session().get_effective_tenant_id()))) { } else if (OB_FAIL(GCTX.inner_sql_rpc_proxy_->to(resource_server_addr).by(tenant_id). timeout(query_timeout).group_id(group_id_). inner_sql_sync_transmit( diff --git a/src/observer/ob_inner_sql_rpc_processor.cpp b/src/observer/ob_inner_sql_rpc_processor.cpp index 20bbff31d..b8a42422d 100644 --- a/src/observer/ob_inner_sql_rpc_processor.cpp +++ b/src/observer/ob_inner_sql_rpc_processor.cpp @@ -294,6 +294,7 @@ int ObInnerSqlRpcP::process() sqlclient::ObISQLConnection *conn = NULL; observer::ObInnerSQLConnection *inner_conn = NULL; observer::ObResourceInnerSQLConnectionPool *pool = gctx_.res_inner_conn_pool_; + transmit_result.set_tenant_id(transmit_arg.get_tenant_id()); common::ObScanner &scanner = transmit_result.get_scanner(); scanner.get_row_store().set_use_compact(false); scanner.get_datum_store().set_dumped(false); // just for serializing diff --git a/src/observer/ob_inner_sql_rpc_proxy.h b/src/observer/ob_inner_sql_rpc_proxy.h index 982e5e53b..1985ffe28 100644 --- a/src/observer/ob_inner_sql_rpc_proxy.h +++ b/src/observer/ob_inner_sql_rpc_proxy.h @@ -219,6 +219,11 @@ public: int copy_field_columns(const common::ObIArray &field_columns); void reset_field_columns() { field_columns_.reset(); } ; const common::ObSArray &get_field_columns() { return field_columns_; }; + void set_tenant_id(uint64_t tenant_id) + { + scanner_.set_tenant_id(tenant_id); + allocator_.set_tenant_id(tenant_id); + } void reset() {