@ThreadSafe public class TaskHandle extends Object
Modifier and Type | Field and 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 and Description |
---|
TaskHandle(TaskId taskId,
MultilevelSplitQueue splitQueue,
DoubleSupplier utilizationSupplier,
int initialSplitConcurrency,
io.airlift.units.Duration splitConcurrencyAdjustFrequency,
OptionalInt maxDriversPerTask) |
Modifier and Type | Method and 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() |
protected final DoubleSupplier utilizationSupplier
protected final Queue<PrioritizedSplitRunner> queuedLeafSplits
protected final List<PrioritizedSplitRunner> runningLeafSplits
protected final List<PrioritizedSplitRunner> runningIntermediateSplits
protected long scheduledNanos
protected final SplitConcurrencyController concurrencyController
protected final AtomicReference<Priority> priority
public TaskHandle(TaskId taskId, MultilevelSplitQueue splitQueue, DoubleSupplier utilizationSupplier, int initialSplitConcurrency, io.airlift.units.Duration splitConcurrencyAdjustFrequency, OptionalInt maxDriversPerTask)
public Priority addScheduledNanos(long durationNanos)
public Priority resetLevelPriority()
public boolean isDestroyed()
public Priority getPriority()
public TaskId getTaskId()
public OptionalInt getMaxDriversPerTask()
public List<PrioritizedSplitRunner> destroy()
public void enqueueSplit(PrioritizedSplitRunner split)
public void recordIntermediateSplit(PrioritizedSplitRunner split)
public long getScheduledNanos()
public PrioritizedSplitRunner pollNextSplit()
public void splitComplete(PrioritizedSplitRunner split)
public int getNextSplitId()
Copyright © 2012–2019. All rights reserved.