java.lang.Object
org.apache.hadoop.yarn.server.resourcemanager.reservation.planning.PlanningAlgorithm
org.apache.hadoop.yarn.server.resourcemanager.reservation.planning.IterativePlanner
All Implemented Interfaces:
ReservationAgent

public class IterativePlanner extends PlanningAlgorithm
A planning algorithm consisting of two main phases. The algorithm iterates over the job stages in ascending/descending order, depending on the flag allocateLeft. For each stage, the algorithm: 1. Determines an interval [stageArrival, stageDeadline) in which the stage is allocated. 2. Computes an allocation for the stage inside the interval. For ANY and ALL jobs, phase 1 sets the allocation window of each stage to be [jobArrival, jobDeadline]. For ORDER and ORDER_NO_GAP jobs, the deadline of each stage is set as succcessorStartTime - the starting time of its succeeding stage (or jobDeadline if it is the last stage). The phases are set using the two functions: 1. setAlgStageExecutionInterval 2.setAlgStageAllocator