From 8087ef9cb9618db90da1c30b00d366eaf87485dd Mon Sep 17 00:00:00 2001 From: Gabriel Date: Tue, 15 Oct 2024 11:42:38 +0800 Subject: [PATCH 1/2] [Improvement](minor) Reduce locking scope --- be/src/runtime/fragment_mgr.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/be/src/runtime/fragment_mgr.cpp b/be/src/runtime/fragment_mgr.cpp index 3f8e762408cc71..0087fdce2493bb 100644 --- a/be/src/runtime/fragment_mgr.cpp +++ b/be/src/runtime/fragment_mgr.cpp @@ -574,11 +574,15 @@ Status FragmentMgr::exec_plan_fragment(const TPipelineFragmentParams& params, } Status FragmentMgr::start_query_execution(const PExecPlanFragmentStartRequest* request) { - std::lock_guard lock(_lock); - TUniqueId query_id; - query_id.__set_hi(request->query_id().hi()); - query_id.__set_lo(request->query_id().lo()); - if (auto q_ctx = _get_or_erase_query_ctx(query_id)) { + std::shared_ptr q_ctx = nullptr; + { + std::lock_guard lock(_lock); + TUniqueId query_id; + query_id.__set_hi(request->query_id().hi()); + query_id.__set_lo(request->query_id().lo()); + q_ctx = _get_or_erase_query_ctx(query_id) + } + if (q_ctx) { q_ctx->set_ready_to_execute(Status::OK()); } else { return Status::InternalError( From b0e56f8cb5e4ebc2cea0d71cf85b55d81ce99cbd Mon Sep 17 00:00:00 2001 From: Gabriel Date: Tue, 15 Oct 2024 12:26:51 +0800 Subject: [PATCH 2/2] update --- be/src/runtime/fragment_mgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/be/src/runtime/fragment_mgr.cpp b/be/src/runtime/fragment_mgr.cpp index 0087fdce2493bb..008f92cfef82ff 100644 --- a/be/src/runtime/fragment_mgr.cpp +++ b/be/src/runtime/fragment_mgr.cpp @@ -580,7 +580,7 @@ Status FragmentMgr::start_query_execution(const PExecPlanFragmentStartRequest* r TUniqueId query_id; query_id.__set_hi(request->query_id().hi()); query_id.__set_lo(request->query_id().lo()); - q_ctx = _get_or_erase_query_ctx(query_id) + q_ctx = _get_or_erase_query_ctx(query_id); } if (q_ctx) { q_ctx->set_ready_to_execute(Status::OK());