Sunil G commented on YARN-3136:

Yes Jason, 

Current lock is very big for allocate and registerApplicationMaster calls, and 
its good to have much smaller locks in that area.

*getTransferredContainers* is already synchronized under AbstractYarnScheduler. 
To fill RegisterApplicationMasterResponse, still some methods from 
AbstractYarnScheduler are not locked in scheduler level. If that can be done, 
then it will be safer atleast to take RegisterApplicationMasterResponse filling 
part of code.

> getTransferredContainers can be a bottleneck during AM registration
> -------------------------------------------------------------------
>                 Key: YARN-3136
>                 URL: https://issues.apache.org/jira/browse/YARN-3136
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: scheduler
>    Affects Versions: 2.6.0
>            Reporter: Jason Lowe
> While examining RM stack traces on a busy cluster I noticed a pattern of AMs 
> stuck waiting for the scheduler lock trying to call getTransferredContainers. 
>  The scheduler lock is highly contended, especially on a large cluster with 
> many nodes heartbeating, and it would be nice if we could find a way to 
> eliminate the need to grab this lock during this call.  We've already done 
> similar work during AM allocate calls to make sure they don't needlessly grab 
> the scheduler lock, and it would be good to do so here as well, if possible.

This message was sent by Atlassian JIRA

Reply via email to