Bläddra i källkod

MAPREDUCE-6967. gridmix/SleepReducer should use Time.monotonicNow for measuring durations. Contributed by Chetna Chaudhari

(cherry picked from commit b133dc5700b66318ac6d80e463b049723c511f37)
Jason Lowe 7 år sedan
förälder
incheckning
2c10abaddd

+ 3 - 2
hadoop-tools/hadoop-gridmix/src/main/java/org/apache/hadoop/mapred/gridmix/SleepJob.java

@@ -52,6 +52,7 @@ import org.apache.hadoop.tools.rumen.TaskAttemptInfo;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.util.Time;
 
 public class SleepJob extends GridmixJob {
   public static final Log LOG = LogFactory.getLog(SleepJob.class);
@@ -184,7 +185,7 @@ public class SleepJob extends GridmixJob {
         TimeUnit.MILLISECONDS.convert(sleepInterval, TimeUnit.SECONDS);
       //This is to stop accumulating deviation from expected sleep time
       //over a period of time.
-      long start = System.currentTimeMillis();
+      long start = Time.monotonicNow();
       long slept = 0L;
       long sleep = 0L;
       while (slept < duration) {
@@ -192,7 +193,7 @@ public class SleepJob extends GridmixJob {
         sleep = Math.min(rem, RINTERVAL);
         context.setStatus("Sleeping... " + rem + " ms left");
         TimeUnit.MILLISECONDS.sleep(sleep);
-        slept = System.currentTimeMillis() - start;
+        slept = Time.monotonicNow() - start;
       }
     }