Yida Wu created IMPALA-15586:
--------------------------------

             Summary: Auto tune cores per executor for COMPUTE_PROCESSING_COST
                 Key: IMPALA-15586
                 URL: https://issues.apache.org/jira/browse/IMPALA-15586
             Project: IMPALA
          Issue Type: Improvement
          Components: Backend
            Reporter: Yida Wu
            Assignee: Yida Wu


With COMPUTE_PROCESSING_COST=true, Impala decides how many fragment instances 
to run on each executor based on the total CPU cores the machine reports. It 
ignores container limits (like Docker/Kubernetes) and OS rules that restrict 
how many cores Impala can actually use. Because of this, Impala can assign too 
much work to restricted executors, which uses more memory, creates unnecessary 
threads, and makes queries slower. Today, the only fix is to set the core count 
by hand on every executor (--num_cores) or on every query 
(MAX_FRAGMENT_INSTANCES_PER_NODE).

We probably can add a new flag that automatically limits the maximum fragment 
instances per host during query planning. Instead of using raw hardware cores, 
the planner will use the executor's effective cores (which respects cgroup 
limits and CPU affinity) or its configured admission slots. This ensures Impala 
automatically scales query plans to fit the actual compute resources available 
to the container or process.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to