Package io.prestosql.execution.executor
Class TaskHandle
- java.lang.Object
-
- io.prestosql.execution.executor.TaskHandle
-
@ThreadSafe public class TaskHandle extends Object
-
-
Field Summary
Fields Modifier and Type Field Description protected SplitConcurrencyController
concurrencyController
protected AtomicReference<Priority>
priority
protected Queue<PrioritizedSplitRunner>
queuedLeafSplits
protected List<PrioritizedSplitRunner>
runningIntermediateSplits
protected List<PrioritizedSplitRunner>
runningLeafSplits
protected long
scheduledNanos
protected DoubleSupplier
utilizationSupplier
-
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 Priority
addScheduledNanos(long durationNanos)
List<PrioritizedSplitRunner>
destroy()
void
enqueueSplit(PrioritizedSplitRunner split)
OptionalInt
getMaxDriversPerTask()
int
getNextSplitId()
Priority
getPriority()
long
getScheduledNanos()
TaskId
getTaskId()
boolean
isDestroyed()
PrioritizedSplitRunner
pollNextSplit()
void
recordIntermediateSplit(PrioritizedSplitRunner split)
Priority
resetLevelPriority()
void
splitComplete(PrioritizedSplitRunner split)
String
toString()
-
-
-
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()
-
-