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 <impala-public-jenkins@cloudera.com>
Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
This commit is contained in:
Zoltan Borok-Nagy
2025-09-18 17:31:20 +02:00
committed by Impala Public Jenkins
parent 8a80ede69b
commit 9abbcf82ca

View File

@@ -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