You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2020/08/17 00:56:02 UTC

[lucene-solr] branch jira/solr14750 created (now 3e79a05)

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

noble pushed a change to branch jira/solr14750
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git.


      at 3e79a05  SOLR-14750: Invoke core reload with core id to avoid multiple reloads

This branch includes the following new commits:

     new f559c73  SOLR-14750: Invoke core reload with core id to avoid multiple reloads
     new 3e79a05  SOLR-14750: Invoke core reload with core id to avoid multiple reloads

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[lucene-solr] 02/02: SOLR-14750: Invoke core reload with core id to avoid multiple reloads

Posted by no...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 3e79a0513d731f22e851a06d9970772b77512960
Author: noblepaul <no...@gmail.com>
AuthorDate: Mon Aug 17 10:55:10 2020 +1000

    SOLR-14750: Invoke core reload with core id to avoid multiple reloads
---
 solr/core/src/java/org/apache/solr/core/CoreContainer.java        | 7 -------
 solr/core/src/java/org/apache/solr/core/SolrCore.java             | 2 +-
 solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java | 2 +-
 solr/core/src/java/org/apache/solr/schema/SchemaManager.java      | 4 ++--
 4 files changed, 4 insertions(+), 11 deletions(-)

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 ac9342f..b5cd2d7 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -1570,13 +1570,6 @@ public class CoreContainer {
     return ret;
   }
 
-  /**Reload the core asynchronously
-   */
-  public void reloadAsync(SolrCore core) {
-    final String name = core.getName();
-    final UUID coreId = core.uniqueId;
-    runAsync(() -> reload(name, coreId));
-  }
   /**
    * reloads a core
    * refer {@link CoreContainer#reload(String, UUID)} for details
diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java
index 13f791d..6e5fda2 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrCore.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java
@@ -3101,7 +3101,7 @@ public final class SolrCore implements SolrInfoBean, Closeable {
         if (configHandler.getReloadLock().tryLock()) {
 
           try {
-            core.getCoreContainer().reloadAsync(core);
+            core.getCoreContainer().reload(core.getName(), core.uniqueId);
           } catch (SolrCoreState.CoreIsClosedException e) {
             /*no problem this core is already closed*/
           } finally {
diff --git a/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java b/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
index 05acdc0..111cbcd 100644
--- a/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
@@ -538,7 +538,7 @@ public class SolrConfigHandler extends RequestHandlerBase implements SolrCoreAwa
             latestVersion, 30);
       } else {
         SolrResourceLoader.persistConfLocally(loader, ConfigOverlay.RESOURCE_NAME, overlay.toByteArray());
-        req.getCore().getCoreContainer().reloadAsync(req.getCore());
+        req.getCore().getCoreContainer().reload(req.getCore().getName(), req.getCore().uniqueId);
         log.info("Executed config commands successfully and persisted to File System {}", ops);
       }
 
