java.lang.Object
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.QueueCapacityVector
All Implemented Interfaces:
Iterable<QueueCapacityVector.QueueCapacityVectorEntry>

public class QueueCapacityVector extends Object implements Iterable<QueueCapacityVector.QueueCapacityVectorEntry>
Contains capacity values with calculation types associated for each resource.
  • Constructor Details

    • QueueCapacityVector

      public QueueCapacityVector()
  • Method Details

    • newInstance

      public static QueueCapacityVector newInstance()
      Creates a zero QueueCapacityVector. The resources are defined in absolute capacity type by default.
      Returns:
      zero capacity vector
    • of

      public static QueueCapacityVector of(double value, QueueCapacityVector.ResourceUnitCapacityType capacityType)
      Creates a uniform and homogeneous QueueCapacityVector. The resources are defined in absolute capacity type by default.
      Parameters:
      value - value to be set for each resource
      capacityType - capacity type to be set for each resource
      Returns:
      uniform capacity vector
    • getResource

      public QueueCapacityVector.QueueCapacityVectorEntry getResource(String resourceName)
    • getResourceCount

      public int getResourceCount()
      Returns the number of resources defined for this vector.
      Returns:
      number of resources
    • setResource

      public void setResource(String resourceName, double value, QueueCapacityVector.ResourceUnitCapacityType capacityType)
      Set the value and capacity type of a resource.
      Parameters:
      resourceName - name of the resource
      value - value of the resource
      capacityType - type of the resource
    • getMemory

      public double getMemory()
      A shorthand to retrieve the value stored for the memory resource.
      Returns:
      value of memory resource
    • isEmpty

      public boolean isEmpty()
    • getResourceNamesByCapacityType

      public Set<String> getResourceNamesByCapacityType(QueueCapacityVector.ResourceUnitCapacityType capacityType)
      Returns the name of all resources that are defined in the given capacity type.
      Parameters:
      capacityType - the capacity type of the resources
      Returns:
      all resource names for the given capacity type
    • isResourceOfType

      public boolean isResourceOfType(String resourceName, QueueCapacityVector.ResourceUnitCapacityType capacityType)
      Checks whether a resource unit is defined as a specific type.
      Parameters:
      resourceName - resource unit name
      capacityType - capacity type
      Returns:
      true, if resource unit is defined as the given type
    • iterator

      Specified by:
      iterator in interface Iterable<QueueCapacityVector.QueueCapacityVectorEntry>
    • getDefinedCapacityTypes

      public Set<QueueCapacityVector.ResourceUnitCapacityType> getDefinedCapacityTypes()
      Returns a set of all capacity types defined for this vector.
      Returns:
      capacity types
    • isMixedCapacityVector

      public boolean isMixedCapacityVector()
      Checks whether the vector is a mixed capacity vector (more than one capacity type is used, therefore it is not uniform).
      Returns:
      true, if the vector is mixed
    • getResourceNames

      public Set<String> getResourceNames()
    • toString

      public String toString()
      Overrides:
      toString in class Object