Class TopologyAwareNodeSelector

    • Constructor Detail

      • TopologyAwareNodeSelector

        public TopologyAwareNodeSelector​(InternalNodeManager nodeManager,
                                         NodeTaskMap nodeTaskMap,
                                         boolean includeCoordinator,
                                         Supplier<NodeMap> nodeMap,
                                         int minCandidates,
                                         int maxSplitsPerNode,
                                         int maxPendingSplitsPerTask,
                                         List<io.airlift.stats.CounterStat> topologicalSplitCounters,
                                         NetworkTopology networkTopology)
    • Method Detail

      • computeAssignments

        public SplitPlacementResult computeAssignments​(Set<Split> splits,
                                                       List<RemoteTask> existingTasks)
        Description copied from interface: NodeSelector
        Identifies the nodes for running the specified splits.
        Specified by:
        computeAssignments in interface NodeSelector
        Parameters:
        splits - the splits that need to be assigned to nodes
        Returns:
        a multimap from node to splits only for splits for which we could identify a node to schedule on. If we cannot find an assignment for a split, it is not included in the map. Also returns a future indicating when to reattempt scheduling of this batch of splits, if some of them could not be scheduled.
      • computeAssignments

        public SplitPlacementResult computeAssignments​(Set<Split> splits,
                                                       List<RemoteTask> existingTasks,
                                                       BucketNodeMap bucketNodeMap)
        Description copied from interface: NodeSelector
        Identifies the nodes for running the specified splits based on a precomputed fixed partitioning.
        Specified by:
        computeAssignments in interface NodeSelector
        Parameters:
        splits - the splits that need to be assigned to nodes
        Returns:
        a multimap from node to splits only for splits for which we could identify a node with free space. If we cannot find an assignment for a split, it is not included in the map. Also returns a future indicating when to reattempt scheduling of this batch of splits, if some of them could not be scheduled.