You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sa...@apache.org on 2016/07/21 13:38:02 UTC
[40/51] [abbrv] lucene-solr:apiv2: SOLR-7280: refactored to
incorporate Mike's suggestions. Default thread count for cloud is limited to
8 now. In our internal teting 8 has given us the best stability during
restarts
SOLR-7280: refactored to incorporate Mike's suggestions. Default thread count for cloud is limited to 8 now. In our internal teting 8 has given us the best stability during restarts
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/2d1496c8
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/2d1496c8
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/2d1496c8
Branch: refs/heads/apiv2
Commit: 2d1496c83d83bb6582af39af6cf272828d83c9e3
Parents: 5c4b717
Author: Noble Paul <no...@apache.org>
Authored: Tue Jul 19 18:21:23 2016 +0530
Committer: Noble Paul <no...@apache.org>
Committed: Tue Jul 19 18:21:23 2016 +0530
----------------------------------------------------------------------
.../org/apache/solr/core/CoreContainer.java | 29 ++++++++---------
.../java/org/apache/solr/core/NodeConfig.java | 12 ++++---
.../org/apache/solr/core/CoreSorterTest.java | 34 +++++++++-----------
.../test/org/apache/solr/core/TestSolrXml.java | 2 +-
4 files changed, 36 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2d1496c8/solr/core/src/java/org/apache/solr/core/CoreContainer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index aa65f54..1bdf3e3 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -16,19 +16,6 @@
*/
package org.apache.solr.core;
-import static com.google.common.base.Preconditions.checkNotNull;
-import static java.util.Collections.EMPTY_MAP;
-import static org.apache.solr.common.params.CommonParams.AUTHC_PATH;
-import static org.apache.solr.common.params.CommonParams.AUTHZ_PATH;
-import static org.apache.solr.common.params.CommonParams.COLLECTIONS_HANDLER_PATH;
-import static org.apache.solr.common.params.CommonParams.CONFIGSETS_HANDLER_PATH;
-import static org.apache.solr.common.params.CommonParams.CORES_HANDLER_PATH;
-import static org.apache.solr.common.params.CommonParams.INFO_HANDLER_PATH;
-import static org.apache.solr.common.params.CommonParams.ZK_PATH;
-import static org.apache.solr.core.NodeConfig.NodeConfigBuilder.DEFAULT_CORE_LOAD_THREADS;
-import static org.apache.solr.core.NodeConfig.NodeConfigBuilder.DEFAULT_CORE_LOAD_THREADS_IN_CLOUD;
-import static org.apache.solr.security.AuthenticationPlugin.AUTHENTICATION_PLUGIN_PROP;
-
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.nio.file.Path;
@@ -46,6 +33,8 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Maps;
import org.apache.http.auth.AuthSchemeProvider;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.config.Lookup;
@@ -88,8 +77,16 @@ import org.apache.zookeeper.KeeperException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static java.util.Collections.EMPTY_MAP;
+import static org.apache.solr.common.params.CommonParams.AUTHC_PATH;
+import static org.apache.solr.common.params.CommonParams.AUTHZ_PATH;
+import static org.apache.solr.common.params.CommonParams.COLLECTIONS_HANDLER_PATH;
+import static org.apache.solr.common.params.CommonParams.CONFIGSETS_HANDLER_PATH;
+import static org.apache.solr.common.params.CommonParams.CORES_HANDLER_PATH;
+import static org.apache.solr.common.params.CommonParams.INFO_HANDLER_PATH;
+import static org.apache.solr.common.params.CommonParams.ZK_PATH;
+import static org.apache.solr.security.AuthenticationPlugin.AUTHENTICATION_PLUGIN_PROP;
/**
@@ -489,7 +486,7 @@ public class CoreContainer {
// setup executor to load cores in parallel
ExecutorService coreLoadExecutor = ExecutorUtil.newMDCAwareFixedThreadPool(
- cfg.getCoreLoadThreadCount(isZooKeeperAware() ? DEFAULT_CORE_LOAD_THREADS_IN_CLOUD : DEFAULT_CORE_LOAD_THREADS),
+ cfg.getCoreLoadThreadCount(isZooKeeperAware()),
new DefaultSolrThreadFactory("coreLoadExecutor") );
final List<Future<SolrCore>> futures = new ArrayList<>();
try {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2d1496c8/solr/core/src/java/org/apache/solr/core/NodeConfig.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/NodeConfig.java b/solr/core/src/java/org/apache/solr/core/NodeConfig.java
index 3db453b..ea451a9 100644
--- a/solr/core/src/java/org/apache/solr/core/NodeConfig.java
+++ b/solr/core/src/java/org/apache/solr/core/NodeConfig.java
@@ -87,7 +87,7 @@ public class NodeConfig {
this.solrProperties = solrProperties;
this.backupRepositoryPlugins = backupRepositoryPlugins;
- if (this.cloudConfig != null && this.getCoreLoadThreadCount(NodeConfigBuilder.DEFAULT_CORE_LOAD_THREADS) < 2) {
+ if (this.cloudConfig != null && this.getCoreLoadThreadCount(false) < 2) {
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,
"SolrCloud requires a value of at least 2 for coreLoadThreads (configured value = " + this.coreLoadThreads + ")");
}
@@ -109,8 +109,10 @@ public class NodeConfig {
return updateShardHandlerConfig;
}
- public int getCoreLoadThreadCount(int def) {
- return coreLoadThreads == null ? def : coreLoadThreads;
+ public int getCoreLoadThreadCount(boolean zkAware) {
+ return coreLoadThreads == null ?
+ (zkAware ? NodeConfigBuilder.DEFAULT_CORE_LOAD_THREADS_IN_CLOUD : NodeConfigBuilder.DEFAULT_CORE_LOAD_THREADS)
+ : coreLoadThreads;
}
public String getSharedLibDirectory() {
@@ -196,8 +198,8 @@ public class NodeConfig {
private final String nodeName;
public static final int DEFAULT_CORE_LOAD_THREADS = 3;
- //No:of core load threads in cloud mode is set to a default of 24
- public static final int DEFAULT_CORE_LOAD_THREADS_IN_CLOUD = 24;
+ //No:of core load threads in cloud mode is set to a default of 8
+ public static final int DEFAULT_CORE_LOAD_THREADS_IN_CLOUD = 8;
private static final int DEFAULT_TRANSIENT_CACHE_SIZE = Integer.MAX_VALUE;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2d1496c8/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java b/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
index 3e5af20..dda437a 100644
--- a/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
+++ b/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
@@ -39,7 +39,7 @@ import org.apache.solr.util.MockCoreContainer;
import static java.util.stream.Collectors.toList;
import static org.apache.solr.core.CoreSorter.getShardName;
import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.reset;
@@ -49,16 +49,16 @@ public class CoreSorterTest extends SolrTestCaseJ4 {
public void testComparator() {
List<CountsForEachShard> l = new ArrayList<>();
- // DN LIV MY
- l.add(new CountsForEachShard(1, 3, 1));
- l.add(new CountsForEachShard(0, 3, 2));
- l.add(new CountsForEachShard(0, 3, 3));
- l.add(new CountsForEachShard(0, 3, 4));
- l.add(new CountsForEachShard(1, 0, 2));
- l.add(new CountsForEachShard(1, 0, 1));
- l.add(new CountsForEachShard(2, 5, 1));
- l.add(new CountsForEachShard(2, 4, 2));
- l.add(new CountsForEachShard(2, 3, 3));
+ // DOWN LIVE MY
+ l.add(new CountsForEachShard(1, 3, 1));
+ l.add(new CountsForEachShard(0, 3, 2));
+ l.add(new CountsForEachShard(0, 3, 3));
+ l.add(new CountsForEachShard(0, 3, 4));
+ l.add(new CountsForEachShard(1, 0, 2));
+ l.add(new CountsForEachShard(1, 0, 1));
+ l.add(new CountsForEachShard(2, 5, 1));
+ l.add(new CountsForEachShard(2, 4, 2));
+ l.add(new CountsForEachShard(2, 3, 3));
List<CountsForEachShard> expected = Arrays.asList(
new CountsForEachShard(0, 3, 2),
@@ -108,14 +108,10 @@ public class CoreSorterTest extends SolrTestCaseJ4 {
ZkController mockZKC = createMock(ZkController.class);
ClusterState mockClusterState = createMock(ClusterState.class);
reset(mockCC, mockZKC, mockClusterState);
- mockCC.isZooKeeperAware();
- expectLastCall().andAnswer(() -> Boolean.TRUE).anyTimes();
- mockCC.getZkController();
- expectLastCall().andAnswer(() -> mockZKC).anyTimes();
- mockClusterState.getLiveNodes();
- expectLastCall().andAnswer(() -> liveNodes).anyTimes();
- mockZKC.getClusterState();
- expectLastCall().andAnswer(() -> mockClusterState).anyTimes();
+ expect(mockCC.isZooKeeperAware()).andReturn(Boolean.TRUE).anyTimes();
+ expect(mockCC.getZkController()).andReturn(mockZKC).anyTimes();
+ expect(mockClusterState.getLiveNodes()).andReturn(liveNodes).anyTimes();
+ expect(mockZKC.getClusterState()).andReturn(mockClusterState).anyTimes();
replay(mockCC, mockZKC, mockClusterState);
return mockCC;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2d1496c8/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/core/TestSolrXml.java b/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
index e005c9f..9224c4d 100644
--- a/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
+++ b/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
@@ -73,7 +73,7 @@ public class TestSolrXml extends SolrTestCaseJ4 {
assertEquals("collection handler class", "testCollectionsHandler", cfg.getCollectionsHandlerClass());
assertEquals("info handler class", "testInfoHandler", cfg.getInfoHandlerClass());
assertEquals("config set handler class", "testConfigSetsHandler", cfg.getConfigSetsHandlerClass());
- assertEquals("core load threads", 11, cfg.getCoreLoadThreadCount(0));
+ assertEquals("core load threads", 11, cfg.getCoreLoadThreadCount(false));
assertThat("core root dir", cfg.getCoreRootDirectory().toString(), containsString("testCoreRootDirectory"));
assertEquals("distrib conn timeout", 22, cfg.getUpdateShardHandlerConfig().getDistributedConnectionTimeout());
assertEquals("distrib socket timeout", 33, cfg.getUpdateShardHandlerConfig().getDistributedSocketTimeout());