wait(5000) and notify() mechanism can be implemented instead of sleep(5000) in
reduce task when there are no copies in progress and no new copies to schedule
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: MAPREDUCE-2512
URL: https://issues.apache.org/jira/browse/MAPREDUCE-2512
Project: Hadoop Map/Reduce
Issue Type: Improvement
Components: task
Affects Versions: 0.20.2
Reporter: Devaraj K
Assignee: Devaraj K
{code:title=ReduceTask.java|borderStyle=solid}
try {
if (numInFlight == 0 && numScheduled == 0) {
// we should indicate progress as we don't want TT to think
// we're stuck and kill us
reporter.progress();
Thread.sleep(5000);
}
} catch (InterruptedException e) { } // IGNORE
{code}
Here if we have no copies in flight and we can't schedule anything new, it is
going to wait for 5000 millis. Instead of waiting for 5000 millis, this thread
can wait with timeout and GetMapEventsThread can notify it if gets new map
completion events earlier than 5000 millis time.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira