Wangda Tan commented on YARN-2877:

Thanks [~kkaranasos], [~asuresh],

I just caught up with latest design doc, my 2 cents:
There're two major purpose of distributed RM,  1) get better allocation latency 
2) leverage idle resources.

#1 will be achieved when
- AM -> LocalRM communication can be done within a single RPC call. (Doesn't do 
heartbeat like normal AM-RM allocation), otherwise it will be hard to achieve 
milli-seconds level latency.
- LocalRM has enough information to allocate resource on a NM which could be 
directly used without waiting. I think stochastic + caching some information of 
other LocalRM could solve the problem.

#2 can be achieved, but since the distributed RM solution doesn't have a global 
picture of resources and guaranteed containers can always preempt queueable 
containers. This could lead to excessive queueable containers preempted.
If we can decide where to allocate queueable container from RM, RM could avoid 
a lots of such preemptions. (Instead of allocating on a node has lots of 
queueable containers, allocate on node with "real" idle resources).
To me, this becomes a bigger issue if application wants to use opportunistic 
resources to run normal containers (such as a 10 min MR task). How to guarantee 
RM doesn't allocate more resources for a long time to LocalRM is a problem. IMO 
distributed RM is more suitable for short-lifed (few seconds) and low latency 

> Extend YARN to support distributed scheduling
> ---------------------------------------------
>                 Key: YARN-2877
>                 URL: https://issues.apache.org/jira/browse/YARN-2877
>             Project: Hadoop YARN
>          Issue Type: New Feature
>          Components: nodemanager, resourcemanager
>            Reporter: Sriram Rao
>            Assignee: Konstantinos Karanasos
>         Attachments: distributed-scheduling-design-doc_v1.pdf
> This is an umbrella JIRA that proposes to extend YARN to support distributed 
> scheduling.  Briefly, some of the motivations for distributed scheduling are 
> the following:
> 1. Improve cluster utilization by opportunistically executing tasks otherwise 
> idle resources on individual machines.
> 2. Reduce allocation latency.  Tasks where the scheduling time dominates 
> (i.e., task execution time is much less compared to the time required for 
> obtaining a container from the RM).

This message was sent by Atlassian JIRA

Reply via email to