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

Naganarasimha G R commented on YARN-4425:
-----------------------------------------

Hi [~leftnoteasy],
Yes some of the interface methods can be further debated. But i tried to keep 
them to solve specific needs.
bq. The new added policy seems like a backdoor of scheduler's capacity 
management: when under "NON_EXCLUSIVE" mode, scheduler completely depends on 
configured policy to decide who can get next resources.
Yes i agree its a backdoor but still i feel this necessary to support features 
like hierarchical labels, consider one of the tenants in multi tenant 
environment who has batch and query load which requires diff kinds of 
nodes(hence the labels). And further query load will be totally nill during off 
peak hours and only during these hours they want to share the load to batch 
loading(under the same tenant). Currently this cannot be acheived through the 
existing label functionality and its very practical scenario which we are 
facing. And secondly for one of our scenarios query/batch processing pre 
emption is less desirable. So we require control to decide when to use the 
shared resources from other partitions(like only when resource crunch in 
existing partition use resources of other partition) . Hence i exposed those 
interfaces.

bq. And we need to make API of policy with more clear semantic: In existing 
scheduler, resource will be allocated on requested partition, and only 
request.partition = "" can get chance to allocate on other partitions when 
non-exclusive criteria is met.
In the new API, resource could be allocated on any partition regardless of 
requested partition. (depends on different policy implementation). Which will 
be conflict to our existing APIs for node partitions.
I have taken care in the current patch such the default behaviors of exclusive 
and nonexclusive partitions are not broken. And only for a specific partition 
policy is enabled then it starts behaving as per the policy. I did this based 
on your earlier 
[comment|https://issues.apache.org/jira/browse/YARN-4425?focusedCommentId=15053213&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15053213].

bq. To me, sharing resource between partitions itself is not a clear API:
Hmm but in a way we are already doing it now by sharing resources of non 
exclusive to default. But the scope is very limited and current sharing doesnt 
solve the scenarios which i have captured in the doc.

bq. Queue's shares of partitions could be dynamically adjusted, OR
Yes these are good to have but if there are thousands of queues to adjust for 
one queue how to adjust others ? IMHO it would have lot more complexities.

bq. Node's partition could be dynamically update
Well i see some complexities here too, suppose there is high end node marked 
for Query Label and now load for query is not there then manually(or 
externally) some one needs to modify the label to BatchLoad and after 
particular time then we redo this operation. So practically this needs to be 
handled externally instead based on policy i try to acheive the same thing 
transparently from inside. Thoughts?

I agree i have included lot of API's in the interface but open to scale it down 
and also we can make this as private interface and expose one configurable 
interface like the one given in the patch.  Thoughts? 

Would also like to know the views of [~jianhe], [~vinodkv] and any other folks 
already using labels.


> Pluggable sharing policy for Partition Node Label resources
> -----------------------------------------------------------
>
>                 Key: YARN-4425
>                 URL: https://issues.apache.org/jira/browse/YARN-4425
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: capacity scheduler, resourcemanager
>            Reporter: Naganarasimha G R
>            Assignee: Naganarasimha G R
>         Attachments: ResourceSharingPolicyForNodeLabelsPartitions-V1.pdf, 
> ResourceSharingPolicyForNodeLabelsPartitions-V2.pdf, 
> YARN-4425.20160105-1.patch
>
>
> As part of support for sharing NonExclusive Node Label partitions in 
> YARN-3214, NonExclusive partitions are shared only to Default Partitions and 
> also have fixed rule when apps in default partitions makes use of resources 
> of any NonExclusive partitions.
> There are many scenarios where in we require pluggable policy like 
> MutliTenant, Hierarchical etc.. where in each partition can determine when 
> they want to share the resources to other paritions and when other partitions 
> wants to use resources from others
> More details in the attached document.



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

Reply via email to