liupengcheng created SPARK-31107:
------------------------------------

             Summary: Extend FairScheduler to support pool level resource 
isolation
                 Key: SPARK-31107
                 URL: https://issues.apache.org/jira/browse/SPARK-31107
             Project: Spark
          Issue Type: Improvement
          Components: Spark Core
    Affects Versions: 3.0.0
            Reporter: liupengcheng


Currently, spark only provided two types of scheduler: FIFO & FAIR, but in sql 
high-concurrency scenarios, a few of drawbacks are exposed.

FIFO: it can easily causing congestion when large sql query occupies all the 
resources

FAIR: the taskSets of one pool may occupies all the resource due to there are 
no hard limit on the maximum usage for each pool.  this case may be frequently 
met under high workloads.

So we propose to add a maxShare argument for FairScheduler to control the 
maximum running tasks for each pool.

One thing that needs our attention is that we should handle it well to make the 
`ExecutorAllocationManager` can release resources:
 e.g. Suppose we got 100 executors, if the tasks are scheduled on all executors 
with max concurrency 50, there are cases that the executors may not idle, and 
can not be released.

One idea is to bind those executors to each pool, then we only schedule tasks 
on executors of the pool which it belongs to.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to