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

Tom White updated MAPREDUCE-4487:
---------------------------------

    Attachment: MAPREDUCE-4487.patch

Here's a patch which removes sleeps (or improves their usage) in three places:

* In ReduceTask's fetchOutputs() if there are no map outputs in flight or 
scheduled, then it sleeps for five seconds. Replacing this condition with a 
wait that is notified when new map outputs become available is an improvement.
* In ReduceTask's fetchOutputs() when all the output has been fetched there is 
a join on GetMapEventsThread, which may be sleeping (for 1s). Replacing this 
with a wait/notify removes the sleep overhead.
* In Child's main loop while waiting for tasks from the parent tasktracker, the 
thread sleeps for 0.5s initially then 1.5s if there haven't been any tasks for 
a while. Replacing this with a more fine grained exponential backoff helps 
responsiveness.

I ran some tests to investigate the effect of these changes. I ran a sleep job 
that sleeps for 1ms ({{bin/hadoop jar hadoop-*examples*jar sleep -m 1 -r 1 -mt 
1 -rt 1}}) and measured the job execution time (on a single node cluster). 
Without the patch the mean time was 12.97s (over 10 runs, sd 0.53), and with 
the patch it was 9.109s (sd 1.0) - a significant improvement.
                
> Reduce job latency by removing hardcoded sleep statements
> ---------------------------------------------------------
>
>                 Key: MAPREDUCE-4487
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-4487
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>          Components: mrv1, performance
>    Affects Versions: 1.0.3
>            Reporter: Tom White
>            Assignee: Tom White
>         Attachments: MAPREDUCE-4487.patch
>
>
> There are a few places in MapReduce where there are hardcoded sleep 
> statements. By replacing them with wait/notify or similar it's possible to 
> reduce latency for short running jobs.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to