Class ExecSorterByConnectionCount
- java.lang.Object
-
- org.apache.storm.scheduler.resource.strategies.scheduling.sorter.ExecSorterByConnectionCount
-
- All Implemented Interfaces:
IExecSorter
public class ExecSorterByConnectionCount extends Object implements IExecSorter
-
-
Field Summary
Fields Modifier and Type Field Description protected TopologyDetails
topologyDetails
-
Constructor Summary
Constructors Constructor Description ExecSorterByConnectionCount(TopologyDetails topologyDetails)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<ExecutorDetails>
sortExecutors(Set<ExecutorDetails> unassignedExecutors)
Order executors based on how many in and out connections it will potentially need to make, in descending order.
-
-
-
Field Detail
-
topologyDetails
protected TopologyDetails topologyDetails
-
-
Constructor Detail
-
ExecSorterByConnectionCount
public ExecSorterByConnectionCount(TopologyDetails topologyDetails)
-
-
Method Detail
-
sortExecutors
public List<ExecutorDetails> sortExecutors(Set<ExecutorDetails> unassignedExecutors)
Order executors based on how many in and out connections it will potentially need to make, in descending order. First order components by the number of in and out connections it will have. Then iterate through the sorted list of components. For each component sort the neighbors of that component by how many connections it will have to make with that component. Add an executor from this component and then from each neighboring component in sorted order. Do this until there is nothing left to schedule. Then add back executors not accounted for - which are system executors.- Specified by:
sortExecutors
in interfaceIExecSorter
- Parameters:
unassignedExecutors
- an unmodifiable set of executors that need to be scheduled.- Returns:
- a list of executors in sorted order for scheduling.
-
-