You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2020/08/22 18:42:26 UTC

[lucene-solr] 07/22: @587 Dance executors, dance.

This is an automated email from the ASF dual-hosted git repository.

markrmiller pushed a commit to branch reference_impl
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit c412a2ead8e71af213581c7b7cfb42d1b0d9e9ff
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Thu Aug 20 13:41:41 2020 -0500

    @587 Dance executors, dance.
---
 .../solr/client/solrj/embedded/JettySolrRunner.java     |  4 ++--
 .../src/java/org/apache/solr/core/ConfigSetService.java | 17 +++++++++--------
 .../apache/solr/client/solrj/impl/Http2SolrClient.java  |  6 ++----
 .../apache/solr/common/util/SolrQueuedThreadPool.java   |  4 ++--
 .../src/java/org/apache/solr/SolrTestCase.java          |  8 ++++----
 5 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java b/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
index da5cc7b..4ca76bd 100644
--- a/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
+++ b/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
@@ -299,10 +299,10 @@ public class JettySolrRunner implements Closeable {
       qtp = new SolrQueuedThreadPool("JettySolrRunner qtp");
       qtp.setMaxThreads(Integer.getInteger("solr.maxContainerThreads", THREAD_POOL_MAX_THREADS));
       qtp.setLowThreadsThreshold(Integer.getInteger("solr.lowContainerThreadsThreshold", -1)); // we don't use this or connections will get cut
-      qtp.setMinThreads(Integer.getInteger("solr.minContainerThreads", 2));
+      qtp.setMinThreads(Integer.getInteger("solr.minContainerThreads", 8));
       qtp.setIdleTimeout(Integer.getInteger("solr.containerThreadsIdle", THREAD_POOL_MAX_IDLE_TIME_MS));
       qtp.setStopTimeout(0);
-      qtp.setReservedThreads(-1); // -1 auto sizes, important to keep
+      qtp.setReservedThreads(-1);
     }
 
     server = new Server(qtp);
diff --git a/solr/core/src/java/org/apache/solr/core/ConfigSetService.java b/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
index 22d5a94..e755fdb 100644
--- a/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
+++ b/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
@@ -20,6 +20,7 @@ import com.github.benmanes.caffeine.cache.Cache;
 import com.github.benmanes.caffeine.cache.Caffeine;
 import org.apache.solr.cloud.CloudConfigSetService;
 import org.apache.solr.cloud.ZkController;
+import org.apache.solr.cloud.ZkSolrResourceLoader;
 import org.apache.solr.common.ParWork;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.util.NamedList;
