From 4f42f214d728811f5a6328973ce098731f13cbd5 Mon Sep 17 00:00:00 2001 From: Lester Solbakken Date: Mon, 25 Mar 2019 12:36:39 +0100 Subject: Set number of potential docproc threads to unbounded --- .../main/java/com/yahoo/docproc/jdisc/DocprocThreadPoolExecutor.java | 4 ++-- .../main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java | 2 +- docproc/src/main/resources/configdefinitions/docproc.def | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'docproc/src/main') diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadPoolExecutor.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadPoolExecutor.java index 1d3e85057ec..23ab73c7f1d 100644 --- a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadPoolExecutor.java +++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocprocThreadPoolExecutor.java @@ -20,8 +20,8 @@ public class DocprocThreadPoolExecutor extends ThreadPoolExecutor { public DocprocThreadPoolExecutor(int maxNumThreads, BlockingQueue queue, DocprocThreadManager threadMgr) { super((maxNumThreads > 0) ? maxNumThreads : Runtime.getRuntime().availableProcessors(), - (maxNumThreads > 0) ? maxNumThreads : Runtime.getRuntime().availableProcessors(), - 5, TimeUnit.MINUTES, + (maxNumThreads > 0) ? maxNumThreads : 8192, + 1, TimeUnit.SECONDS, queue, new DaemonThreadFactory("docproc-")); this.threadManager = threadMgr; diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java index 1b84d0f9ffa..18c3cbadd3a 100644 --- a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java +++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java @@ -93,7 +93,7 @@ public class DocumentProcessingHandler extends AbstractRequestHandler { (params.getMaxQueueTimeMs() > 0) ? new ThroughputLimitQueue<>(params.getMaxQueueTimeMs()) : (params.getMaxQueueTimeMs() < 0) - ? new LinkedBlockingQueue<>() + ? new SynchronousQueue<>() : new PriorityBlockingQueue<>(), //Probably no need to bound this queue, see bug #4254537 new DocprocThreadManager(params.getMaxConcurrentFactor(), params.getDocumentExpansionFactor(), diff --git a/docproc/src/main/resources/configdefinitions/docproc.def b/docproc/src/main/resources/configdefinitions/docproc.def index 3b4c4fc5b16..396e204054e 100644 --- a/docproc/src/main/resources/configdefinitions/docproc.def +++ b/docproc/src/main/resources/configdefinitions/docproc.def @@ -4,7 +4,7 @@ namespace=config.docproc # Queue size (in milliseconds) for this node # Positive size gives a ThroughPutLimitQueue. ### Experimental. # 0 Gives a PriorityQueue -# Negative values gives a ordinary LinkedBlockingQueue. This is fastest and most efficient. +# Negative values gives a SynchronousQueue, in effect increasing number of threads as required (if numthreads == -1) maxqueuetimems int default=-1 #The number of threads in the DocprocHandler worker thread pool -- cgit v1.2.3