IntraQueueCandidatesSelector( CapacitySchedulerPreemptionContext preemptionContext) { super(preemptionContext); fifoPreemptionComputePlugin = new FifoIntraQueuePreemptionPlugin(rc, preemptionContext); context = preemptionContext; }
Resource amUsed = calculateUsedAMResourcesPerQueue(tq.partition, tq.leafQueue, perUserAMUsed); Resources.subtractFrom(queueReassignableResource, amUsed); PriorityQueue<TempAppPerPartition> orderedByPriority = createTempAppForResCalculation( tq, apps, clusterResource, perUserAMUsed); TreeSet<TempAppPerPartition> orderedApps = calculateIdealAssignedResourcePerApp( clusterResource, tq, selectedCandidates, queueReassignableResource, orderedByPriority); calculateToBePreemptedResourcePerApp(clusterResource, orderedApps, Resources.clone(preemptionLimit)); validateOutSameAppPriorityFromDemand(clusterResource, (TreeSet<TempAppPerPartition>) orderedApps, tq.getUsersPerPartition(), context.getIntraQueuePreemptionOrderPolicy());
getAlreadySelectedPreemptionCandidatesResource(selectedCandidates, tmpApp, tmpUser, partition);