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