/** Initialization common to Map and Reduce */ void init(JobID jobId) { this.startTime = JobTracker.getClock().getTime(); this.id = new TaskID(jobId, isMapTask(), partition); this.skipping = startSkipping(); long speculativeDuration; if (isMapTask()) { this.speculativeLag = conf.getMapSpeculativeLag(); speculativeDuration = conf.getMapSpeculativeDuration(); } else { this.speculativeLag = conf.getReduceSpeculativeLag(); speculativeDuration = conf.getReduceSpeculativeDuration(); } // speculate only if 1/(1000 * progress_rate) > speculativeDuration // ie. : // speculate only if progress_rate < 1/(1000 * speculativeDuration) if (speculativeDuration > 0) { this.maxProgressRateForSpeculation = 1.0 / (1000.0 * speculativeDuration); } else { // disable this check for durations <= 0 this.maxProgressRateForSpeculation = -1.0; } }