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

Sandy Ryza commented on YARN-568:
---------------------------------

Hi Carlo,

I just looked over your patch.  It's looking good.  Glad that this is getting 
added to the fair scheduler.

Here's my understanding of how fair scheduler preemption works with and without 
the patch, so that we have some common ground to stand on when talking about 
it: every preemptionInterval seconds, the fair scheduler checks to see whether 
anyone is starved for their shares, and then kills containers until the killed 
containers' resources sum up to the amount that the apps were behind.  With the 
patch, instead of killing containers, it marks them (and reports that they're 
marked to the AM).  If a container was already marked, it is killed if 
maxWaitTimeBeforeKill has passed.

A couple comments:
* Nothing ensures that the containers marked on a preemption pass are the first 
ones to be considered on a subsequent pass.  This means that new containers 
could be marked for preemption instead of killing the ones that should be 
killed.  Instead, the ones that were marked should probably be saved and 
checked first.
* toPreempt is decremented whenever a container is considered, whether it's 
marked, killed, or just observed as marked but not ready to be killed. I don't 
have a clear idea at this moment of whether this is the correct behavior, but I 
think it would be good to discuss it and include some rationale as comments.  
Do you have thoughts?
* There should be a way to make killing instant.  I.e. if I set 
maxWaitTimeBeforeKill to 0, I should not have to wait for the second pass for 
containers to be killed.
                
> FairScheduler: support for work-preserving preemption 
> ------------------------------------------------------
>
>                 Key: YARN-568
>                 URL: https://issues.apache.org/jira/browse/YARN-568
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: scheduler
>            Reporter: Carlo Curino
>            Assignee: Carlo Curino
>         Attachments: YARN-568.patch, YARN-568.patch
>
>
> In the attached patch, we modified  the FairScheduler to substitute its 
> preemption-by-killling with a work-preserving version of preemption (followed 
> by killing if the AMs do not respond quickly enough). This should allows to 
> run preemption checking more often, but kill less often (proper tuning to be 
> investigated).  Depends on YARN-567 and YARN-45, is related to YARN-569.

--
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