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

Wangda Tan commented on YARN-9879:
----------------------------------

[~pbacsko], thanks for working on the design. 

In general, I agree with what [~wilfreds] mentioned: we should try to avoid 
change RPC protocols, instead we just change internal logic to make sure 
multiple queues can be handled.

To me there're two major parts:

1) Whatever logic inside CS to allow multiple queue names. Either solution 
mentioned in the comment: 
https://issues.apache.org/jira/browse/YARN-9879?focusedCommentId=17009845&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17009845
 should be fine. And I expect the lookup of queue name (not queue path) should 
only be called when submit application.

And once application is submitted to CS, internal to CS, we should make sure we 
use queue path instead of queue name at all other places. Otherwise we will 
complicate other logics.

2) When submit app, the scheduler going to accept/reject app based on the 
uniqueness of queue name or path specified. The core part need to be changed is 
inside RMAppManager:
{code:java}
 if (!isRecovery && YarnConfiguration.isAclEnabled(conf)) {
  if (scheduler instanceof CapacityScheduler) {
    String queueName = submissionContext.getQueue();
    String appName = submissionContext.getApplicationName();
    CSQueue csqueue = ((CapacityScheduler) scheduler).getQueue(queueName);{code}
Instead of using scheduler.getQueue, we may need to consider to add a method 
like getAppSubmissionQueue() to get a queue based on path or name, and after 
that, we will put normalized queue_path back to submission context of 
application to make sure in the future inside scheduler we all refer to queue 
path.

For the comment from [~wilfreds]: 
{quote}The important part is applying a new configuration. If the configuration 
adds a leaf queue that is not unique the configuration update currently is 
rejected. With this change we would allow that config to become active. This 
*could* break existing applications when they try to submit to the leaf queue 
that is no longer unique.
{quote}
I personally think it is not a big deal if application reject reasons from RM 
can clearly guide users to use full qualified queue path when duplicated queue 
names exists. It is like if a team has only one Peter we can use the first name 
only otherwise we will add last name to avoid confusion. It isn't 
counter-intuitive to me.

Also, we need to handle queue mapping for queue-path instead of queue name 
also, I didn't see it from the design doc or I missed it.

> Allow multiple leaf queues with the same name in CS
> ---------------------------------------------------
>
>                 Key: YARN-9879
>                 URL: https://issues.apache.org/jira/browse/YARN-9879
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Gergely Pollak
>            Assignee: Gergely Pollak
>            Priority: Major
>         Attachments: DesignDoc_v1.pdf
>
>
> Currently the leaf queue's name must be unique regardless of its position in 
> the queue hierarchy. 
> Design doc and first proposal is being made, I'll attach it as soon as it's 
> done.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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