@@ -73,16 +74,16 @@ public abstract class ConfigSetService {
       // ConfigSet flags are loaded from the metadata of the ZK node of the configset.
 
       // there are no flags in non cloud mode, it just returns null
-//      NamedList flags = null;
-//      flags = loadConfigSetFlags(dcore, coreLoader);
+      NamedList flags = null;
+      flags = loadConfigSetFlags(dcore, coreLoader);
 
 
-//      boolean trusted =
-//          (coreLoader instanceof ZkSolrResourceLoader
-//              && flags != null
-//              && flags.get("trusted") != null
-//              && !flags.getBooleanArg("trusted")
-//              ) ? false: true;
+      boolean trusted =
+          (coreLoader instanceof ZkSolrResourceLoader
+              && flags != null
+              && flags.get("trusted") != null
+              && !flags.getBooleanArg("trusted")
+              ) ? false: true;
 
       SolrConfig solrConfig = createSolrConfig(dcore, coreLoader, true);
       IndexSchema schema = createIndexSchema(dcore, solrConfig);
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
index 44a93ac..a0f7c8b 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
@@ -224,8 +224,8 @@ public class Http2SolrClient extends SolrClient {
       httpClient = new HttpClient(transport, sslContextFactory);
       if (builder.maxConnectionsPerHost != null) httpClient.setMaxConnectionsPerDestination(builder.maxConnectionsPerHost);
     }
-    httpClientExecutor = new SolrQueuedThreadPool("httpClient", Math.max(12, ParWork.PROC_COUNT), 6, idleTimeout);
-   // httpClientExecutor.setReservedThreads(0);
+    httpClientExecutor = new SolrQueuedThreadPool("httpClient", Math.max(12, ParWork.PROC_COUNT), 8, idleTimeout);
+    httpClientExecutor.setLowThreadsThreshold(-1);
 
     httpClient.setIdleTimeout(idleTimeout);
     try {
@@ -264,7 +264,6 @@ public class Http2SolrClient extends SolrClient {
               });
 
           closer.collect("httpClientScheduler", () -> {
-           // httpClientExecutor.stopReserveExecutor();
             try {
               httpClient.getScheduler().stop();
             } catch (Exception e) {
@@ -277,7 +276,6 @@ public class Http2SolrClient extends SolrClient {
       }
     }
 
-
     assert ObjectReleaseTracker.release(this);
   }
 
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/SolrQueuedThreadPool.java b/solr/solrj/src/java/org/apache/solr/common/util/SolrQueuedThreadPool.java
index 446fef5..5c4cdd3 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/SolrQueuedThreadPool.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/SolrQueuedThreadPool.java
@@ -79,7 +79,7 @@ public class SolrQueuedThreadPool extends ContainerLifeCycle implements ThreadFa
     private int _priority = Thread.NORM_PRIORITY;
     private boolean _daemon = false;
     private boolean _detailedDump = false;
-    private int _lowThreadsThreshold = 1;
+    private int _lowThreadsThreshold = -1;
     private ThreadPoolBudget _budget;
     private volatile boolean closed;
 
@@ -89,7 +89,7 @@ public class SolrQueuedThreadPool extends ContainerLifeCycle implements ThreadFa
 
     public SolrQueuedThreadPool(String name) {
         this(10000, 15,
-                60000, -1,
+                60000, 0,
                 null, null,
                 new  SolrNamedThreadFactory(name));
         this.name = name;
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
index 5565bce..9b2aab6 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
@@ -306,9 +306,9 @@ public class SolrTestCase extends LuceneTestCase {
       System.setProperty("lucene.cms.override_core_count", "3");
       System.setProperty("lucene.cms.override_spins", "true");
 
-      System.setProperty("solr.maxContainerThreads", "300");
+      // unlimited - System.setProperty("solr.maxContainerThreads", "300");
       System.setProperty("solr.lowContainerThreadsThreshold", "-1");
-      System.setProperty("solr.minContainerThreads", "20");
+      System.setProperty("solr.minContainerThreads", "8");
 
       ScheduledTriggers.DEFAULT_COOLDOWN_PERIOD_SECONDS = 1;
       ScheduledTriggers.DEFAULT_ACTION_THROTTLE_PERIOD_SECONDS =1;
@@ -630,11 +630,11 @@ public class SolrTestCase extends LuceneTestCase {
     //qtp.setMaxThreads(Integer.getInteger("solr.maxContainerThreads", 50));
     // qtp.setLowThreadsThreshold(Integer.getInteger("solr.lowContainerThreadsThreshold", -1)); // we don't use this or connections will get cut
     qtp.setMinThreads(Integer.getInteger("solr.minContainerThreads", 8));
-    qtp.setIdleTimeout(Integer.getInteger("solr.containerThreadsIdle", 30000));
+    qtp.setIdleTimeout(Integer.getInteger("solr.containerThreadsIdle", 45000));
 
     qtp.setStopTimeout((int) TimeUnit.SECONDS.toMillis(60));
     qtp.setDaemon(true);
-    qtp.setReservedThreads(-1); // -1 auto sizes, important to keep
+    qtp.setReservedThreads(0);
     qtp.setStopTimeout(0);
     return qtp;
   }