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

Reply via email to