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

Wangda Tan commented on YARN-4287:
----------------------------------

Thanks for sharing your thoughts, [~nroberts]!

bq. iiuc, we didn't get good locality before the patch either. i.e. canAssign() 
would return true for NODE-LOCAL and OFF-SWITCH without delay. 
Yes, you're correct, I think we can safely use min(computed-offswitch, 
configured-offswitch) as final offswitch/rack delay.

bq. 1) I need to change the way rackLocalityDelay is specified because it 
doesn't handle the case where the configuration value is larger than the 
cluster size. I was thinking of just scaling it. Let's say 
node-locality-delay=5000, rack-locality-delay=5100, cluster_size is 3000. In 
the existing code, node-locality-delay would automatically get lowered to 3000. 
Instead, it will lower rack-locality-delay to 3000, and node-locality-delay 
will be proportionally adjusted (5000 * 3000 / 5100) = 2941. 
I think instead of scaling, I suggest to simply cap rack/offswitch delay by the 
cluster size, so:
- rack-delay = min(offswitch, node-locality-delay, cluserSize)
- offswitch-delay = min(offswitch, clusterSize)
The scaling behavior could be hard to explain to end users.

bq. 2) Add a configurable boolean that controls whether a rack-local assignment 
resets missed_opportunities to 0 (old behavior), OR node-locality-delay (new 
behavior). Default of new behavior.
This is fine to me since this is a configurable item and you have done tests 
for this change already.

> Capacity Scheduler: Rack Locality improvement
> ---------------------------------------------
>
>                 Key: YARN-4287
>                 URL: https://issues.apache.org/jira/browse/YARN-4287
>             Project: Hadoop YARN
>          Issue Type: Improvement
>          Components: capacityscheduler
>    Affects Versions: 2.7.1
>            Reporter: Nathan Roberts
>            Assignee: Nathan Roberts
>         Attachments: YARN-4287-v2.patch, YARN-4287-v3.patch, YARN-4287.patch
>
>
> YARN-4189 does an excellent job describing the issues with the current delay 
> scheduling algorithms within the capacity scheduler. The design proposal also 
> seems like a good direction.
> This jira proposes a simple interim solution to the key issue we've been 
> experiencing on a regular basis:
>  - rackLocal assignments trickle out due to nodeLocalityDelay. This can have 
> significant impact on things like CombineFileInputFormat which targets very 
> specific nodes in its split calculations.
> I'm not sure when YARN-4189 will become reality so I thought a simple interim 
> patch might make sense. The basic idea is simple: 
> 1) Separate delays for rackLocal, and OffSwitch (today there is only 1)
> 2) When we're getting rackLocal assignments, subsequent rackLocal assignments 
> should not be delayed
> Patch will be uploaded shortly. No big deal if the consensus is to go 
> straight to YARN-4189. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to