Craig Welch commented on YARN-1198:
Opened [YARN-2644] Will fix the long lines. The QueueHeadroomInfo is being
handled this way because it is actually changed by any app in the queue where
the headroom call occurs and it is shared by all of the application headroom
provider instances - intentionally, so that they always pickup the lastest
values during their final calculation during allocate/getHeadroom in the
application - so it can't be created anew, it needs to be maintained at a
queue-level and shared. The queue itself cannot be synchronized on in the
allocate() call (the application getHeadroom), but we do need to assure the
values are coherent, so the queueinfo is.
I'll fix the formatting and upload on [YARN-2644]
> Capacity Scheduler headroom calculation does not work as expected
> Key: YARN-1198
> URL: https://issues.apache.org/jira/browse/YARN-1198
> Project: Hadoop YARN
> Issue Type: Bug
> Reporter: Omkar Vinit Joshi
> Assignee: Craig Welch
> Attachments: YARN-1198.1.patch, YARN-1198.10.patch,
> YARN-1198.11-with-1857.patch, YARN-1198.11.patch,
> YARN-1198.12-with-1857.patch, YARN-1198.2.patch, YARN-1198.3.patch,
> YARN-1198.4.patch, YARN-1198.5.patch, YARN-1198.6.patch, YARN-1198.7.patch,
> YARN-1198.8.patch, YARN-1198.9.patch
> Today headroom calculation (for the app) takes place only when
> * New node is added/removed from the cluster
> * New container is getting assigned to the application.
> However there are potentially lot of situations which are not considered for
> this calculation
> * If a container finishes then headroom for that application will change and
> should be notified to the AM accordingly.
> * If a single user has submitted multiple applications (app1 and app2) to the
> same queue then
> ** If app1's container finishes then not only app1's but also app2's AM
> should be notified about the change in headroom.
> ** Similarly if a container is assigned to any applications app1/app2 then
> both AM should be notified about their headroom.
> ** To simplify the whole communication process it is ideal to keep headroom
> per User per LeafQueue so that everyone gets the same picture (apps belonging
> to same user and submitted in same queue).
> * If a new user submits an application to the queue then all applications
> submitted by all users in that queue should be notified of the headroom
> * Also today headroom is an absolute number ( I think it should be normalized
> but then this is going to be not backward compatible..)
> * Also when admin user refreshes queue headroom has to be updated.
> These all are the potential bugs in headroom calculations
This message was sent by Atlassian JIRA