public ThreadPoolExecutor createExecutorService()

in core/src/main/java/org/apache/accumulo/core/util/threads/ThreadPools.java [284:395]


  public ThreadPoolExecutor createExecutorService(final AccumuloConfiguration conf,
      final Property p, boolean emitThreadPoolMetrics) {
    ThreadPoolExecutorBuilder builder;
    switch (p) {
      case GENERAL_THREADPOOL_SIZE:
        return createScheduledExecutorService(conf.getCount(p), GENERAL_SERVER_POOL.poolName,
            emitThreadPoolMetrics);
      case MANAGER_STATUS_THREAD_POOL_SIZE:
        builder = getPoolBuilder(MANAGER_STATUS_POOL);
        int threads = conf.getCount(p);
        if (threads == 0) {
          builder.numCoreThreads(0).numMaxThreads(Integer.MAX_VALUE).withTimeOut(60L, SECONDS)
              .withQueue(new SynchronousQueue<>());
        } else {
          builder.numCoreThreads(threads);
        }
        if (emitThreadPoolMetrics) {
          builder.enableThreadPoolMetrics();
        }
        return builder.build();
      case TSERV_MINC_MAXCONCURRENT:
        builder = getPoolBuilder(TSERVER_MINOR_COMPACTOR_POOL).numCoreThreads(conf.getCount(p))
            .withTimeOut(0L, MILLISECONDS);
        if (emitThreadPoolMetrics) {
          builder.enableThreadPoolMetrics();
        }
        return builder.build();
      case TSERV_MIGRATE_MAXCONCURRENT:
        builder = getPoolBuilder(TSERVER_MIGRATIONS_POOL).numCoreThreads(conf.getCount(p))
            .withTimeOut(0L, MILLISECONDS);
        if (emitThreadPoolMetrics) {
          builder.enableThreadPoolMetrics();
        }
        return builder.build();
      case TSERV_ASSIGNMENT_MAXCONCURRENT:
        builder = getPoolBuilder(TSERVER_ASSIGNMENT_POOL).numCoreThreads(conf.getCount(p))
            .withTimeOut(0L, MILLISECONDS);
        if (emitThreadPoolMetrics) {
          builder.enableThreadPoolMetrics();
        }
        return builder.build();
      case TSERV_SUMMARY_RETRIEVAL_THREADS:
        builder = getPoolBuilder(TSERVER_SUMMARY_RETRIEVAL_POOL).numCoreThreads(conf.getCount(p))
            .withTimeOut(60L, MILLISECONDS);
        if (emitThreadPoolMetrics) {
          builder.enableThreadPoolMetrics();
        }
        return builder.build();
      case TSERV_SUMMARY_REMOTE_THREADS:
        builder = getPoolBuilder(TSERVER_SUMMARY_REMOTE_POOL).numCoreThreads(conf.getCount(p))
            .withTimeOut(60L, MILLISECONDS);
        if (emitThreadPoolMetrics) {
          builder.enableThreadPoolMetrics();
        }
        return builder.build();
      case TSERV_SUMMARY_PARTITION_THREADS:
        builder = getPoolBuilder(TSERVER_SUMMARY_PARTITION_POOL).numCoreThreads(conf.getCount(p))
            .withTimeOut(60L, MILLISECONDS);
        if (emitThreadPoolMetrics) {
          builder.enableThreadPoolMetrics();
        }
        return builder.build();
      case TSERV_CONDITIONAL_UPDATE_THREADS_ROOT:
        builder = getPoolBuilder(TSERVER_CONDITIONAL_UPDATE_ROOT_POOL)
            .numCoreThreads(conf.getCount(p)).withTimeOut(60L, MILLISECONDS);
        if (emitThreadPoolMetrics) {
          builder.enableThreadPoolMetrics();
        }
        return builder.build();
      case TSERV_CONDITIONAL_UPDATE_THREADS_META:
        builder = getPoolBuilder(TSERVER_CONDITIONAL_UPDATE_META_POOL)
            .numCoreThreads(conf.getCount(p)).withTimeOut(60L, MILLISECONDS);
        if (emitThreadPoolMetrics) {
          builder.enableThreadPoolMetrics();
        }
        return builder.build();
      case TSERV_CONDITIONAL_UPDATE_THREADS_USER:
        builder = getPoolBuilder(TSERVER_CONDITIONAL_UPDATE_USER_POOL)
            .numCoreThreads(conf.getCount(p)).withTimeOut(60L, MILLISECONDS);
        if (emitThreadPoolMetrics) {
          builder.enableThreadPoolMetrics();
        }
        return builder.build();
      case GC_DELETE_WAL_THREADS:
        return getPoolBuilder(GC_WAL_DELETE_POOL).numCoreThreads(conf.getCount(p)).build();
      case GC_DELETE_THREADS:
        return getPoolBuilder(GC_DELETE_POOL).numCoreThreads(conf.getCount(p)).build();
      case COMPACTION_COORDINATOR_RESERVATION_THREADS_ROOT:
        builder = getPoolBuilder(COORDINATOR_RESERVATION_ROOT_POOL).numCoreThreads(conf.getCount(p))
            .withTimeOut(60L, MILLISECONDS);
        if (emitThreadPoolMetrics) {
          builder.enableThreadPoolMetrics();
        }
        return builder.build();
      case COMPACTION_COORDINATOR_RESERVATION_THREADS_META:
        builder = getPoolBuilder(COORDINATOR_RESERVATION_META_POOL).numCoreThreads(conf.getCount(p))
            .withTimeOut(60L, MILLISECONDS);
        if (emitThreadPoolMetrics) {
          builder.enableThreadPoolMetrics();
        }
        return builder.build();
      case COMPACTION_COORDINATOR_RESERVATION_THREADS_USER:
        builder = getPoolBuilder(COORDINATOR_RESERVATION_USER_POOL).numCoreThreads(conf.getCount(p))
            .withTimeOut(60L, MILLISECONDS);
        if (emitThreadPoolMetrics) {
          builder.enableThreadPoolMetrics();
        }
        return builder.build();
      default:
        throw new IllegalArgumentException("Unhandled thread pool property: " + p);
    }
  }