## Uses of Class
org.apache.storm.scheduler.WorkerSlot

- Packages that use WorkerSlot
  Package | Description
  --- | ---
  org.apache.storm.daemon.nimbus |
  org.apache.storm.scheduler |
  org.apache.storm.scheduler.multitenant |
  org.apache.storm.scheduler.resource |
  org.apache.storm.scheduler.resource.strategies.scheduling |

- - ### Uses of WorkerSlot in org.apache.storm.daemon.nimbus

    Methods in org.apache.storm.daemon.nimbus that return types with arguments of type WorkerSlot
    Modifier and Type | Method | Description
    --- | --- | ---
    `Collection<WorkerSlot>` | Nimbus.StandaloneINimbus.`allSlotsAvailableForScheduling​(Collection<SupervisorDetails> supervisors, Topologies topologies, Set<String> topologiesMissingAssignments)` |

    Method parameters in org.apache.storm.daemon.nimbus with type arguments of type WorkerSlot
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | Nimbus.StandaloneINimbus.`assignSlots​(Topologies topologies, Map<String,​Collection<WorkerSlot>> newSlotsByTopologyId)` |

  - ### Uses of WorkerSlot in org.apache.storm.scheduler

    Methods in org.apache.storm.scheduler that return types with arguments of type WorkerSlot
    Modifier and Type | Method | Description
    --- | --- | ---
    `Collection<WorkerSlot>` | INimbus.`allSlotsAvailableForScheduling​(Collection<SupervisorDetails> existingSupervisors, Topologies topologies, Set<String> topologiesMissingAssignments)` | Returns all slots that are available for the next round of scheduling.
    `static Map<WorkerSlot,​List<ExecutorDetails>>` | EvenScheduler.`getAliveAssignedWorkerSlotExecutors​(Cluster cluster, String topologyId)` |
    `List<WorkerSlot>` | Cluster.`getAssignableSlots()` |
    `List<WorkerSlot>` | Cluster.`getAssignableSlots​(SupervisorDetails supervisor)` |
    `List<WorkerSlot>` | ISchedulingState.`getAssignableSlots()` | Get all non-blacklisted slots in the cluster.
    `List<WorkerSlot>` | ISchedulingState.`getAssignableSlots​(SupervisorDetails supervisor)` | Return all non-blacklisted slots on this supervisor.
    `List<WorkerSlot>` | Cluster.`getAvailableSlots()` |
    `List<WorkerSlot>` | Cluster.`getAvailableSlots​(SupervisorDetails supervisor)` |
    `List<WorkerSlot>` | ISchedulingState.`getAvailableSlots()` | Get all the available worker slots in the cluster.
    `List<WorkerSlot>` | ISchedulingState.`getAvailableSlots​(SupervisorDetails supervisor)` | Return all the available slots on this supervisor.
    `Map<ExecutorDetails,​WorkerSlot>` | SchedulerAssignment.`getExecutorToSlot()` | Get the map of executor to WorkerSlot.
    `Map<ExecutorDetails,​WorkerSlot>` | SchedulerAssignmentImpl.`getExecutorToSlot()` |
    `List<WorkerSlot>` | Cluster.`getNonBlacklistedAvailableSlots​(List<String> blacklistedSupervisorIds)` |
    `List<WorkerSlot>` | ISchedulingState.`getNonBlacklistedAvailableSlots​(List<String> blacklistedSupervisorIds)` | Get all the available worker slots in the cluster, that are not blacklisted.
    `Map<WorkerSlot,​WorkerResources>` | SchedulerAssignment.`getScheduledResources()` | Get the slot to resource mapping.
    `Map<WorkerSlot,​WorkerResources>` | SchedulerAssignmentImpl.`getScheduledResources()` |
    `Set<WorkerSlot>` | SchedulerAssignment.`getSlots()` | Get the set of all slots that are a part of this.
    `Set<WorkerSlot>` | SchedulerAssignmentImpl.`getSlots()` |
    `Map<WorkerSlot,​Collection<ExecutorDetails>>` | SchedulerAssignment.`getSlotToExecutors()` | Get the mapping of slot to executors on that slot.
    `Map<WorkerSlot,​Collection<ExecutorDetails>>` | SchedulerAssignmentImpl.`getSlotToExecutors()` |
    `Collection<WorkerSlot>` | Cluster.`getUsedSlots()` |
    `Collection<WorkerSlot>` | ISchedulingState.`getUsedSlots()` | Get all currently occupied slots.
    `Collection<WorkerSlot>` | Cluster.`getUsedSlotsByTopologyId​(String topologyId)` |
    `Collection<WorkerSlot>` | ISchedulingState.`getUsedSlotsByTopologyId​(String topologyId)` | get slots used by a topology.
    `Map<String,​Map<WorkerSlot,​WorkerResources>>` | Cluster.`getWorkerResourcesMap()` |
    `Map<String,​Map<WorkerSlot,​WorkerResources>>` | ISchedulingState.`getWorkerResourcesMap()` | Gets the reference to the full topology->worker resource map.
    `static Set<WorkerSlot>` | DefaultScheduler.`slotsCanReassign​(Cluster cluster, Set<WorkerSlot> slots)` |
    `static List<WorkerSlot>` | EvenScheduler.`sortSlots​(List<WorkerSlot> availableSlots)` |

    Methods in org.apache.storm.scheduler with parameters of type WorkerSlot
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | Cluster.`assign​(WorkerSlot slot, String topologyId, Collection<ExecutorDetails> executors)` | Assign the slot to the executors for this topology.
    `void` | SchedulerAssignmentImpl.`assign​(WorkerSlot slot, Collection<ExecutorDetails> executors)` | Deprecated.
    `void` | SchedulerAssignmentImpl.`assign​(WorkerSlot slot, Collection<ExecutorDetails> executors, WorkerResources slotResources)` | Assign the slot to executors.
    `void` | Cluster.`freeSlot​(WorkerSlot slot)` | Free the specified slot.
    `WorkerResources` | Cluster.`getWorkerResources​(WorkerSlot ws)` |
    `WorkerResources` | ISchedulingState.`getWorkerResources​(WorkerSlot ws)` | Get the resources for a given slot.
    `boolean` | Cluster.`isSlotOccupied​(WorkerSlot slot)` |
    `boolean` | ISchedulingState.`isSlotOccupied​(WorkerSlot slot)` | Check if a slot is occupied or not.
    `boolean` | SchedulerAssignment.`isSlotOccupied​(WorkerSlot slot)` | Is this slot part of this assignment or not.
    `boolean` | SchedulerAssignmentImpl.`isSlotOccupied​(WorkerSlot slot)` |
    `void` | SchedulerAssignmentImpl.`unassignBySlot​(WorkerSlot slot)` | Release the slot occupied by this assignment.
    `boolean` | Cluster.`wouldFit​(WorkerSlot ws, ExecutorDetails exec, TopologyDetails td, NormalizedResourceOffer resourcesAvailable, double maxHeap)` |
    `boolean` | ISchedulingState.`wouldFit​(WorkerSlot ws, ExecutorDetails exec, TopologyDetails td, NormalizedResourceOffer resourcesAvailable, double maxHeap)` | Would scheduling exec on ws fit? With a heap <= maxHeap total memory added <= memoryAvailable and cpu added <= cpuAvailable.

    Method parameters in org.apache.storm.scheduler with type arguments of type WorkerSlot
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | INimbus.`assignSlots​(Topologies topologies, Map<String,​Collection<WorkerSlot>> newSlotsByTopologyId)` | this is called after the assignment is changed in ZK.
    `void` | Cluster.`freeSlots​(Collection<WorkerSlot> slots)` | free the slots.
    `static Set<WorkerSlot>` | DefaultScheduler.`slotsCanReassign​(Cluster cluster, Set<WorkerSlot> slots)` |
    `static List<WorkerSlot>` | EvenScheduler.`sortSlots​(List<WorkerSlot> availableSlots)` |

    Constructor parameters in org.apache.storm.scheduler with type arguments of type WorkerSlot
    Constructor | Description
    --- | ---
    `SchedulerAssignmentImpl​(String topologyId, Map<ExecutorDetails,​WorkerSlot> executorToSlot, Map<WorkerSlot,​WorkerResources> resources, Map<String,​Double> nodeIdToTotalSharedOffHeap)` | Create a new assignment.

  - ### Uses of WorkerSlot in org.apache.storm.scheduler.multitenant

    Methods in org.apache.storm.scheduler.multitenant with parameters of type WorkerSlot
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | Node.`free​(WorkerSlot ws, Cluster cluster, boolean forceFree)` | Frees a single slot in this node.

  - ### Uses of WorkerSlot in org.apache.storm.scheduler.resource

    Methods in org.apache.storm.scheduler.resource that return types with arguments of type WorkerSlot
    Modifier and Type | Method | Description
    --- | --- | ---
    `Collection<WorkerSlot>` | RasNode.`getFreeSlots()` |
    `Collection<WorkerSlot>` | RasNode.`getSlotsAvailableToScheduleOn()` |
    `Collection<WorkerSlot>` | RasNode.`getUsedSlots()` |
    `Collection<WorkerSlot>` | RasNode.`getUsedSlots​(String topId)` | Get slots used by the given topology.

    Methods in org.apache.storm.scheduler.resource with parameters of type WorkerSlot
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | RasNode.`assign​(WorkerSlot target, TopologyDetails td, Collection<ExecutorDetails> executors)` | Assigns a worker to a node.
    `void` | RasNode.`assignSingleExecutor​(WorkerSlot ws, ExecutorDetails exec, TopologyDetails td)` | Assign a single executor to a slot, even if other things are in the slot.
    `void` | RasNode.`free​(WorkerSlot ws)` | Frees a single slot in this node.
    `boolean` | RasNode.`wouldFit​(WorkerSlot ws, ExecutorDetails exec, TopologyDetails td)` | Would scheduling exec in ws fit with the current resource constraints.

    Method parameters in org.apache.storm.scheduler.resource with type arguments of type WorkerSlot
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | RasNodes.`freeSlots​(Collection<WorkerSlot> workerSlots)` | Free everything on the given slots.

    Constructor parameters in org.apache.storm.scheduler.resource with type arguments of type WorkerSlot
    Constructor | Description
    --- | ---
    `RasNode​(String nodeId, SupervisorDetails sup, Cluster cluster, Map<String,​WorkerSlot> workerIdToWorker, Map<String,​Map<String,​Collection<ExecutorDetails>>> assignmentMap)` | Create a new node.

  - ### Uses of WorkerSlot in org.apache.storm.scheduler.resource.strategies.scheduling

    Methods in org.apache.storm.scheduler.resource.strategies.scheduling with parameters of type WorkerSlot
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected int` | BaseResourceAwareStrategy.`assignBoundAckersForNewWorkerSlot​(ExecutorDetails exec, RasNode node, WorkerSlot workerSlot)` | Determine how many bound ackers to put into the given workerSlot.
    `void` | SchedulingSearcherState.`assignCurrentExecutor​(Map<ExecutorDetails,​String> execToComp, RasNode node, WorkerSlot workerSlot)` | Attempt to assign current executor (execIndex points to) to worker and node.
    `void` | SchedulingSearcherState.`assignSingleBoundAcker​(RasNode node, WorkerSlot workerSlot)` | Remove the head of unassigned ackers and attempt to assign it to a workerSlot as a bound acker.
    `void` | SchedulingSearcherState.`backtrack​(Map<ExecutorDetails,​String> execToComp, RasNode[] nodesForExec, WorkerSlot[] workerSlotForExec)` | Backtrack to prior executor that was directly assigned.
    `void` | SchedulingSearcherState.`freeWorkerSlotWithBoundAckers​(RasNode node, WorkerSlot workerSlot)` | Free the bound-ackers for the given node and workerSlot.
    `Map<String,​Integer>` | SchedulingSearcherState.`getCompAssignmentCntMapForWorker​(WorkerSlot workerSlot)` | Get a map of component to count for the specified worker slot.
    `int` | SchedulingSearcherState.`getNumOfAckersToBind​(ExecutorDetails exec, WorkerSlot workerSlot)` | Determine how many bound ackers to put in before assigning the executor to current workerSlot.
    `protected boolean` | BaseResourceAwareStrategy.`isExecAssignmentToWorkerValid​(ExecutorDetails exec, WorkerSlot worker)` | Check if the assignment of the executor to the worker is valid.
    `protected boolean` | ConstraintSolverStrategy.`isExecAssignmentToWorkerValid​(ExecutorDetails exec, WorkerSlot worker)` | Check if any constraints are violated if exec is scheduled on worker.

    Constructor parameters in org.apache.storm.scheduler.resource.strategies.scheduling with type arguments of type WorkerSlot
    Constructor | Description
    --- | ---
    `SchedulingSearcherState​(Map<WorkerSlot,​Map<String,​Integer>> workerCompAssignmentCnts, Map<RasNode,​Map<String,​Integer>> nodeCompAssignmentCnts, int maxStatesSearched, long maxTimeMs, List<ExecutorDetails> execs, LinkedList<ExecutorDetails> unassignedAckers, TopologyDetails td, Map<ExecutorDetails,​String> execToComp)` |