github-actions[bot] commented on code in PR #67845:
URL: https://github.com/apache/doris/pull/67845#discussion_r4001753381
##########
be/src/runtime/workload_group/workload_group_manager.cpp:
##########
@@ -602,6 +602,21 @@ bool WorkloadGroupMgr::handle_process_memory_exceeded_(
return false;
}
+ // The process memory pressure may have been relieved by cache reclamation
or by other
+ // queries that finished. Check it before routing the query below,
otherwise a query in a
+ // workload group that uses less than its min memory limit has to wait for
the timeout.
+ const size_t test_memory_size = std::max<size_t>(query_it->reserve_size_,
32L * 1024 * 1024);
Review Comment:
[P1] Enforce the hard limit on the below-minimum route
The new hard-limit guard only runs after `total_mem_used() >
min_memory_limit()` routes into `handle_single_query_()`. For a process-paused
query at or below its WG minimum, with no overcommitted peer WG, this handler
instead falls through to the elapsed-only check and leaves the query blocked
for up to the default 60 seconds even when `is_exceed_hard_mem_limit()` is
already true. With the supported mutable `disable_memory_gc=true`, no daemon GC
cancels it during that interval. The hard-limit test uses 128 MiB against a 100
MiB minimum, so it never exercises this route. Please apply the hard-pressure
fallback after peer revocation returns zero and add a `total_mem_used() <=
min_memory_limit()` hard-limit case. This is distinct from the existing
hard-limit thread, which covers the above-minimum `handle_single_query_()`
branch.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]