public class DefaultPool extends NodePool
A pool of machines that anyone can use, but topologies are not isolated.
NodePool.NodeAndSlotCounts, NodePool.RoundRobinSlotScheduler
cluster, nodeIdToNode
Constructor and Description |
---|
DefaultPool() |
Modifier and Type | Method and 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() |
getNodeCountIfSlotsWereTaken, init, nodesAvailable, slotsAvailable, takeNodes, takeNodesBySlot
public void addTopology(TopologyDetails td)
NodePool
Add a topology to the pool.
addTopology
in class NodePool
td
- the topology to addpublic boolean canAdd(TopologyDetails td)
NodePool
Check if this topology can be added to this pool.
public Collection<Node> takeNodes(int nodesNeeded)
NodePool
Take up to nodesNeeded from this pool.
public int nodesAvailable()
NodePool
Get the number of available nodes.
nodesAvailable
in class NodePool
public int slotsAvailable()
NodePool
Get number of available slots.
slotsAvailable
in class NodePool
public NodePool.NodeAndSlotCounts getNodeAndSlotCountIfSlotsWereTaken(int slotsNeeded)
NodePool
Get the number of nodes and slots this would provide to get the slots needed.
getNodeAndSlotCountIfSlotsWereTaken
in class NodePool
slotsNeeded
- the number of slots neededpublic Collection<Node> takeNodesBySlots(int slotsNeeded)
NodePool
Take nodes from this pool that can fulfill possibly up to the slotsNeeded.
takeNodesBySlots
in class NodePool
slotsNeeded
- the number of slots that are needed.public void scheduleAsNeeded(NodePool... lesserPools)
NodePool
Reschedule any topologies as needed.
scheduleAsNeeded
in class NodePool
lesserPools
- pools that may be used to steal nodes from.Copyright © 2020 The Apache Software Foundation. All rights reserved.