[ 
https://issues.apache.org/jira/browse/YARN-4902?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15410294#comment-15410294
 ] 

Wangda Tan commented on YARN-4902:
----------------------------------

[~kkaranasos],

bq. LRA planning is much more than an implementation. Think of it as planning 
multiple applications at once. This is something that the scheduler cannot do, 
no matter what its implementation is...
I know the implementation of YARN-1051, I participated reviewing JIRAs of 
YARN-1051 from the beginning.
I would say we should have a unified API for client to use instead of continue 
adding new APIs. Breaking down APIs to different sets is especially bad for new 
feature incubation, this is one of the major reason we created YARN-4902. 
Planning more than one applications at once should be an enhancement inside 
scheduler instead of something visible by end user.
And I'm not sure if we should create a new LRA planner for that, if you're 
thinking to implement it using approach of YARN-1051, you may need to reserve a 
chunk of resources for "LRA scheduling". This approach may add additional 
latency to scheduling (since heavier computation) and reduce throughput (since 
additional resources need to be reserved). But this approach looks more 
reasonable while doing YARN-1051 -- it is straightforward reserve some 
resources for reservation system.
I also have mentioned partial-global-scheduling vs. global-optimal-scheduling 
in design doc of YARN-5139: 
https://issues.apache.org/jira/secure/attachment/12822180/YARN-5139-Global-Schedulingd-esign-and-implementation-notes.pdf.
 You can take a look at it if you're interested.
I can understand your proposal may look different from my guess above, we can 
discuss more once you have a more concrete design for that.
 
bq. I would say that it is the other way around..
I'm not care too much about if we should support cardinality via GUTS API or 
support anti-affinity via cardinality syntaxes. We should choose a more 
generic/extensible API which can support both.

And I just created a branch YARN-4902 and created sub task YARN-5478, we can 
discuss more about Java API definition in that JIRA.

> [Umbrella] Generalized and unified scheduling-strategies in YARN
> ----------------------------------------------------------------
>
>                 Key: YARN-4902
>                 URL: https://issues.apache.org/jira/browse/YARN-4902
>             Project: Hadoop YARN
>          Issue Type: New Feature
>            Reporter: Vinod Kumar Vavilapalli
>            Assignee: Wangda Tan
>         Attachments: Generalized and unified scheduling-strategies in YARN 
> -v0.pdf, LRA-scheduling-design.v0.pdf, YARN-5468.prototype.patch
>
>
> Apache Hadoop YARN's ResourceRequest mechanism is the core part of the YARN's 
> scheduling API for applications to use. The ResourceRequest mechanism is a 
> powerful API for applications (specifically ApplicationMasters) to indicate 
> to YARN what size of containers are needed, and where in the cluster etc.
> However a host of new feature requirements are making the API increasingly 
> more and more complex and difficult to understand by users and making it very 
> complicated to implement within the code-base.
> This JIRA aims to generalize and unify all such scheduling-strategies in YARN.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to