public abstract class AbstractComparatorOrderingPolicy<S extends SchedulableEntity> extends Object implements OrderingPolicy<S>
| Modifier and Type | Field and Description | 
|---|---|
| protected Comparator<SchedulableEntity> | comparator | 
| protected Map<String,S> | entitiesToReorder | 
| protected ConcurrentSkipListSet<S> | schedulableEntities | 
| Constructor and Description | 
|---|
| AbstractComparatorOrderingPolicy() | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addAllSchedulableEntities(Collection<S> sc)Add a collection of  SchedulableEntityobjects to be managed for
 allocation and preemption ordering. | 
| void | addSchedulableEntity(S s)Add a  SchedulableEntityto be managed for allocation and preemption
 ordering. | 
| abstract void | configure(Map<String,String> conf)Provides configuration information for the policy from the scheduler
 configuration. | 
| abstract void | containerAllocated(S schedulableEntity,
                  RMContainer r)Notify the  OrderingPolicythat theSchedulableEntityhas been allocated the givenRMContainer, enabling theOrderingPolicyto take appropriate action. | 
| abstract void | containerReleased(S schedulableEntity,
                 RMContainer r)Notify the  OrderingPolicythat theSchedulableEntityhas released the givenRMContainer, enabling theOrderingPolicyto take appropriate action. | 
| abstract void | demandUpdated(S schedulableEntity)Notify the  OrderingPolicythat the demand for theSchedulableEntityhas been updated, enabling theOrderingPolicyto reorder theSchedulableEntityif needed. | 
| protected void | entityRequiresReordering(S schedulableEntity) | 
| Iterator<S> | getAssignmentIterator(IteratorSelector sel)Return an iterator over the collection of  SchedulableEntityobjects which orders them for container assignment. | 
| Comparator<SchedulableEntity> | getComparator() | 
| abstract String | getConfigName()Return configuration name (which will be used to set ordering policy). | 
| abstract String | getInfo()Return information regarding configuration and status. | 
| int | getNumSchedulableEntities()Get the number of  SchedulableEntityobjects managed for allocation
 and preemption ordering. | 
| Iterator<S> | getPreemptionIterator()Return an iterator over the collection of  SchedulableEntityobjects which orders them for preemption. | 
| Collection<S> | getSchedulableEntities()Get the collection of  SchedulableEntityObjects which are managed
 by this OrderingPolicy - should include processes returned by the
 Assignment and Preemption iterator with no guarantees regarding order. | 
| boolean | removeSchedulableEntity(S s)Remove a  SchedulableEntityfrom management for allocation and
 preemption ordering. | 
| protected void | reorderSchedulableEntity(S schedulableEntity) | 
| protected void | reorderScheduleEntities() | 
| static void | updateSchedulingResourceUsage(ResourceUsage ru) | 
protected ConcurrentSkipListSet<S extends SchedulableEntity> schedulableEntities
protected Comparator<SchedulableEntity> comparator
protected Map<String,S extends SchedulableEntity> entitiesToReorder
public Collection<S> getSchedulableEntities()
OrderingPolicySchedulableEntity Objects which are managed
 by this OrderingPolicy - should include processes returned by the
 Assignment and Preemption iterator with no guarantees regarding order.getSchedulableEntities in interface OrderingPolicy<S extends SchedulableEntity>SchedulableEntity objectspublic Iterator<S> getAssignmentIterator(IteratorSelector sel)
OrderingPolicySchedulableEntity
 objects which orders them for container assignment.getAssignmentIterator in interface OrderingPolicy<S extends SchedulableEntity>sel - the IteratorSelector to filter withSchedulableEntity
 objectspublic Iterator<S> getPreemptionIterator()
OrderingPolicySchedulableEntity
 objects which orders them for preemption.getPreemptionIterator in interface OrderingPolicy<S extends SchedulableEntity>SchedulableEntitypublic static void updateSchedulingResourceUsage(ResourceUsage ru)
protected void reorderSchedulableEntity(S schedulableEntity)
protected void reorderScheduleEntities()
protected void entityRequiresReordering(S schedulableEntity)
public Comparator<SchedulableEntity> getComparator()
public void addSchedulableEntity(S s)
OrderingPolicySchedulableEntity to be managed for allocation and preemption
 ordering.addSchedulableEntity in interface OrderingPolicy<S extends SchedulableEntity>s - the SchedulableEntity to addpublic boolean removeSchedulableEntity(S s)
OrderingPolicySchedulableEntity from management for allocation and
 preemption ordering.removeSchedulableEntity in interface OrderingPolicy<S extends SchedulableEntity>s - the SchedulableEntity to removeSchedulableEntity was present before this
 operationpublic void addAllSchedulableEntities(Collection<S> sc)
OrderingPolicySchedulableEntity objects to be managed for
 allocation and preemption ordering.addAllSchedulableEntities in interface OrderingPolicy<S extends SchedulableEntity>sc - the collection of SchedulableEntity objects to addpublic int getNumSchedulableEntities()
OrderingPolicySchedulableEntity objects managed for allocation
 and preemption ordering.getNumSchedulableEntities in interface OrderingPolicy<S extends SchedulableEntity>SchedulableEntity objectspublic abstract void configure(Map<String,String> conf)
OrderingPolicyconfigure in interface OrderingPolicy<S extends SchedulableEntity>conf - a map of scheduler configuration properties and valuespublic abstract void containerAllocated(S schedulableEntity, RMContainer r)
OrderingPolicyOrderingPolicy that the SchedulableEntity
 has been allocated the given RMContainer, enabling the
 OrderingPolicy to take appropriate action. Depending on the
 comparator, a reordering of the SchedulableEntity may be required.containerAllocated in interface OrderingPolicy<S extends SchedulableEntity>schedulableEntity - the SchedulableEntityr - the allocated RMContainerpublic abstract void containerReleased(S schedulableEntity, RMContainer r)
OrderingPolicyOrderingPolicy that the SchedulableEntity
 has released the given RMContainer, enabling the
 OrderingPolicy to take appropriate action. Depending on the
 comparator, a reordering of the SchedulableEntity may be required.containerReleased in interface OrderingPolicy<S extends SchedulableEntity>schedulableEntity - the SchedulableEntityr - the released RMContainerpublic abstract void demandUpdated(S schedulableEntity)
OrderingPolicyOrderingPolicy that the demand for the
 SchedulableEntity has been updated, enabling the
 OrderingPolicy to reorder the SchedulableEntity if needed.demandUpdated in interface OrderingPolicy<S extends SchedulableEntity>schedulableEntity - the updated SchedulableEntitypublic abstract String getInfo()
OrderingPolicygetInfo in interface OrderingPolicy<S extends SchedulableEntity>public abstract String getConfigName()
OrderingPolicygetConfigName in interface OrderingPolicy<S extends SchedulableEntity>Copyright © 2008–2023 Apache Software Foundation. All rights reserved.