Package io.trino.execution.executor
Class TaskHandle
- java.lang.Object
-
- io.trino.execution.executor.TaskHandle
-
@ThreadSafe public class TaskHandle extends Object
-
-
Field Summary
Fields Modifier and Type Field Description protected SplitConcurrencyControllerconcurrencyControllerprotected AtomicReference<Priority>priorityprotected Queue<PrioritizedSplitRunner>queuedLeafSplitsprotected List<PrioritizedSplitRunner>runningIntermediateSplitsprotected List<PrioritizedSplitRunner>runningLeafSplitsprotected longscheduledNanosprotected DoubleSupplierutilizationSupplier
-
Constructor Summary
Constructors Constructor Description TaskHandle(TaskId taskId, MultilevelSplitQueue splitQueue, DoubleSupplier utilizationSupplier, int initialSplitConcurrency, io.airlift.units.Duration splitConcurrencyAdjustFrequency, OptionalInt maxDriversPerTask)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PriorityaddScheduledNanos(long durationNanos)List<PrioritizedSplitRunner>destroy()voidenqueueSplit(PrioritizedSplitRunner split)OptionalIntgetMaxDriversPerTask()intgetNextSplitId()PrioritygetPriority()longgetScheduledNanos()TaskIdgetTaskId()booleanisDestroyed()PrioritizedSplitRunnerpollNextSplit()voidrecordIntermediateSplit(PrioritizedSplitRunner split)PriorityresetLevelPriority()voidsplitComplete(PrioritizedSplitRunner split)StringtoString()
-
-
-
Field Detail
-
utilizationSupplier
protected final DoubleSupplier utilizationSupplier
-
queuedLeafSplits
protected final Queue<PrioritizedSplitRunner> queuedLeafSplits
-
runningLeafSplits
protected final List<PrioritizedSplitRunner> runningLeafSplits
-
runningIntermediateSplits
protected final List<PrioritizedSplitRunner> runningIntermediateSplits
-
scheduledNanos
protected long scheduledNanos
-
concurrencyController
protected final SplitConcurrencyController concurrencyController
-
priority
protected final AtomicReference<Priority> priority
-
-
Constructor Detail
-
TaskHandle
public TaskHandle(TaskId taskId, MultilevelSplitQueue splitQueue, DoubleSupplier utilizationSupplier, int initialSplitConcurrency, io.airlift.units.Duration splitConcurrencyAdjustFrequency, OptionalInt maxDriversPerTask)
-
-
Method Detail
-
addScheduledNanos
public Priority addScheduledNanos(long durationNanos)
-
resetLevelPriority
public Priority resetLevelPriority()
-
isDestroyed
public boolean isDestroyed()
-
getPriority
public Priority getPriority()
-
getTaskId
public TaskId getTaskId()
-
getMaxDriversPerTask
public OptionalInt getMaxDriversPerTask()
-
destroy
public List<PrioritizedSplitRunner> destroy()
-
enqueueSplit
public void enqueueSplit(PrioritizedSplitRunner split)
-
recordIntermediateSplit
public void recordIntermediateSplit(PrioritizedSplitRunner split)
-
getScheduledNanos
public long getScheduledNanos()
-
pollNextSplit
public PrioritizedSplitRunner pollNextSplit()
-
splitComplete
public void splitComplete(PrioritizedSplitRunner split)
-
getNextSplitId
public int getNextSplitId()
-
-