Class GuaranteedOrZeroCapacityOverTimePolicy
java.lang.Object
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.queuemanagement.GuaranteedOrZeroCapacityOverTimePolicy
- All Implemented Interfaces:
AutoCreatedQueueManagementPolicy
public class GuaranteedOrZeroCapacityOverTimePolicy
extends Object
implements AutoCreatedQueueManagementPolicy
Capacity Management policy for auto created leaf queues
Assigns capacity if available to leaf queues based on application submission order i.e leaf queues are assigned capacity in FCFS order based on application submission time. Updates leaf queue capacities to 0 when there are no pending or running apps under that queue.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcommitQueueManagementChanges(List<QueueManagementChange> queueManagementChanges) Commit queue management changes - which involves updating required state on parent/underlying leaf queues.Computes / adjusts child queue capacities for auto created leaf queues.floatgetAbsoluteActivatedChildQueueCapacity(String nodeLabel) Get initial template for the specified leaf queue.booleanhasPendingApps(AutoCreatedLeafQueue leafQueue) voidinit(AbstractParentQueue parentQueue) Initialize policy.booleanisActive(AutoCreatedLeafQueue leafQueue, String nodeLabel) voidreinitialize(AbstractParentQueue parentQueue) Reinitialize policy state ( if required ).voidupdateTemplateAbsoluteCapacities(QueueCapacities queueCapacities)
-
Constructor Details
-
GuaranteedOrZeroCapacityOverTimePolicy
public GuaranteedOrZeroCapacityOverTimePolicy()
-
-
Method Details
-
init
Description copied from interface:AutoCreatedQueueManagementPolicyInitialize policy.- Specified by:
initin interfaceAutoCreatedQueueManagementPolicy- Parameters:
parentQueue- parent queue- Throws:
IOException- an I/O exception has occurred.
-
computeQueueManagementChanges
public List<QueueManagementChange> computeQueueManagementChanges() throws SchedulerDynamicEditExceptionComputes / adjusts child queue capacities for auto created leaf queues. This method computes queue entitlements but does not update LeafQueueState or queue capacities. Scheduler calls commitQueueManagementChanges after validation after applying queue changes and commits to LeafQueueState are done in commitQueueManagementChanges.- Specified by:
computeQueueManagementChangesin interfaceAutoCreatedQueueManagementPolicy- Returns:
- List of Queue Management change suggestions which could potentially be committed/rejected by the scheduler due to validation failures
- Throws:
SchedulerDynamicEditException- when compute queueManagement changes fails.
-
updateTemplateAbsoluteCapacities
-
isActive
@VisibleForTesting public boolean isActive(AutoCreatedLeafQueue leafQueue, String nodeLabel) throws SchedulerDynamicEditException - Throws:
SchedulerDynamicEditException
-
commitQueueManagementChanges
public void commitQueueManagementChanges(List<QueueManagementChange> queueManagementChanges) throws SchedulerDynamicEditException Commit queue management changes - which involves updating required state on parent/underlying leaf queues.- Specified by:
commitQueueManagementChangesin interfaceAutoCreatedQueueManagementPolicy- Parameters:
queueManagementChanges- Queue Management changes to commit- Throws:
SchedulerDynamicEditException- when validation fails
-
hasPendingApps
-
reinitialize
Description copied from interface:AutoCreatedQueueManagementPolicyReinitialize policy state ( if required ).- Specified by:
reinitializein interfaceAutoCreatedQueueManagementPolicy- Parameters:
parentQueue- parent queue- Throws:
IOException- an I/O exception has occurred.
-
getInitialLeafQueueConfiguration
public AutoCreatedLeafQueueConfig getInitialLeafQueueConfiguration(AbstractAutoCreatedLeafQueue leafQueue) throws SchedulerDynamicEditException Description copied from interface:AutoCreatedQueueManagementPolicyGet initial template for the specified leaf queue.- Specified by:
getInitialLeafQueueConfigurationin interfaceAutoCreatedQueueManagementPolicy- Parameters:
leafQueue- the leaf queue- Returns:
- initial leaf queue template configurations and capacities for auto created queue
- Throws:
SchedulerDynamicEditException- when get initialLeafQueue Configuration fails.
-
getAbsoluteActivatedChildQueueCapacity
-