diff --git a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
index cab0664..7185021 100644
--- a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
+++ b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
@@ -129,7 +129,7 @@ public class SchemaManager {
             latestVersion = ZkController.persistConfigResourceToZooKeeper
                 (zkLoader, managedIndexSchema.getSchemaZkVersion(), managedIndexSchema.getResourceName(),
                  sw.toString().getBytes(StandardCharsets.UTF_8), true);
-            req.getCore().getCoreContainer().reloadAsync(req.getCore());
+            req.getCore().getCoreContainer().reload(req.getCore().getName(), req.getCore().uniqueId);
             break;
           } catch (ZkController.ResourceModifiedInZkException e) {
             log.info("Schema was modified by another node. Retrying..");
@@ -139,7 +139,7 @@ public class SchemaManager {
             //only for non cloud stuff
             managedIndexSchema.persistManagedSchema(false);
             core.setLatestSchema(managedIndexSchema);
-            core.getCoreContainer().reloadAsync(core);
+            core.getCoreContainer().reload(core.getName(), core.uniqueId);
           } catch (SolrException e) {
             log.warn(errorMsg);
             errors = singletonList(errorMsg + e.getMessage());


[lucene-solr] 01/02: SOLR-14750: Invoke core reload with core id to avoid multiple reloads

Posted by no...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit f559c73431b85f8187ef916d3e391ab193432451
Author: noblepaul <no...@gmail.com>
AuthorDate: Mon Aug 17 10:41:15 2020 +1000

    SOLR-14750: Invoke core reload with core id to avoid multiple reloads
---
 .../core/src/java/org/apache/solr/core/CoreContainer.java |  7 +++++++
 solr/core/src/java/org/apache/solr/core/SolrCore.java     |  2 +-
 .../src/java/org/apache/solr/handler/IndexFetcher.java    |  2 +-
 .../java/org/apache/solr/handler/SolrConfigHandler.java   | 15 +++------------
 .../src/java/org/apache/solr/schema/SchemaManager.java    |  9 +++------
 .../solr/metrics/reporters/SolrJmxReporterTest.java       |  2 +-
 .../src/test/org/apache/solr/update/VersionInfoTest.java  |  2 +-
 7 files changed, 17 insertions(+), 22 deletions(-)

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 b5cd2d7..ac9342f 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -1570,6 +1570,13 @@ public class CoreContainer {
     return ret;
   }
 
+  /**Reload the core asynchronously
+   */
+  public void reloadAsync(SolrCore core) {
+    final String name = core.getName();
+    final UUID coreId = core.uniqueId;
+    runAsync(() -> reload(name, coreId));
+  }
   /**
    * reloads a core
    * refer {@link CoreContainer#reload(String, UUID)} for details
diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java
index a4a6fcf..13f791d 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrCore.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java
@@ -3101,7 +3101,7 @@ public final class SolrCore implements SolrInfoBean, Closeable {
         if (configHandler.getReloadLock().tryLock()) {
 
           try {
-            cc.reload(coreName);
+            core.getCoreContainer().reloadAsync(core);
           } catch (SolrCoreState.CoreIsClosedException e) {
             /*no problem this core is already closed*/
           } finally {
diff --git a/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java b/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
index 57f8ba0..0f5bb7b 100644
--- a/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
+++ b/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
@@ -948,7 +948,7 @@ public class IndexFetcher {
     final CountDownLatch latch = new CountDownLatch(1);
     new Thread(() -> {
       try {
-        solrCore.getCoreContainer().reload(solrCore.getName());
+        solrCore.getCoreContainer().reload(solrCore.getName(), solrCore.uniqueId);
       } catch (Exception e) {
         log.error("Could not reload core ", e);
       } finally {
diff --git a/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java b/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
index bf59941..05acdc0 100644
--- a/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
@@ -18,17 +18,8 @@ package org.apache.solr.handler;
 
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
@@ -547,7 +538,7 @@ public class SolrConfigHandler extends RequestHandlerBase implements SolrCoreAwa
             latestVersion, 30);
       } else {
         SolrResourceLoader.persistConfLocally(loader, ConfigOverlay.RESOURCE_NAME, overlay.toByteArray());
-        req.getCore().getCoreContainer().reload(req.getCore().getName());
+        req.getCore().getCoreContainer().reloadAsync(req.getCore());
         log.info("Executed config commands successfully and persisted to File System {}", ops);
       }
 
diff --git a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
index 2402e15..cab0664 100644
--- a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
+++ b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
@@ -21,10 +21,7 @@ import java.io.InputStream;
 import java.io.StringWriter;
 import java.lang.invoke.MethodHandles;
 import java.nio.charset.StandardCharsets;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.solr.cloud.ZkController;
@@ -132,7 +129,7 @@ public class SchemaManager {
             latestVersion = ZkController.persistConfigResourceToZooKeeper
                 (zkLoader, managedIndexSchema.getSchemaZkVersion(), managedIndexSchema.getResourceName(),
                  sw.toString().getBytes(StandardCharsets.UTF_8), true);
-            req.getCore().getCoreContainer().reload(req.getCore().getName());
+            req.getCore().getCoreContainer().reloadAsync(req.getCore());
             break;
           } catch (ZkController.ResourceModifiedInZkException e) {
             log.info("Schema was modified by another node. Retrying..");
@@ -142,7 +139,7 @@ public class SchemaManager {
             //only for non cloud stuff
             managedIndexSchema.persistManagedSchema(false);
             core.setLatestSchema(managedIndexSchema);
-            core.getCoreContainer().reload(core.getName());
+            core.getCoreContainer().reloadAsync(core);
           } catch (SolrException e) {
             log.warn(errorMsg);
             errors = singletonList(errorMsg + e.getMessage());
diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java
index 58ee10a..77d192e 100644
--- a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java
@@ -184,7 +184,7 @@ public class SolrJmxReporterTest extends SolrTestCaseJ4 {
         filter(o -> scope.equals(o.getObjectName().getKeyProperty("scope")) &&
         o.getObjectName().getDomain().equals(rootName)).count());
 
-    h.getCoreContainer().reload(h.getCore().getName());
+    h.getCoreContainer().reload(h.getCore().getName(), h.getCore().uniqueId);
     PluginInfo pluginInfo = createReporterPluginInfo(rootName, true);
     metricManager.loadReporter(coreMetricManager.getRegistryName(), coreMetricManager.getCore(),
         pluginInfo, String.valueOf(coreMetricManager.getCore().hashCode()));
diff --git a/solr/core/src/test/org/apache/solr/update/VersionInfoTest.java b/solr/core/src/test/org/apache/solr/update/VersionInfoTest.java
index de68a50..163a43d 100644
--- a/solr/core/src/test/org/apache/solr/update/VersionInfoTest.java
+++ b/solr/core/src/test/org/apache/solr/update/VersionInfoTest.java
@@ -138,7 +138,7 @@ public class VersionInfoTest extends SolrTestCaseJ4 {
 
     // reload the core, which should reset the max
     CoreContainer coreContainer = req.getCore().getCoreContainer();
-    coreContainer.reload(req.getCore().getName());
+    coreContainer.reload(req.getCore().getName(), req.getCore().uniqueId);
     maxVersionFromUlog = ulog.getMaxVersionFromIndex();
     assertEquals("after reload, max version from ulog should be equal to version of last doc added",
                  maxVersionFromUlog, versionFromIndex);