Class FreePool

java.lang.Object
org.apache.storm.scheduler.multitenant.NodePool
org.apache.storm.scheduler.multitenant.FreePool

public class FreePool extends NodePool
All of the machines that currently have nothing assigned to them.
  • Constructor Details

    • FreePool

      public FreePool()
  • Method Details

    • init

      public void init(Cluster cluster, Map<String,Node> nodeIdToNode)
      Description copied from class: NodePool
      Initialize the pool.
      Overrides:
      init in class NodePool
      Parameters:
      cluster - the cluster
      nodeIdToNode - the mapping of node id to nodes
    • addTopology

      public void addTopology(TopologyDetails td)
      Description copied from class: NodePool
      Add a topology to the pool.
      Specified by:
      addTopology in class NodePool
      Parameters:
      td - the topology to add
    • canAdd

      public boolean canAdd(TopologyDetails td)
      Description copied from class: NodePool
      Check if this topology can be added to this pool.
      Specified by:
      canAdd in class NodePool
      Parameters:
      td - the topology
      Returns:
      true if it can else false
    • takeNodes

      public Collection<Node> takeNodes(int nodesNeeded)
      Description copied from class: NodePool
      Take up to nodesNeeded from this pool.
      Specified by:
      takeNodes in class NodePool
      Parameters:
      nodesNeeded - the number of nodes that are needed.
      Returns:
      a Collection of nodes with the removed nodes in it. This may be empty, but should not be null.
    • nodesAvailable

      public int nodesAvailable()
      Description copied from class: NodePool
      Get the number of available nodes.
      Specified by:
      nodesAvailable in class NodePool
      Returns:
      the number of nodes that are available to be taken
    • slotsAvailable

      public int slotsAvailable()
      Description copied from class: NodePool
      Get number of available slots.
      Specified by:
      slotsAvailable in class NodePool
      Returns:
      the number of slots that are available to be taken
    • takeNodesBySlots

      public Collection<Node> takeNodesBySlots(int slotsNeeded)
      Description copied from class: NodePool
      Take nodes from this pool that can fulfill possibly up to the slotsNeeded.
      Specified by:
      takeNodesBySlots in class NodePool
      Parameters:
      slotsNeeded - the number of slots that are needed.
      Returns:
      a Collection of nodes with the removed nodes in it. This may be empty, but should not be null.
    • getNodeAndSlotCountIfSlotsWereTaken

      public NodePool.NodeAndSlotCounts getNodeAndSlotCountIfSlotsWereTaken(int slotsNeeded)
      Description copied from class: NodePool
      Get the number of nodes and slots this would provide to get the slots needed.
      Specified by:
      getNodeAndSlotCountIfSlotsWereTaken in class NodePool
      Parameters:
      slotsNeeded - the number of slots needed
      Returns:
      the number of nodes and slots that would be returned.
    • scheduleAsNeeded

      public void scheduleAsNeeded(NodePool... lesserPools)
      Description copied from class: NodePool
      Reschedule any topologies as needed.
      Specified by:
      scheduleAsNeeded in class NodePool
      Parameters:
      lesserPools - pools that may be used to steal nodes from.
    • toString

      public String toString()
      Overrides:
      toString in class Object