Package io.trino.execution.scheduler
Class NodeScheduler
- java.lang.Object
-
- io.trino.execution.scheduler.NodeScheduler
-
public class NodeScheduler extends Object
-
-
Constructor Summary
Constructors Constructor Description NodeScheduler(NodeSelectorFactory nodeSelectorFactory)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static longcalculateLowWatermark(long maxPendingSplitsWeightPerTask)static booleancanAssignSplitBasedOnWeight(long currentWeight, long weightLimit, SplitWeight splitWeight)NodeSelectorcreateNodeSelector(Session session, Optional<CatalogName> catalogName)static List<InternalNode>getAllNodes(NodeMap nodeMap, boolean includeCoordinator)static ResettableRandomizedIterator<InternalNode>randomizedNodes(NodeMap nodeMap, boolean includeCoordinator, Set<InternalNode> excludedNodes)static SplitPlacementResultselectDistributionNodes(NodeMap nodeMap, NodeTaskMap nodeTaskMap, long maxSplitsWeightPerNode, long maxPendingSplitsWeightPerTask, int maxUnacknowledgedSplitsPerTask, Set<Split> splits, List<RemoteTask> existingTasks, BucketNodeMap bucketNodeMap)static List<InternalNode>selectExactNodes(NodeMap nodeMap, List<HostAddress> hosts, boolean includeCoordinator)static List<InternalNode>selectNodes(int limit, Iterator<InternalNode> candidates)static com.google.common.util.concurrent.ListenableFuture<Void>toWhenHasSplitQueueSpaceFuture(List<RemoteTask> existingTasks, long weightSpaceThreshold)static com.google.common.util.concurrent.ListenableFuture<Void>toWhenHasSplitQueueSpaceFuture(Set<InternalNode> blockedNodes, List<RemoteTask> existingTasks, long weightSpaceThreshold)
-
-
-
Constructor Detail
-
NodeScheduler
@Inject public NodeScheduler(NodeSelectorFactory nodeSelectorFactory)
-
-
Method Detail
-
createNodeSelector
public NodeSelector createNodeSelector(Session session, Optional<CatalogName> catalogName)
-
getAllNodes
public static List<InternalNode> getAllNodes(NodeMap nodeMap, boolean includeCoordinator)
-
selectNodes
public static List<InternalNode> selectNodes(int limit, Iterator<InternalNode> candidates)
-
randomizedNodes
public static ResettableRandomizedIterator<InternalNode> randomizedNodes(NodeMap nodeMap, boolean includeCoordinator, Set<InternalNode> excludedNodes)
-
selectExactNodes
public static List<InternalNode> selectExactNodes(NodeMap nodeMap, List<HostAddress> hosts, boolean includeCoordinator)
-
selectDistributionNodes
public static SplitPlacementResult selectDistributionNodes(NodeMap nodeMap, NodeTaskMap nodeTaskMap, long maxSplitsWeightPerNode, long maxPendingSplitsWeightPerTask, int maxUnacknowledgedSplitsPerTask, Set<Split> splits, List<RemoteTask> existingTasks, BucketNodeMap bucketNodeMap)
-
canAssignSplitBasedOnWeight
public static boolean canAssignSplitBasedOnWeight(long currentWeight, long weightLimit, SplitWeight splitWeight)
-
calculateLowWatermark
public static long calculateLowWatermark(long maxPendingSplitsWeightPerTask)
-
toWhenHasSplitQueueSpaceFuture
public static com.google.common.util.concurrent.ListenableFuture<Void> toWhenHasSplitQueueSpaceFuture(Set<InternalNode> blockedNodes, List<RemoteTask> existingTasks, long weightSpaceThreshold)
-
toWhenHasSplitQueueSpaceFuture
public static com.google.common.util.concurrent.ListenableFuture<Void> toWhenHasSplitQueueSpaceFuture(List<RemoteTask> existingTasks, long weightSpaceThreshold)
-
-