This is an automated email from the ASF dual-hosted git repository.
michaelsmith pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git
The following commit(s) were added to refs/heads/master by this push:
new 9abbcf82c IMPALA-14451: Log if memory-based admission is skipped
9abbcf82c is described below
commit 9abbcf82ca2576c4523ff6a3a8c9fcd48fd889fe
Author: Zoltan Borok-Nagy <[email protected]>
AuthorDate: Thu Sep 18 17:31:20 2025 +0200
IMPALA-14451: Log if memory-based admission is skipped
When admission control is enabled, but max memory for pool is not
configured, Impala skips memory-based admission completely, i.e. it
doesn't even take available host memory into account.
This behavior can lead to admitting many queries with large memory
consumption, potentially causing query failures due to memory
exhaustion.
Fixing the above behavior might cause regressions in some workloads,
so this patch just adds a new log message which makes it clear why
a query gets admitted, and also mentions possible failures.
Change-Id: Ib98482abc0fbcb53552adfd89cf6d157b17527fd
Reviewed-on: http://gerrit.cloudera.org:8080/23438
Reviewed-by: Impala Public Jenkins <[email protected]>
Tested-by: Impala Public Jenkins <[email protected]>
---
be/src/scheduling/admission-controller.cc | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/be/src/scheduling/admission-controller.cc
b/be/src/scheduling/admission-controller.cc
index 38623df60..b31d83a5c 100644
--- a/be/src/scheduling/admission-controller.cc
+++ b/be/src/scheduling/admission-controller.cc
@@ -1055,7 +1055,13 @@ bool AdmissionController::HasAvailableMemResources(const
ScheduleState& state,
const string& pool_name = state.request_pool();
const int64_t pool_max_mem = GetMaxMemForPool(pool_cfg);
// If the pool doesn't have memory resources configured, always true.
- if (pool_max_mem < 0) return true;
+ if (pool_max_mem < 0) {
+ VLOG_QUERY << Substitute("Pool '$0' doesn't have Max Memory configured,
therefore "
+ "Impala skips memory-based query admission. This can result in query
failures "
+ "due to memory exhaustion, therefore we highly recommend setting Max
Memory "
+ "to a positive value for you resource pools.", pool_name);
+ return true;
+ }
// Otherwise, two conditions must be met:
// 1) The memory estimated to be reserved by all queries in this pool *plus*
the total