You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by sh...@apache.org on 2009/04/17 09:51:03 UTC

svn commit: r765887 - in /hadoop/core/trunk: CHANGES.txt src/mapred/org/apache/hadoop/mapred/JobTracker.java

Author: sharad
Date: Fri Apr 17 07:51:03 2009
New Revision: 765887

URL: http://svn.apache.org/viewvc?rev=765887&view=rev
Log:
HADOOP-5533. Recovery duration shown on the jobtracker webpage is inaccurate. Contributed by Amar Kamat.

Modified:
    hadoop/core/trunk/CHANGES.txt
    hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/JobTracker.java

Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=765887&r1=765886&r2=765887&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Fri Apr 17 07:51:03 2009
@@ -1261,6 +1261,9 @@
     HADOOP-5655. TestMRServerPorts fails on java.net.BindException. (Devaraj
     Das via hairong)
 
+    HADOOP-5533. Recovery duration shown on the jobtracker webpage is 
+    inaccurate. (Amar Kamat via sharad)
+
 Release 0.19.2 - Unreleased
 
   BUG FIXES

Modified: hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/JobTracker.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/JobTracker.java?rev=765887&r1=765886&r2=765887&view=diff
==============================================================================
--- hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/JobTracker.java (original)
+++ hadoop/core/trunk/src/mapred/org/apache/hadoop/mapred/JobTracker.java Fri Apr 17 07:51:03 2009
@@ -1199,13 +1199,15 @@
     }
 
     public void recover() {
+      long recoveryProcessStartTime = System.currentTimeMillis();
       if (!shouldRecover()) {
         // clean up jobs structure
         jobsToRecover.clear();
         return;
       }
 
-      LOG.info("Restart count of the jobtracker : " + restartCount);
+      LOG.info("Starting the recovery process with restart count : " 
+               + restartCount);
 
       // I. Init the jobs and cache the recovered job history filenames
       Map<JobID, Path> jobHistoryFilenameMap = new HashMap<JobID, Path>();
@@ -1261,6 +1263,11 @@
         }
       }
 
+      LOG.info("Took a total of " 
+               + StringUtils.formatTime(System.currentTimeMillis() 
+                                        - recoveryProcessStartTime) 
+               + " for recovering filenames of all the jobs from history.");
+
       long recoveryStartTime = System.currentTimeMillis();
 
       // II. Recover each job
@@ -1318,14 +1325,21 @@
         }
       }
 
-      recoveryDuration = System.currentTimeMillis() - recoveryStartTime;
+      long recoveryProcessEndTime = System.currentTimeMillis();
+      LOG.info("Took a total of " 
+               + StringUtils.formatTime(recoveryProcessEndTime
+                                        - recoveryStartTime) 
+               + " for parsing and recovering all the jobs from history.");
+
+      recoveryDuration = recoveryProcessEndTime - recoveryProcessStartTime;
+      LOG.info("Took a total of " + StringUtils.formatTime(recoveryDuration) 
+               + " for the whole recovery process.");
       hasRecovered = true;
 
       // III. Finalize the recovery
       synchronized (trackerExpiryQueue) {
         // Make sure that the tracker statuses in the expiry-tracker queue
         // are updated
-        long now = System.currentTimeMillis();
         int size = trackerExpiryQueue.size();
         for (int i = 0; i < size ; ++i) {
           // Get the first status
@@ -1335,14 +1349,14 @@
           trackerExpiryQueue.remove(status);
 
           // Set the new time
-          status.setLastSeen(now);
+          status.setLastSeen(recoveryProcessEndTime);
 
           // Add back to get the sorted list
           trackerExpiryQueue.add(status);
         }
       }
 
-      LOG.info("Restoration complete");
+      LOG.info("Restoration done. Recovery complete!");
     }
     
     int totalEventsRecovered() {