[ 
https://issues.apache.org/jira/browse/HADOOP-2141?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andy Konwinski updated HADOOP-2141:
-----------------------------------

    Attachment: HADOOP-2141-v5.patch

First, I found a significant bug in the current patch in the logic of 
isSlowTracker() that turns sums of each taskTrackers tasks to averages. This 
attached updated patch contains the bug fix.

Devaraj, regarding your suggestion of removing countSpeculating() in favor of 
having class fields which maintain counts of running speculative map tasks and 
reduces, I agree that this might perform better, and it is easy to increment 
this variable in the correct spot (i.e. in getSpeculativeMap() and 
getSpeculativeReduce()), however it isn't as clear where to decrement the 
counts. They need to be decremented when a speculative task is killed or 
completes, and the code that manages this state transition seems to be 
convoluted since there are a number of scenarios that are handled (failed task 
trackers, speculative task attempt succeeds, speculative attempt is killed 
because original attempt succeeds). I am getting a little lost digging through 
the code trying to figure out where these variables would need to be 
decremented at. There is a comment in JobInProgress.completedTask() that says 
"TaskCommitThread in the JobTracker marks other, completed, speculative tasks 
as _complete_." but I can't find the TaskCommitThread that it references and I 
don't think that just adjusting the counts when speculative tasks complete (as 
opposed to being killed or failing) would be enough. My vote is that we put 
this off for now.

Regarding modifications to keep the sorted list of candidates around, one 
potential problem I see with this is if a task that is cached in the sorted 
list of tips we are keeping around finishes before we recompute the sorted list 
again, then there would be a possibility of speculating a task that has already 
completed.

I have implemented your suggestion to keep a list of task trackers around, and 
have set the time to 2 minutes (using the SLOW_TRACKER_SORT_DELAY constant).

One thing that I think is important is to test the effects of this patch on 
MapReduce performance since a lot of the code base has changed and also this 
patch is quite different than the one we used for the experiments in the OSDI 
paper.

Finally, I wanted to double check with Devaraj that you didn't add any new 
functionality or bug fixes in your patch, but instead that it was just merging 
with trunk (and putting the default values for the parameters in 
mapred-default.xml instead of hadoop-default.xml). In particular I noticed some 
properties that your patch adds to mapred-default.xml that don't seem to be 
related to this JIRA or used in the rest of the patch (e.g. 
mapred.shuffle.maxFetchPerHost). Were these included intentionally?

> speculative execution start up condition based on completion time
> -----------------------------------------------------------------
>
>                 Key: HADOOP-2141
>                 URL: https://issues.apache.org/jira/browse/HADOOP-2141
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: mapred
>    Affects Versions: 0.19.0
>            Reporter: Koji Noguchi
>            Assignee: Andy Konwinski
>         Attachments: 2141.patch, HADOOP-2141-v2.patch, HADOOP-2141-v3.patch, 
> HADOOP-2141-v4.patch, HADOOP-2141-v5.patch, HADOOP-2141.patch
>
>
> We had one job with speculative execution hang.
> 4 reduce tasks were stuck with 95% completion because of a bad disk. 
> Devaraj pointed out 
> bq . One of the conditions that must be met for launching a speculative 
> instance of a task is that it must be at least 20% behind the average 
> progress, and this is not true here.
> It would be nice if speculative execution also starts up when tasks stop 
> making progress.
> Devaraj suggested 
> bq. Maybe, we should introduce a condition for average completion time for 
> tasks in the speculative execution check. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to