[opt](memory) Optimize mem tracker accuracy (#32039) (#33140)

This commit is contained in:
Xinyi Zou
2024-04-02 09:24:36 +08:00
committed by yiguolei
parent 39fba884fb
commit cf7595d423
109 changed files with 852 additions and 487 deletions

View File

@ -23,6 +23,12 @@
namespace doris {
class MemTracker;
QueryThreadContext ThreadContext::query_thread_context() {
DCHECK(doris::pthread_context_ptr_init);
ORPHAN_TRACKER_CHECK();
return {_task_id, thread_mem_tracker_mgr->limiter_mem_tracker()};
}
AttachTask::AttachTask(const std::shared_ptr<MemTrackerLimiter>& mem_tracker,
const TUniqueId& task_id) {
ThreadLocalHandle::create_thread_local_if_not_exits();
@ -30,6 +36,12 @@ AttachTask::AttachTask(const std::shared_ptr<MemTrackerLimiter>& mem_tracker,
thread_context()->attach_task(task_id, mem_tracker);
}
AttachTask::AttachTask(const std::shared_ptr<MemTrackerLimiter>& mem_tracker) {
ThreadLocalHandle::create_thread_local_if_not_exits();
signal::set_signal_task_id(TUniqueId());
thread_context()->attach_task(TUniqueId(), mem_tracker);
}
AttachTask::AttachTask(RuntimeState* runtime_state) {
ThreadLocalHandle::create_thread_local_if_not_exits();
signal::set_signal_task_id(runtime_state->query_id());
@ -37,6 +49,13 @@ AttachTask::AttachTask(RuntimeState* runtime_state) {
thread_context()->attach_task(runtime_state->query_id(), runtime_state->query_mem_tracker());
}
AttachTask::AttachTask(const QueryThreadContext& query_thread_context) {
ThreadLocalHandle::create_thread_local_if_not_exits();
signal::set_signal_task_id(query_thread_context.query_id);
thread_context()->attach_task(query_thread_context.query_id,
query_thread_context.query_mem_tracker);
}
AttachTask::~AttachTask() {
thread_context()->detach_task();
ThreadLocalHandle::del_thread_local_if_count_is_zero();