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

Bikas Saha commented on YARN-664:
---------------------------------

I don't think that this is invalid as far as the API is concerned. There might 
be reasons in the current implementations of the schedulers that may make 
supporting this prohibitive, and so it was not done.
Say an application is running 2 concurrent but unrelated items that should not 
be blocked by each other due to performance. Both have different resources 
sizes. If they are separated by priority then the lower priority item will not 
get any containers until all the containers for the higher priority item have 
been allocated. This is by definition of priority. That may lead to poor 
performance. So the app would want to run both at the same priority and expect 
the RM to allocate containers to both wherever resources are free to match them.
The most simple solution for the RM that I can think off the top of my head is 
to always use the largest resource size. It may lead to fragmentation but is 
safe. Currently, the last resource size is used. This means that if the client 
asks for 1GB and 2GB and the 1GB happens to be the last one set by the RM then 
the RM will return 2 1GB containers, which is wrong.
If we choose to use the largest value as a solution, then we should close this 
as invalid and use YARN-314 to implement that solution.
                
> throw InvalidRequestException for requests with different capabilities at the 
> same priority
> -------------------------------------------------------------------------------------------
>
>                 Key: YARN-664
>                 URL: https://issues.apache.org/jira/browse/YARN-664
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: resourcemanager, scheduler
>    Affects Versions: 2.0.4-alpha
>            Reporter: Sandy Ryza
>            Assignee: Sandy Ryza
>
> Nothing stops an application from submitting a request with priority=1, 
> location=*, memory=1024 and a request with priority=1, location=rack1, 
> memory=2048.  However, this does not make sense under the request model and 
> can cause bad things to happen in the scheduler.  It should be possible to 
> detect this at AMRM heartbeat time and throw an exception.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to