Class IsolatedPool
- java.lang.Object
-
- org.apache.storm.scheduler.multitenant.NodePool
-
- org.apache.storm.scheduler.multitenant.IsolatedPool
-
public class IsolatedPool extends NodePool
A pool of machines that can be used to run isolated topologies.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.storm.scheduler.multitenant.NodePool
NodePool.NodeAndSlotCounts, NodePool.RoundRobinSlotScheduler
-
-
Field Summary
-
Fields inherited from class org.apache.storm.scheduler.multitenant.NodePool
cluster, nodeIdToNode
-
-
Constructor Summary
Constructors Constructor Description IsolatedPool(int maxNodes)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addTopology(TopologyDetails td)
Add a topology to the pool.boolean
canAdd(TopologyDetails td)
Check if this topology can be added to this pool.NodePool.NodeAndSlotCounts
getNodeAndSlotCountIfSlotsWereTaken(int slotsNeeded)
Get the number of nodes and slots this would provide to get the slots needed.int
nodesAvailable()
Get the number of available nodes.void
scheduleAsNeeded(NodePool... lesserPools)
Reschedule any topologies as needed.int
slotsAvailable()
Get number of available slots.Collection<Node>
takeNodes(int nodesNeeded)
Take up to nodesNeeded from this pool.Collection<Node>
takeNodesBySlots(int slotsNeeded)
Take nodes from this pool that can fulfill possibly up to the slotsNeeded.String
toString()
-
Methods inherited from class org.apache.storm.scheduler.multitenant.NodePool
getNodeCountIfSlotsWereTaken, init, nodesAvailable, slotsAvailable, takeNodes, takeNodesBySlot
-
-
-
-
Method Detail
-
addTopology
public void addTopology(TopologyDetails td)
Description copied from class:NodePool
Add a topology to the pool.- Specified by:
addTopology
in classNodePool
- 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.
-
scheduleAsNeeded
public void scheduleAsNeeded(NodePool... lesserPools)
Description copied from class:NodePool
Reschedule any topologies as needed.- Specified by:
scheduleAsNeeded
in classNodePool
- Parameters:
lesserPools
- pools that may be used to steal nodes from.
-
takeNodes
public Collection<Node> takeNodes(int nodesNeeded)
Description copied from class:NodePool
Take up to nodesNeeded from this pool.
-
nodesAvailable
public int nodesAvailable()
Description copied from class:NodePool
Get the number of available nodes.- Specified by:
nodesAvailable
in classNodePool
- 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 classNodePool
- 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 classNodePool
- 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 classNodePool
- Parameters:
slotsNeeded
- the number of slots needed- Returns:
- the number of nodes and slots that would be returned.
-
-