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

- Packages that use ExecutorDetails
  Package | Description
  --- | ---
  org.apache.storm.scheduler |
  org.apache.storm.scheduler.multitenant |
  org.apache.storm.scheduler.resource |
  org.apache.storm.scheduler.resource.strategies.scheduling |
  org.apache.storm.scheduler.resource.strategies.scheduling.sorter |

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

    Methods in org.apache.storm.scheduler that return types with arguments of type ExecutorDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Map<WorkerSlot,​List<ExecutorDetails>>` | EvenScheduler.`getAliveAssignedWorkerSlotExecutors​(Cluster cluster, String topologyId)` |
    `Map<String,​Set<ExecutorDetails>>` | TopologyDetails.`getComponentToExecutors()` |
    `List<ExecutorDetails>` | Component.`getExecs()` |
    `Set<ExecutorDetails>` | SchedulerAssignment.`getExecutors()` | Get the set of all executors.
    `Set<ExecutorDetails>` | SchedulerAssignmentImpl.`getExecutors()` |
    `Set<ExecutorDetails>` | TopologyDetails.`getExecutors()` |
    `Map<ExecutorDetails,​String>` | TopologyDetails.`getExecutorToComponent()` |
    `Map<ExecutorDetails,​WorkerSlot>` | SchedulerAssignment.`getExecutorToSlot()` | Get the map of executor to WorkerSlot.
    `Map<ExecutorDetails,​WorkerSlot>` | SchedulerAssignmentImpl.`getExecutorToSlot()` |
    `Map<String,​List<ExecutorDetails>>` | Cluster.`getNeedsSchedulingComponentToExecutors​(TopologyDetails topology)` |
    `Map<String,​List<ExecutorDetails>>` | ISchedulingState.`getNeedsSchedulingComponentToExecutors​(TopologyDetails topology)` | Get the component name to executor list for executors that need to be scheduled.
    `Map<ExecutorDetails,​String>` | Cluster.`getNeedsSchedulingExecutorToComponents​(TopologyDetails topology)` |
    `Map<ExecutorDetails,​String>` | ISchedulingState.`getNeedsSchedulingExecutorToComponents​(TopologyDetails topology)` | Get the executor to component name map for executors that need to be scheduled.
    `Map<WorkerSlot,​Collection<ExecutorDetails>>` | SchedulerAssignment.`getSlotToExecutors()` | Get the mapping of slot to executors on that slot.
    `Map<WorkerSlot,​Collection<ExecutorDetails>>` | SchedulerAssignmentImpl.`getSlotToExecutors()` |
    `Collection<ExecutorDetails>` | Cluster.`getUnassignedExecutors​(TopologyDetails topology)` |
    `Collection<ExecutorDetails>` | ISchedulingState.`getUnassignedExecutors​(TopologyDetails topology)` | get the unassigned executors of the topology.
    `Map<ExecutorDetails,​String>` | TopologyDetails.`selectExecutorToComponent​(Collection<ExecutorDetails> executors)` |

    Methods in org.apache.storm.scheduler with parameters of type ExecutorDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | TopologyDetails.`addResourcesForExec​(ExecutorDetails exec, NormalizedResourceRequest resourceList)` | add resource requirements for a executor.
    `String` | TopologyDetails.`getComponentFromExecutor​(ExecutorDetails exec)` |
    `Double` | TopologyDetails.`getOffHeapMemoryRequirement​(ExecutorDetails exec)` | Gets the off heap memory requirement for a certain task within a topology.
    `Double` | TopologyDetails.`getOnHeapMemoryRequirement​(ExecutorDetails exec)` | Gets the on heap memory requirement for a certain task within a topology.
    `NormalizedResourceRequest` | TopologyDetails.`getTaskResourceReqList​(ExecutorDetails exec)` | get the resources requirements for a executor.
    `Double` | TopologyDetails.`getTotalCpuReqTask​(ExecutorDetails exec)` | Get the total CPU requirement for executor.
    `Double` | TopologyDetails.`getTotalMemReqTask​(ExecutorDetails exec)` | Gets the total memory requirement for a task.
    `NormalizedResourceRequest` | TopologyDetails.`getTotalResources​(ExecutorDetails exec)` | Get the total resource requirement for an executor.
    `boolean` | TopologyDetails.`hasExecInTopo​(ExecutorDetails exec)` | Checks if a executor is part of this topology.
    `boolean` | SchedulerAssignment.`isExecutorAssigned​(ExecutorDetails executor)` | Is the executor assigned or not.
    `boolean` | SchedulerAssignmentImpl.`isExecutorAssigned​(ExecutorDetails executor)` |
    `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 ExecutorDetails
    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.
    `NormalizedResourceRequest` | TopologyDetails.`getApproximateResources​(Set<ExecutorDetails> execs)` | Get approximate resources for given topology executors.
    `Set<SharedMemory>` | TopologyDetails.`getSharedMemoryRequests​(Collection<ExecutorDetails> executors)` | Gets the total memory resource list for a set of tasks that is part of a topology.
    `Map<ExecutorDetails,​String>` | TopologyDetails.`selectExecutorToComponent​(Collection<ExecutorDetails> executors)` |

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

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

    Method parameters in org.apache.storm.scheduler.multitenant with type arguments of type ExecutorDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | Node.`assign​(String topId, Collection<ExecutorDetails> executors, Cluster cluster)` | Assign a free slot on the node to the following topology and executors.

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

    Methods in org.apache.storm.scheduler.resource with parameters of type ExecutorDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | RasNode.`assignSingleExecutor​(WorkerSlot ws, ExecutorDetails exec, TopologyDetails td)` | Assign a single executor to a slot, even if other things are in the slot.
    `boolean` | RasNode.`couldEverFit​(ExecutorDetails exec, TopologyDetails td)` | Is there any possibility that exec could ever fit on this node.
    `void` | RasNode.`freeSingleExecutor​(ExecutorDetails exec, TopologyDetails topo)` | frees a single executor.
    `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 ExecutorDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | RasNode.`assign​(WorkerSlot target, TopologyDetails td, Collection<ExecutorDetails> executors)` | Assigns a worker to a node.

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

    Fields in org.apache.storm.scheduler.resource.strategies.scheduling with type parameters of type ExecutorDetails
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Map<String,​Set<ExecutorDetails>>` | BaseResourceAwareStrategy.`compToExecs` |
    `protected Map<ExecutorDetails,​String>` | BaseResourceAwareStrategy.`execToComp` |

    Methods in org.apache.storm.scheduler.resource.strategies.scheduling that return ExecutorDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `ExecutorDetails` | SchedulingSearcherState.`currentExec()` | Get the current unassigned executor.
    `ExecutorDetails` | SchedulingSearcherState.`peekUnassignedAckers()` |

    Methods in org.apache.storm.scheduler.resource.strategies.scheduling that return types with arguments of type ExecutorDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `Set<ExecutorDetails>` | SchedulingSearcherState.`getBoundAckers()` |
    `Set<ExecutorDetails>` | SchedulingSearcherState.`getExecsWithBoundAckers()` |
    `LinkedList<ExecutorDetails>` | SchedulingSearcherState.`getUnassignedAckers()` |

    Methods in org.apache.storm.scheduler.resource.strategies.scheduling with parameters of type ExecutorDetails
    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.
    `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.

    Method parameters in org.apache.storm.scheduler.resource.strategies.scheduling with type arguments of type ExecutorDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `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.`backtrack​(Map<ExecutorDetails,​String> execToComp, RasNode[] nodesForExec, WorkerSlot[] workerSlotForExec)` | Backtrack to prior executor that was directly assigned.
    `protected SchedulingResult` | BaseResourceAwareStrategy.`scheduleExecutorsOnNodes​(List<ExecutorDetails> orderedExecutors, Iterable<String> sortedNodesIter)` | Try to schedule till successful or till limits (backtrack count or time) have been exceeded.
    `protected SchedulingResult` | RoundRobinResourceAwareStrategy.`scheduleExecutorsOnNodes​(List<ExecutorDetails> orderedExecutors, Iterable<String> sortedNodesIterable)` | For each component try to schedule executors in sequence on the nodes.
    `void` | SchedulingSearcherState.`setSortedExecs​(List<ExecutorDetails> sortedExecs)` | Reassign the list of executors as long as it contains the same executors as before.

    Constructor parameters in org.apache.storm.scheduler.resource.strategies.scheduling with type arguments of type ExecutorDetails
    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)` |
    `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)` |

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

    Methods in org.apache.storm.scheduler.resource.strategies.scheduling.sorter that return types with arguments of type ExecutorDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<ExecutorDetails>` | ExecSorterByConnectionCount.`sortExecutors​(Set<ExecutorDetails> unassignedExecutors)` | Order executors based on how many in and out connections it will potentially need to make, in descending order.
    `List<ExecutorDetails>` | ExecSorterByConstraintSeverity.`sortExecutors​(Set<ExecutorDetails> unassignedExecutors)` |
    `List<ExecutorDetails>` | ExecSorterByProximity.`sortExecutors​(Set<ExecutorDetails> unassignedExecutors)` | Order executors by network proximity needs.
    `List<ExecutorDetails>` | IExecSorter.`sortExecutors​(Set<ExecutorDetails> execs)` | Sort the supplied unique collection of ExecutorDetails in the order in which they should be scheduled.

    Methods in org.apache.storm.scheduler.resource.strategies.scheduling.sorter with parameters of type ExecutorDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | INodeSorter.`prepare​(ExecutorDetails exec)` | Prepare for node sorting.
    `void` | NodeSorter.`prepare​(ExecutorDetails exec)` |
    `void` | NodeSorterHostProximity.`prepare​(ExecutorDetails exec)` |
    `protected List<ObjectResourcesItem>` | NodeSorter.`sortObjectResources​(ObjectResourcesSummary resourcesSummary, ExecutorDetails exec, NodeSorter.ExistingScheduleFunc existingScheduleFunc)` | Scheduling uses `NodeSorter.sortAllNodes()` which eventually calls this method whose behavior can be altered by setting `NodeSorter.nodeSortType`.
    `protected Iterable<ObjectResourcesItem>` | NodeSorterHostProximity.`sortObjectResources​(ObjectResourcesSummary resourcesSummary, ExecutorDetails exec, NodeSorterHostProximity.ExistingScheduleFunc existingScheduleFunc)` | Scheduling uses `NodeSorterHostProximity.sortAllNodes()` which eventually calls this method whose behavior can be altered by setting `NodeSorterHostProximity.nodeSortType`.

    Method parameters in org.apache.storm.scheduler.resource.strategies.scheduling.sorter with type arguments of type ExecutorDetails
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<ExecutorDetails>` | ExecSorterByConnectionCount.`sortExecutors​(Set<ExecutorDetails> unassignedExecutors)` | Order executors based on how many in and out connections it will potentially need to make, in descending order.
    `List<ExecutorDetails>` | ExecSorterByConstraintSeverity.`sortExecutors​(Set<ExecutorDetails> unassignedExecutors)` |
    `List<ExecutorDetails>` | ExecSorterByProximity.`sortExecutors​(Set<ExecutorDetails> unassignedExecutors)` | Order executors by network proximity needs.
    `List<ExecutorDetails>` | IExecSorter.`sortExecutors​(Set<ExecutorDetails> execs)` | Sort the supplied unique collection of ExecutorDetails in the order in which they should be scheduled.