builders.put(Names.GET, new FixedExecutorBuilder(settings, Names.GET, availableProcessors, 1000)); builders.put(Names.ANALYZE, new FixedExecutorBuilder(settings, Names.ANALYZE, 1, 16)); builders.put(Names.SEARCH, new AutoQueueAdjustingExecutorBuilder(settings, Names.SEARCH, searchThreadPoolSize(availableProcessors), 1000, 1000, 1000, 2000)); builders.put(Names.SEARCH_THROTTLED, new AutoQueueAdjustingExecutorBuilder(settings, Names.SEARCH_THROTTLED, 1, 100, 100, 100, 200)); builders.put(Names.MANAGEMENT, new ScalingExecutorBuilder(Names.MANAGEMENT, 1, 5, TimeValue.timeValueMinutes(5)));
super(name); final String prefix = "thread_pool." + name; final String sizeKey = settingsKey(prefix, "size"); this.sizeSetting = new Setting<>( sizeKey, s -> Integer.toString(size), s -> Setting.parseInt(s, 1, applyHardSizeLimit(settings, name), sizeKey), Setting.Property.NodeScope); final String queueSizeKey = settingsKey(prefix, "queue_size"); final String minSizeKey = settingsKey(prefix, "min_queue_size"); final String maxSizeKey = settingsKey(prefix, "max_queue_size"); final String frameSizeKey = settingsKey(prefix, "auto_queue_frame_size"); final String targetedResponseTimeKey = settingsKey(prefix, "target_response_time"); this.targetedResponseTimeSetting = Setting.timeSetting(targetedResponseTimeKey, TimeValue.timeValueSeconds(1), TimeValue.timeValueMillis(10), Setting.Property.NodeScope);
@Override ThreadPool.ExecutorHolder build(final AutoExecutorSettings settings, final ThreadContext threadContext) { int size = settings.size; int initialQueueSize = settings.initialQueueSize; int minQueueSize = settings.minQueueSize; int maxQueueSize = settings.maxQueueSize; int frameSize = settings.frameSize; TimeValue targetedResponseTime = settings.targetedResponseTime; final ThreadFactory threadFactory = EsExecutors.daemonThreadFactory(EsExecutors.threadName(settings.nodeName, name())); final ExecutorService executor = EsExecutors.newAutoQueueFixed( settings.nodeName + "/" + name(), size, initialQueueSize, minQueueSize, maxQueueSize, frameSize, targetedResponseTime, threadFactory, threadContext); // TODO: in a subsequent change we hope to extend ThreadPool.Info to be more specific for the thread pool type final ThreadPool.Info info = new ThreadPool.Info(name(), ThreadPool.ThreadPoolType.FIXED_AUTO_QUEUE_SIZE, size, size, null, new SizeValue(initialQueueSize)); return new ThreadPool.ExecutorHolder(executor, info); }
super(name); final String prefix = "thread_pool." + name; final String sizeKey = settingsKey(prefix, "size"); this.sizeSetting = new Setting<>( sizeKey, s -> Integer.toString(size), s -> Setting.parseInt(s, 1, applyHardSizeLimit(settings, name), sizeKey), Setting.Property.NodeScope); final String queueSizeKey = settingsKey(prefix, "queue_size"); final String minSizeKey = settingsKey(prefix, "min_queue_size"); final String maxSizeKey = settingsKey(prefix, "max_queue_size"); final String frameSizeKey = settingsKey(prefix, "auto_queue_frame_size"); final String targetedResponseTimeKey = settingsKey(prefix, "target_response_time"); this.targetedResponseTimeSetting = Setting.timeSetting(targetedResponseTimeKey, TimeValue.timeValueSeconds(1), TimeValue.timeValueMillis(10), Setting.Property.NodeScope);
@Override ThreadPool.ExecutorHolder build(final AutoExecutorSettings settings, final ThreadContext threadContext) { int size = settings.size; int initialQueueSize = settings.initialQueueSize; int minQueueSize = settings.minQueueSize; int maxQueueSize = settings.maxQueueSize; int frameSize = settings.frameSize; TimeValue targetedResponseTime = settings.targetedResponseTime; final ThreadFactory threadFactory = EsExecutors.daemonThreadFactory(EsExecutors.threadName(settings.nodeName, name())); final ExecutorService executor = EsExecutors.newAutoQueueFixed( settings.nodeName + "/" + name(), size, initialQueueSize, minQueueSize, maxQueueSize, frameSize, targetedResponseTime, threadFactory, threadContext); // TODO: in a subsequent change we hope to extend ThreadPool.Info to be more specific for the thread pool type final ThreadPool.Info info = new ThreadPool.Info(name(), ThreadPool.ThreadPoolType.FIXED_AUTO_QUEUE_SIZE, size, size, null, new SizeValue(initialQueueSize)); return new ThreadPool.ExecutorHolder(executor, info); }
builders.put(Names.GET, new FixedExecutorBuilder(settings, Names.GET, availableProcessors, 1000)); builders.put(Names.ANALYZE, new FixedExecutorBuilder(settings, Names.ANALYZE, 1, 16)); builders.put(Names.SEARCH, new AutoQueueAdjustingExecutorBuilder(settings, Names.SEARCH, searchThreadPoolSize(availableProcessors), 1000, 1000, 1000, 2000)); builders.put(Names.SEARCH_THROTTLED, new AutoQueueAdjustingExecutorBuilder(settings, Names.SEARCH_THROTTLED, 1, 100, 100, 100, 200)); builders.put(Names.MANAGEMENT, new ScalingExecutorBuilder(Names.MANAGEMENT, 1, 5, TimeValue.timeValueMinutes(5)));
super(name); final String prefix = "thread_pool." + name; final String sizeKey = settingsKey(prefix, "size"); this.sizeSetting = new Setting<>( sizeKey, s -> Integer.toString(size), s -> Setting.parseInt(s, 1, applyHardSizeLimit(settings, name), sizeKey), Setting.Property.NodeScope); final String queueSizeKey = settingsKey(prefix, "queue_size"); final String minSizeKey = settingsKey(prefix, "min_queue_size"); final String maxSizeKey = settingsKey(prefix, "max_queue_size"); final String frameSizeKey = settingsKey(prefix, "auto_queue_frame_size"); final String targetedResponseTimeKey = settingsKey(prefix, "target_response_time"); this.targetedResponseTimeSetting = Setting.timeSetting(targetedResponseTimeKey, TimeValue.timeValueSeconds(1), TimeValue.timeValueMillis(10), Setting.Property.NodeScope);
@Override ThreadPool.ExecutorHolder build(final AutoExecutorSettings settings, final ThreadContext threadContext) { int size = settings.size; int initialQueueSize = settings.initialQueueSize; int minQueueSize = settings.minQueueSize; int maxQueueSize = settings.maxQueueSize; int frameSize = settings.frameSize; TimeValue targetedResponseTime = settings.targetedResponseTime; final ThreadFactory threadFactory = EsExecutors.daemonThreadFactory(EsExecutors.threadName(settings.nodeName, name())); final ExecutorService executor = EsExecutors.newAutoQueueFixed( settings.nodeName + "/" + name(), size, initialQueueSize, minQueueSize, maxQueueSize, frameSize, targetedResponseTime, threadFactory, threadContext); // TODO: in a subsequent change we hope to extend ThreadPool.Info to be more specific for the thread pool type final ThreadPool.Info info = new ThreadPool.Info(name(), ThreadPool.ThreadPoolType.FIXED_AUTO_QUEUE_SIZE, size, size, null, new SizeValue(initialQueueSize)); return new ThreadPool.ExecutorHolder(executor, info); }
builders.put(Names.GET, new FixedExecutorBuilder(settings, Names.GET, availableProcessors, 1000)); builders.put(Names.ANALYZE, new FixedExecutorBuilder(settings, Names.ANALYZE, 1, 16)); builders.put(Names.SEARCH, new AutoQueueAdjustingExecutorBuilder(settings, Names.SEARCH, searchThreadPoolSize(availableProcessors), 1000, 1000, 1000, 2000)); builders.put(Names.MANAGEMENT, new ScalingExecutorBuilder(Names.MANAGEMENT, 1, 5, TimeValue.timeValueMinutes(5)));