mirror of
https://github.com/apache/impala.git
synced 2025-12-19 18:12:08 -05:00
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:
committed by
Impala Public Jenkins
parent
8a80ede69b
commit
9abbcf82ca
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user