Class TimeSharingTaskExecutor
java.lang.Object
io.trino.execution.executor.timesharing.TimeSharingTaskExecutor
- All Implemented Interfaces:
TaskExecutor
-
Constructor Summary
ConstructorsConstructorDescriptionTimeSharingTaskExecutor(int runnerThreads, int minDrivers, int guaranteedNumberOfDriversPerTask, int maximumNumberOfDriversPerTask, com.google.common.base.Ticker ticker) TimeSharingTaskExecutor(int runnerThreads, int minDrivers, int guaranteedNumberOfDriversPerTask, int maximumNumberOfDriversPerTask, io.airlift.units.Duration stuckSplitsWarningThreshold, VersionEmbedder versionEmbedder, io.opentelemetry.api.trace.Tracer tracer, MultilevelSplitQueue splitQueue, com.google.common.base.Ticker ticker) TimeSharingTaskExecutor(int runnerThreads, int minDrivers, int guaranteedNumberOfDriversPerTask, int maximumNumberOfDriversPerTask, MultilevelSplitQueue splitQueue, com.google.common.base.Ticker ticker) TimeSharingTaskExecutor(TaskManagerConfig config, VersionEmbedder versionEmbedder, io.opentelemetry.api.trace.Tracer tracer, MultilevelSplitQueue splitQueue) -
Method Summary
Modifier and TypeMethodDescriptionaddTask(TaskId taskId, DoubleSupplier utilizationSupplier, int initialSplitConcurrency, io.airlift.units.Duration splitConcurrencyAdjustFrequency, OptionalInt maxDriversPerTask) enqueueSplits(TaskHandle taskHandle, boolean intermediate, List<? extends SplitRunner> taskSplits) io.airlift.stats.TimeStatintlonglonglonglonglonglonglonglonglonglongintio.airlift.stats.CounterStatio.airlift.stats.CounterStatio.airlift.stats.TimeDistributionintio.airlift.stats.TimeDistributionio.airlift.stats.TimeDistributionio.airlift.stats.TimeDistributionio.airlift.stats.TimeDistributionio.airlift.stats.TimeDistributionio.airlift.stats.DistributionStatio.airlift.stats.TimeDistributionio.airlift.stats.TimeDistributionintio.airlift.concurrent.ThreadPoolExecutorMBeanlongintintlonglonglonglonglongio.airlift.stats.TimeStatio.airlift.stats.TimeStatgetStuckSplitTaskIds(io.airlift.units.Duration processingDurationThreshold, Predicate<RunningSplitInfo> filter) intgetTasks()intio.airlift.stats.TimeStatintvoidremoveTask(TaskHandle taskHandle) voidstart()voidstop()toString()
-
Constructor Details
-
TimeSharingTaskExecutor
@Inject public TimeSharingTaskExecutor(TaskManagerConfig config, VersionEmbedder versionEmbedder, io.opentelemetry.api.trace.Tracer tracer, MultilevelSplitQueue splitQueue) -
TimeSharingTaskExecutor
public TimeSharingTaskExecutor(int runnerThreads, int minDrivers, int guaranteedNumberOfDriversPerTask, int maximumNumberOfDriversPerTask, com.google.common.base.Ticker ticker) -
TimeSharingTaskExecutor
public TimeSharingTaskExecutor(int runnerThreads, int minDrivers, int guaranteedNumberOfDriversPerTask, int maximumNumberOfDriversPerTask, MultilevelSplitQueue splitQueue, com.google.common.base.Ticker ticker) -
TimeSharingTaskExecutor
public TimeSharingTaskExecutor(int runnerThreads, int minDrivers, int guaranteedNumberOfDriversPerTask, int maximumNumberOfDriversPerTask, io.airlift.units.Duration stuckSplitsWarningThreshold, VersionEmbedder versionEmbedder, io.opentelemetry.api.trace.Tracer tracer, MultilevelSplitQueue splitQueue, com.google.common.base.Ticker ticker)
-
-
Method Details
-
start
@PostConstruct public void start()- Specified by:
startin interfaceTaskExecutor
-
stop
@PreDestroy public void stop()- Specified by:
stopin interfaceTaskExecutor
-
toString
-
addTask
public TimeSharingTaskHandle addTask(TaskId taskId, DoubleSupplier utilizationSupplier, int initialSplitConcurrency, io.airlift.units.Duration splitConcurrencyAdjustFrequency, OptionalInt maxDriversPerTask) - Specified by:
addTaskin interfaceTaskExecutor
-
removeTask
- Specified by:
removeTaskin interfaceTaskExecutor
-
enqueueSplits
public List<com.google.common.util.concurrent.ListenableFuture<Void>> enqueueSplits(TaskHandle taskHandle, boolean intermediate, List<? extends SplitRunner> taskSplits) - Specified by:
enqueueSplitsin interfaceTaskExecutor
-
getTasks
public int getTasks() -
getRunnerThreads
public int getRunnerThreads() -
getMinimumNumberOfDrivers
public int getMinimumNumberOfDrivers() -
getTotalSplits
public int getTotalSplits() -
getIntermediateSplits
public int getIntermediateSplits() -
getWaitingSplits
public int getWaitingSplits() -
getLeafSplitsSize
public io.airlift.stats.DistributionStat getLeafSplitsSize() -
getCurrentLeafSplitsSize
public int getCurrentLeafSplitsSize() -
getRunningSplits
public int getRunningSplits() -
getBlockedSplits
public int getBlockedSplits() -
getCompletedTasksLevel0
public long getCompletedTasksLevel0() -
getCompletedTasksLevel1
public long getCompletedTasksLevel1() -
getCompletedTasksLevel2
public long getCompletedTasksLevel2() -
getCompletedTasksLevel3
public long getCompletedTasksLevel3() -
getCompletedTasksLevel4
public long getCompletedTasksLevel4() -
getCompletedSplitsLevel0
public long getCompletedSplitsLevel0() -
getCompletedSplitsLevel1
public long getCompletedSplitsLevel1() -
getCompletedSplitsLevel2
public long getCompletedSplitsLevel2() -
getCompletedSplitsLevel3
public long getCompletedSplitsLevel3() -
getCompletedSplitsLevel4
public long getCompletedSplitsLevel4() -
getRunningTasksLevel0
public long getRunningTasksLevel0() -
getRunningTasksLevel1
public long getRunningTasksLevel1() -
getRunningTasksLevel2
public long getRunningTasksLevel2() -
getRunningTasksLevel3
public long getRunningTasksLevel3() -
getRunningTasksLevel4
public long getRunningTasksLevel4() -
getSplitQueuedTime
public io.airlift.stats.TimeStat getSplitQueuedTime() -
getSplitWallTime
public io.airlift.stats.TimeStat getSplitWallTime() -
getBlockedQuantaWallTime
public io.airlift.stats.TimeStat getBlockedQuantaWallTime() -
getUnblockedQuantaWallTime
public io.airlift.stats.TimeStat getUnblockedQuantaWallTime() -
getLeafSplitScheduledTime
public io.airlift.stats.TimeDistribution getLeafSplitScheduledTime() -
getIntermediateSplitScheduledTime
public io.airlift.stats.TimeDistribution getIntermediateSplitScheduledTime() -
getLeafSplitWallTime
public io.airlift.stats.TimeDistribution getLeafSplitWallTime() -
getIntermediateSplitWallTime
public io.airlift.stats.TimeDistribution getIntermediateSplitWallTime() -
getLeafSplitWaitTime
public io.airlift.stats.TimeDistribution getLeafSplitWaitTime() -
getIntermediateSplitWaitTime
public io.airlift.stats.TimeDistribution getIntermediateSplitWaitTime() -
getLeafSplitCpuTime
public io.airlift.stats.TimeDistribution getLeafSplitCpuTime() -
getIntermediateSplitCpuTime
public io.airlift.stats.TimeDistribution getIntermediateSplitCpuTime() -
getGlobalScheduledTimeMicros
public io.airlift.stats.CounterStat getGlobalScheduledTimeMicros() -
getGlobalCpuTimeMicros
public io.airlift.stats.CounterStat getGlobalCpuTimeMicros() -
getMaxActiveSplitsInfo
-
getRunAwaySplitCount
public long getRunAwaySplitCount() -
getStuckSplitTaskIds
public Set<TaskId> getStuckSplitTaskIds(io.airlift.units.Duration processingDurationThreshold, Predicate<RunningSplitInfo> filter) - Specified by:
getStuckSplitTaskIdsin interfaceTaskExecutor
-
getProcessorExecutor
public io.airlift.concurrent.ThreadPoolExecutorMBean getProcessorExecutor()
-