[
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)