Class QueueResizingEsThreadPoolExecutor

java.lang.Object
java.util.concurrent.AbstractExecutorService
java.util.concurrent.ThreadPoolExecutor
org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor
org.elasticsearch.common.util.concurrent.QueueResizingEsThreadPoolExecutor
All Implemented Interfaces:
java.util.concurrent.Executor, java.util.concurrent.ExecutorService

public final class QueueResizingEsThreadPoolExecutor
extends EsThreadPoolExecutor
An extension to thread pool executor, which automatically adjusts the queue size of the ResizableBlockingQueue according to Little's Law.
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor

    EsThreadPoolExecutor.ShutdownListener

    Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor

    java.util.concurrent.ThreadPoolExecutor.AbortPolicy, java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardPolicy
  • Field Summary

    Fields
    Modifier and Type Field Description
    static double EWMA_ALPHA  
  • Method Summary

    Modifier and Type Method Description
    protected void afterExecute​(java.lang.Runnable r, java.lang.Throwable t)  
    protected void appendThreadPoolExecutorDetails​(java.lang.StringBuilder sb)
    Append details about this thread pool to the specified StringBuilder.
    int getCurrentQueueSize()
    Returns the current queue size (operations that are queued)
    double getTaskExecutionEWMA()
    Returns the exponentially weighted moving average of the task execution time
    protected java.lang.Runnable unwrap​(java.lang.Runnable runnable)  
    protected java.lang.Runnable wrapRunnable​(java.lang.Runnable command)  

    Methods inherited from class org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor

    execute, getTasks, terminated, toString

    Methods inherited from class java.util.concurrent.ThreadPoolExecutor

    allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, beforeExecute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getQueue, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, shutdown, shutdownNow

    Methods inherited from class java.util.concurrent.AbstractExecutorService

    invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor, submit, submit, submit

    Methods inherited from class java.lang.Object

    clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • EWMA_ALPHA

      public static double EWMA_ALPHA
  • Method Details

    • wrapRunnable

      protected java.lang.Runnable wrapRunnable​(java.lang.Runnable command)
      Overrides:
      wrapRunnable in class EsThreadPoolExecutor
    • unwrap

      protected java.lang.Runnable unwrap​(java.lang.Runnable runnable)
      Overrides:
      unwrap in class EsThreadPoolExecutor
    • getTaskExecutionEWMA

      public double getTaskExecutionEWMA()
      Returns the exponentially weighted moving average of the task execution time
    • getCurrentQueueSize

      public int getCurrentQueueSize()
      Returns the current queue size (operations that are queued)
    • afterExecute

      protected void afterExecute​(java.lang.Runnable r, java.lang.Throwable t)
      Overrides:
      afterExecute in class EsThreadPoolExecutor
    • appendThreadPoolExecutorDetails

      protected void appendThreadPoolExecutorDetails​(java.lang.StringBuilder sb)
      Description copied from class: EsThreadPoolExecutor
      Append details about this thread pool to the specified StringBuilder. All details should be appended as key/value pairs in the form "%s = %s, "
      Overrides:
      appendThreadPoolExecutorDetails in class EsThreadPoolExecutor
      Parameters:
      sb - the StringBuilder to append to