Class TaskExecutor


  • @ThreadSafe
    public class TaskExecutor
    extends Object
    • Constructor Detail

      • TaskExecutor

        public TaskExecutor​(int runnerThreads,
                            int minDrivers,
                            int guaranteedNumberOfDriversPerTask,
                            int maximumNumberOfDriversPerTask,
                            com.google.common.base.Ticker ticker)
      • TaskExecutor

        public TaskExecutor​(int runnerThreads,
                            int minDrivers,
                            int guaranteedNumberOfDriversPerTask,
                            int maximumNumberOfDriversPerTask,
                            MultilevelSplitQueue splitQueue,
                            com.google.common.base.Ticker ticker)
      • TaskExecutor

        public TaskExecutor​(int runnerThreads,
                            int minDrivers,
                            int guaranteedNumberOfDriversPerTask,
                            int maximumNumberOfDriversPerTask,
                            EmbedVersion embedVersion,
                            MultilevelSplitQueue splitQueue,
                            com.google.common.base.Ticker ticker)
    • Method Detail

      • start

        @PostConstruct
        public void start()
      • stop

        @PreDestroy
        public void stop()
      • addTask

        public TaskHandle addTask​(TaskId taskId,
                                  DoubleSupplier utilizationSupplier,
                                  int initialSplitConcurrency,
                                  io.airlift.units.Duration splitConcurrencyAdjustFrequency,
                                  OptionalInt maxDriversPerTask)
      • removeTask

        public void removeTask​(TaskHandle taskHandle)
      • enqueueSplits

        public List<com.google.common.util.concurrent.ListenableFuture<?>> enqueueSplits​(TaskHandle taskHandle,
                                                                                         boolean intermediate,
                                                                                         List<? extends SplitRunner> taskSplits)
      • getTasks

        public int getTasks()
      • getRunnerThreads

        public int getRunnerThreads()
      • getMinimumNumberOfDrivers

        public int getMinimumNumberOfDrivers()
      • getTotalSplits

        public int getTotalSplits()
      • getIntermediateSplits

        public int getIntermediateSplits()
      • getWaitingSplits

        public int getWaitingSplits()
      • 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

        public String getMaxActiveSplitsInfo()
      • getRunAwaySplitCount

        public long getRunAwaySplitCount()
      • getProcessorExecutor

        public io.airlift.concurrent.ThreadPoolExecutorMBean getProcessorExecutor()