You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ro...@apache.org on 2014/06/30 22:41:41 UTC
svn commit: r1606924 - in /lucene/dev/branches/branch_4x: ./ solr/
solr/CHANGES.txt solr/core/
solr/core/src/java/org/apache/solr/core/CoreContainer.java
solr/core/src/java/org/apache/solr/core/SolrCores.java
Author: romseygeek
Date: Mon Jun 30 20:41:41 2014
New Revision: 1606924
URL: http://svn.apache.org/r1606924
Log:
SOLR-6171: Remove SolrCores coreNameToOrig map
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/solr/ (props changed)
lucene/dev/branches/branch_4x/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_4x/solr/core/ (props changed)
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCores.java
Modified: lucene/dev/branches/branch_4x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/CHANGES.txt?rev=1606924&r1=1606923&r2=1606924&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/solr/CHANGES.txt Mon Jun 30 20:41:41 2014
@@ -94,6 +94,8 @@ Other Changes
* SOLR-6170: CoreContainer.preRegisterInZk() and CoreContainer.register() commands
are merged into CoreContainer.create(). (Alan Woodward)
+* SOLR-6171: Remove unused SolrCores coreNameToOrig map (Alan Woodward)
+
================== 4.9.0 ==================
Versions of Major Components
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java?rev=1606924&r1=1606923&r2=1606924&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CoreContainer.java Mon Jun 30 20:41:41 2014
@@ -18,7 +18,6 @@
package org.apache.solr.core;
import com.google.common.collect.Maps;
-
import org.apache.solr.cloud.ZkController;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
@@ -35,22 +34,17 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
-import java.util.Set;
import java.util.concurrent.Callable;
-import java.util.concurrent.CompletionService;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -230,76 +224,38 @@ public class CoreContainer {
new DefaultSolrThreadFactory("coreLoadExecutor") );
try {
- CompletionService<SolrCore> completionService = new ExecutorCompletionService<>(
- coreLoadExecutor);
-
- Set<Future<SolrCore>> pending = new HashSet<>();
List<CoreDescriptor> cds = coresLocator.discover(this);
checkForDuplicateCoreNames(cds);
+ List<Callable<SolrCore>> creators = new ArrayList<>();
for (final CoreDescriptor cd : cds) {
-
- final String name = cd.getName();
- try {
-
- if (cd.isTransient() || ! cd.isLoadOnStartup()) {
- // Store it away for later use. includes non-transient but not
- // loaded at startup cores.
- solrCores.putDynamicDescriptor(name, cd);
- }
- if (cd.isLoadOnStartup()) { // The normal case
-
- Callable<SolrCore> task = new Callable<SolrCore>() {
- @Override
- public SolrCore call() {
- try {
- return create(cd, false);
- } catch (Exception e) {
- SolrException.log(log, null, e);
- return null;
- }
- }
- };
- pending.add(completionService.submit(task));
-
- }
- } catch (Exception e) {
- SolrException.log(log, null, e);
+ if (cd.isTransient() || !cd.isLoadOnStartup()) {
+ solrCores.putDynamicDescriptor(cd.getName(), cd);
}
- }
-
- while (pending != null && pending.size() > 0) {
- try {
-
- Future<SolrCore> future = completionService.take();
- if (future == null) return;
- pending.remove(future);
-
- try {
- SolrCore c = future.get();
- // track original names
- if (c != null) {
- solrCores.putCoreToOrigName(c, c.getName());
+ if (cd.isLoadOnStartup()) {
+ creators.add(new Callable<SolrCore>() {
+ @Override
+ public SolrCore call() throws Exception {
+ return create(cd, false);
}
- } catch (ExecutionException e) {
- SolrException.log(SolrCore.log, "Error loading core", e);
- }
-
- } catch (InterruptedException e) {
- throw new SolrException(SolrException.ErrorCode.SERVICE_UNAVAILABLE,
- "interrupted while loading core", e);
+ });
}
}
+ try {
+ coreLoadExecutor.invokeAll(creators);
+ }
+ catch (InterruptedException e) {
+ throw new SolrException(SolrException.ErrorCode.SERVICE_UNAVAILABLE, "Interrupted while loading cores");
+ }
+
// Start the background thread
backgroundCloser = new CloserThread(this, solrCores, cfg);
backgroundCloser.start();
} finally {
- if (coreLoadExecutor != null) {
- ExecutorUtil.shutdownNowAndAwaitTermination(coreLoadExecutor);
- }
+ ExecutorUtil.shutdownNowAndAwaitTermination(coreLoadExecutor);
}
if (isZooKeeperAware()) {
@@ -616,8 +572,6 @@ public class CoreContainer {
ConfigSet coreConfig = coreConfigService.getConfig(cd);
log.info("Reloading SolrCore '{}' using configuration from {}", cd.getName(), coreConfig.getName());
SolrCore newCore = core.reload(coreConfig, core);
- // keep core to orig name link
- solrCores.removeCoreToOrigName(newCore, core);
registerCore(name, newCore, false);
} finally {
solrCores.removeFromPendingOps(name);
@@ -654,7 +608,7 @@ public class CoreContainer {
public SolrCore remove( String name ) {
name = checkDefault(name);
CoreDescriptor cd = solrCores.getCoreDescriptor(name);
- SolrCore removed = solrCores.remove(name, true);
+ SolrCore removed = solrCores.remove(name);
coresLocator.delete(this, cd);
return removed;
}
@@ -664,7 +618,7 @@ public class CoreContainer {
if (core != null) {
registerCore(toName, core, true);
name = checkDefault(name);
- SolrCore old = solrCores.remove(name, false);
+ SolrCore old = solrCores.remove(name);
coresLocator.rename(this, old.getCoreDescriptor(), core.getCoreDescriptor());
}
}
@@ -857,10 +811,6 @@ public class CoreContainer {
log.error(msg, ex);
return new SolrException(ErrorCode.SERVER_ERROR, msg, ex);
}
-
- String getCoreToOrigName(SolrCore core) {
- return solrCores.getCoreToOrigName(core);
- }
public SolrResourceLoader getResourceLoader() {
return loader;
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCores.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCores.java?rev=1606924&r1=1606923&r2=1606924&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCores.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCores.java Mon Jun 30 20:41:41 2014
@@ -30,7 +30,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
-import java.util.concurrent.ConcurrentHashMap;
class SolrCores {
@@ -45,8 +44,6 @@ class SolrCores {
private final Map<String, SolrCore> createdCores = new LinkedHashMap<>();
- private Map<SolrCore, String> coreToOrigName = new ConcurrentHashMap<>();
-
private final CoreContainer container;
private static final Logger logger = LoggerFactory.getLogger(SolrCores.class);
@@ -230,14 +227,11 @@ class SolrCores {
}
- protected SolrCore remove(String name, boolean removeOrig) {
+ protected SolrCore remove(String name) {
synchronized (modifyLock) {
SolrCore tmp = cores.remove(name);
SolrCore ret = null;
- if (removeOrig && tmp != null) {
- coreToOrigName.remove(tmp);
- }
ret = (ret == null) ? tmp : ret;
// It could have been a newly-created core. It could have been a transient core. The newly-created cores
// in particular should be checked. It could have been a dynamic core.
@@ -250,24 +244,6 @@ class SolrCores {
}
}
- protected void putCoreToOrigName(SolrCore c, String name) {
-
- synchronized (modifyLock) {
- coreToOrigName.put(c, name);
- }
-
- }
-
- protected void removeCoreToOrigName(SolrCore newCore, SolrCore core) {
-
- synchronized (modifyLock) {
- String origName = coreToOrigName.remove(core);
- if (origName != null) {
- coreToOrigName.put(newCore, origName);
- }
- }
- }
-
/* If you don't increment the reference count, someone could close the core before you use it. */
protected SolrCore getCoreFromAnyList(String name, boolean incRefCount) {
synchronized (modifyLock) {
@@ -338,12 +314,6 @@ class SolrCores {
}
- protected String getCoreToOrigName(SolrCore solrCore) {
- synchronized (modifyLock) {
- return coreToOrigName.get(solrCore);
- }
- }
-
// Wait here until any pending operations (load, unload or reload) are completed on this core.
protected SolrCore waitAddPendingCoreOps(String name) {