TaskInProgress.hasSpeculativeTask is very inefficient
-----------------------------------------------------

                 Key: HADOOP-2790
                 URL: https://issues.apache.org/jira/browse/HADOOP-2790
             Project: Hadoop Core
          Issue Type: Bug
          Components: mapred
            Reporter: Owen O'Malley
             Fix For: 0.16.1


Each call to JobInProgress.findNewTask can call 
TaskInProgress.hasSpeculativeTask once per a task. Each call to 
hasSpeculativeTask calls System.getCurrentTimeMillis, which can result in 
hundreds of thousands of calls to getCurrentTimeMillis. Additionally, it calls 
TaskInProgress.isOnlyCommitPending, which calls .values() on the map from task 
id to host name and iterates through them to see if any of the tasks are in 
commit pending. It would be better to have a commit pending boolean flag in the 
TaskInProgress. It also looks like there are other opportunities here, but 
those jumped out at me. We should also look at this method in the profiler.

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