Class ExecSorterByConnectionCount

All Implemented Interfaces:

public class ExecSorterByConnectionCount extends Object implements IExecSorter
  • Field Details

  • Constructor Details

    • ExecSorterByConnectionCount

      public ExecSorterByConnectionCount(TopologyDetails topologyDetails)
  • Method Details

    • 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 interface IExecSorter
      unassignedExecutors - an unmodifiable set of executors that need to be scheduled.
      a list of executors in sorted order for scheduling.