Skip to content

Commit 1c44839

Browse files
committed
update
1 parent b82cdcc commit 1c44839

File tree

4 files changed

+87
-24
lines changed

4 files changed

+87
-24
lines changed

be/src/runtime/fragment_mgr.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1354,6 +1354,7 @@ Status FragmentMgr::merge_filter(const PMergeFilterRequest* request,
13541354
query_id.__set_hi(queryid.hi);
13551355
query_id.__set_lo(queryid.lo);
13561356
if (auto q_handle = _query_handle_map.find(query_id); q_handle != nullptr) {
1357+
SCOPED_ATTACH_TASK(q_handle->resource_ctx());
13571358
if (!q_handle->get_merge_controller_handler()) {
13581359
return Status::InternalError("Merge filter failed: Merge controller handler is null");
13591360
}

be/src/runtime/query_context.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,7 @@ class QueryContext : public std::enable_shared_from_this<QueryContext> {
290290

291291
private:
292292
friend class QueryTaskController;
293+
friend class QueryHandle;
293294

294295
int _timeout_second;
295296
TUniqueId _query_id;

be/src/runtime/query_handle.cpp

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
// Licensed to the Apache Software Foundation (ASF) under one
2+
// or more contributor license agreements. See the NOTICE file
3+
// distributed with this work for additional information
4+
// regarding copyright ownership. The ASF licenses this file
5+
// to you under the Apache License, Version 2.0 (the
6+
// "License"); you may not use this file except in compliance
7+
// with the License. You may obtain a copy of the License at
8+
//
9+
// http://www.apache.org/licenses/LICENSE-2.0
10+
//
11+
// Unless required by applicable law or agreed to in writing,
12+
// software distributed under the License is distributed on an
13+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
// KIND, either express or implied. See the License for the
15+
// specific language governing permissions and limitations
16+
// under the License.
17+
18+
#include "runtime/query_handle.h"
19+
20+
#include "runtime/query_context.h"
21+
22+
namespace doris {
23+
24+
QueryHandle::QueryHandle(TUniqueId query_id, TQueryOptions query_options,
25+
std::weak_ptr<QueryContext> query_ctx)
26+
: _query_id(std::move(query_id)),
27+
_query_options(std::move(query_options)),
28+
_query_ctx(std::move(query_ctx)) {
29+
CHECK(_query_ctx.lock() != nullptr);
30+
_resource_ctx = _query_ctx.lock()->_resource_ctx;
31+
}
32+
33+
QueryHandle::~QueryHandle() = default;
34+
35+
std::string QueryHandle::debug_string() const {
36+
return fmt::format(
37+
"QueryHandle(query_id={}): {}", print_id(_query_id),
38+
_merge_controller_handler ? _merge_controller_handler->debug_string() : "null");
39+
}
40+
41+
void QueryHandle::set_merge_controller_handler(
42+
std::shared_ptr<RuntimeFilterMergeControllerEntity>& handler) {
43+
_merge_controller_handler = handler;
44+
}
45+
std::shared_ptr<RuntimeFilterMergeControllerEntity> QueryHandle::get_merge_controller_handler()
46+
const {
47+
return _merge_controller_handler;
48+
}
49+
50+
const TQueryOptions& QueryHandle::query_options() const {
51+
return _query_options;
52+
}
53+
54+
std::weak_ptr<QueryContext> QueryHandle::weak_query_ctx() const {
55+
return _query_ctx;
56+
}
57+
58+
int QueryHandle::execution_timeout() const {
59+
return _query_options.__isset.execution_timeout ? _query_options.execution_timeout
60+
: _query_options.query_timeout;
61+
}
62+
63+
TUniqueId QueryHandle::query_id() const {
64+
return _query_id;
65+
}
66+
67+
std::shared_ptr<ResourceContext> QueryHandle::resource_ctx() const {
68+
return _resource_ctx;
69+
}
70+
71+
} // namespace doris

be/src/runtime/query_handle.h

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -39,41 +39,31 @@ class QueryHandle;
3939
class QueryHandle {
4040
public:
4141
QueryHandle(TUniqueId query_id, TQueryOptions query_options,
42-
std::weak_ptr<QueryContext> query_ctx)
43-
: _query_id(std::move(query_id)),
44-
_query_options(std::move(query_options)),
45-
_query_ctx(std::move(query_ctx)) {}
46-
~QueryHandle() = default;
42+
std::weak_ptr<QueryContext> query_ctx);
43+
~QueryHandle();
4744

48-
std::string debug_string() const {
49-
return fmt::format(
50-
"QueryHandle(query_id={}): {}", print_id(_query_id),
51-
_merge_controller_handler ? _merge_controller_handler->debug_string() : "null");
52-
}
45+
std::string debug_string() const;
5346

54-
void set_merge_controller_handler(
55-
std::shared_ptr<RuntimeFilterMergeControllerEntity>& handler) {
56-
_merge_controller_handler = handler;
57-
}
58-
std::shared_ptr<RuntimeFilterMergeControllerEntity> get_merge_controller_handler() const {
59-
return _merge_controller_handler;
60-
}
47+
void set_merge_controller_handler(std::shared_ptr<RuntimeFilterMergeControllerEntity>& handler);
48+
std::shared_ptr<RuntimeFilterMergeControllerEntity> get_merge_controller_handler() const;
6149

62-
const TQueryOptions& query_options() const { return _query_options; }
50+
const TQueryOptions& query_options() const;
6351

64-
std::weak_ptr<QueryContext> weak_query_ctx() const { return _query_ctx; }
52+
std::weak_ptr<QueryContext> weak_query_ctx() const;
6553

66-
int execution_timeout() const {
67-
return _query_options.__isset.execution_timeout ? _query_options.execution_timeout
68-
: _query_options.query_timeout;
69-
}
54+
int execution_timeout() const;
7055

71-
TUniqueId query_id() const { return _query_id; }
56+
TUniqueId query_id() const;
57+
58+
std::shared_ptr<ResourceContext> resource_ctx() const;
7259

7360
private:
7461
TUniqueId _query_id;
7562
TQueryOptions _query_options;
7663
std::weak_ptr<QueryContext> _query_ctx;
64+
65+
std::shared_ptr<ResourceContext> _resource_ctx;
66+
7767
// This shared ptr is never used. It is just a reference to hold the object.
7868
// There is a weak ptr in runtime filter manager to reference this object.
7969
std::shared_ptr<RuntimeFilterMergeControllerEntity> _merge_controller_handler;

0 commit comments

Comments
 (0)