Procházet zdrojové kódy

HADOOP-218. Avoid accessing configuration while looping through tasks in JobTracker. Contributed by Mahadev.

git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk@406750 13f79535-47bb-0310-9956-ffa450edef68
Doug Cutting před 19 roky
rodič
revize
39574b7b63

+ 3 - 0
CHANGES.txt

@@ -35,6 +35,9 @@ Trunk (unreleased)
     may also be specified when files are opened.
     (omalley via cutting)
 
+ 9. HADOOP-218. Avoid accessing configuration while looping through
+    tasks in JobTracker.  (Mahadev Konar via cutting)
+
 
 Release 0.2.1 - 2006-05-12
 

+ 3 - 2
src/java/org/apache/hadoop/mapred/TaskInProgress.java

@@ -69,7 +69,7 @@ class TaskInProgress {
     private TreeSet usableTaskIds = new TreeSet();
     private TreeSet recentTasks = new TreeSet();
     private JobConf conf;
-    
+    private boolean runSpeculative;
     private TreeMap taskDiagnosticData = new TreeMap();
     private TreeMap taskStatuses = new TreeMap();
 
@@ -129,6 +129,7 @@ class TaskInProgress {
      */
     void init(String jobUniqueString) {
         this.startTime = System.currentTimeMillis();
+        this.runSpeculative = conf.getSpeculativeExecution();
         String uniqueString = makeUniqueString(jobUniqueString);
         this.id = "tip_" + uniqueString;
         this.totalTaskIds = new String[MAX_TASK_EXECS + MAX_TASK_FAILURES];
@@ -417,7 +418,7 @@ class TaskInProgress {
         //
         if (isMapTask() &&
             recentTasks.size() <= MAX_TASK_EXECS &&
-            conf.getSpeculativeExecution() &&
+            runSpeculative &&
             (averageProgress - progress >= SPECULATIVE_GAP) &&
             (System.currentTimeMillis() - startTime >= SPECULATIVE_LAG)) {
             return true;