Github user lirui-intel commented on the pull request:

    https://github.com/apache/spark/pull/892#issuecomment-45592572
  
    @kayousterhout - I've fixed how we compute valid locality levels and added 
some unit test.
    Now computeValidLocalityLevels considers a level as valid only if some 
executors are available to satisfy that level. And computeValidLocalityLevels 
is called every time new executor is added. (I'm not sure if it should also be 
called when executor is lost and when task finishes)
    I also modified how the allowed locality is determined slightly. Now 
allowedLocality is set to maxLocality if allowedLocality is greater and 
maxLocality is a valid level to this TaskSetManager. This may help avoid the 
problem you mentioned earlier (when RACK_LOCAL is the only valid level and we 
tries from PROCESS_LOCAL).
    Please help to review. Thanks.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to