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

Wangda Tan commented on YARN-7117:
----------------------------------

Thanks [~suma.shivaprasad] for promptly working on the prototype. Reviewed and 
had several long offline discussions with Suma, 

*Some high level comments*:

1) The AutoCreatedParentQueue/LeafQueue are too similar to PlanQueue and 
ReservationQueue, suggest to merge the two implementations.
2) It is a good idea to keep logics to do capacity management to a separate 
module (which implements SchedulingEditPolicy). However currently 
SchedulingEditPolicy needs to be preconfigured and cannot be turned on/off at 
runtime. We need to improve that part before using SchedulingEditPolicy. 
3) There're lots of common logics between ProportionalCapacityPreemptionPolicy 
and the new added SchedulingEditPolicy, it's better to merge at least clone 
queues logics / data structures and libraries to a common abstract class. 

*Regarding to development, I think we can break down this JIRA to following sub 
tasks:*

a. Rename ReservationQueue/PlanQueue to a different name (with as less as 
possible logic changes), which can be used to implement this feature. (no 
dependency)

b. Implement Queue Mapping / Queue Creation logics which covers: Get 
applications queue mapping and auto create leaf queues. Reject application if 
leaf queue creation failed. (depends on a.)

c. SchedulingEditPolicy changes to make it refreshable and can be turned on/off 
while scheduler is running. (Which is tracked by YARN-7370), no dependency.

d. Move clone queues method / data structure / libaries from 
ProportionalCapacityPreemptionPolicy to a common parent class. (no dependency)

e. Add SchedulingEditPolicy framework and implementation to adjust capacities 
and states of sub queues. (depends on a/d)

*Regarding to development in branch v.s. development in trunk*: 

Since a/c/d are all clean up / refactoring tasks not specific to this task, I 
prefer to do them directly on trunk.
And after b, this feature is already end-to-end completed, I prefer to do b/e 
on trunk as well to avoid overheads of feature branch.

[~curino] / [~jlowe] / [~subru], could you add your suggestions to the attached 
prototype (See outlined workflow: 
https://issues.apache.org/jira/secure/attachment/12893355/YARN-7117_Workflow.pdf)
 and plans?

> Capacity Scheduler: Support Auto Creation of Leaf Queues While Doing Queue 
> Mapping
> ----------------------------------------------------------------------------------
>
>                 Key: YARN-7117
>                 URL: https://issues.apache.org/jira/browse/YARN-7117
>             Project: Hadoop YARN
>          Issue Type: New Feature
>          Components: capacity scheduler
>            Reporter: Wangda Tan
>            Assignee: Suma Shivaprasad
>         Attachments: 
> YARN-7117.Capacity.Scheduler.Support.Auto.Creation.Of.Leaf.Queue.pdf, 
> YARN-7117.poc.1.patch, YARN-7117.poc.patch, YARN-7117_Workflow.pdf
>
>
> Currently Capacity Scheduler doesn't support auto creation of queues when 
> doing queue mapping. We saw more and more use cases which has complex queue 
> mapping policies configured to handle application to queues mapping. 
> The most common use case of CapacityScheduler queue mapping is to create one 
> queue for each user/group. However update {{capacity-scheduler.xml}} and 
> {{RMAdmin:refreshQueues}} needs to be done when new user/group onboard. One 
> of the option to solve the problem is automatically create queues when new 
> user/group arrives.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to