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);
}
}