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 2021/03/09 23:26:50 UTC

[lucene-solr] 01/04: @1434 Couple tweaks around state updates.

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 075f0342be28b0d63c370653e1c1729bbb47920c
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Tue Mar 9 15:07:10 2021 -0600

    @1434 Couple tweaks around state updates.
---
 .../OverseerCollectionMessageHandler.java          |  5 ++--
 .../apache/solr/cloud/overseer/ZkStateWriter.java  | 28 +++++++---------------
 2 files changed, 10 insertions(+), 23 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
index 0312bd1..65034f4 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
@@ -49,8 +49,7 @@ import org.apache.solr.common.cloud.DocCollection;
 import org.apache.solr.common.cloud.DocRouter;
 import org.apache.solr.common.cloud.Replica;
 import org.apache.solr.common.cloud.Slice;
-import org.apache.solr.common.cloud.SolrZkClient;
-import org.apache.solr.common.cloud.SolrZooKeeper;
+import org.apache.solr.common.cloud.SolrZkClient;l
 import org.apache.solr.common.cloud.ZkConfigManager;
 import org.apache.solr.common.cloud.ZkNodeProps;
 import org.apache.solr.common.cloud.ZkStateReader;
@@ -285,7 +284,7 @@ public class OverseerCollectionMessageHandler implements OverseerMessageHandler,
     MDCLoggingContext.setCoreName(message.getStr(REPLICA_PROP));
     if (log.isDebugEnabled()) log.debug("OverseerCollectionMessageHandler.processMessage : {} , {}", operation, message);
 
-    ClusterState clusterState = zkWriter.getClusterstate(false);
+    ClusterState clusterState = zkWriter.getClusterstate();
     @SuppressWarnings({"rawtypes"}) NamedList results = new NamedList();
     try {
       String collection = message.getStr("collection");
diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
index efa48e6..20c4f55 100644
--- a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
+++ b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
@@ -515,23 +515,16 @@ public class ZkStateWriter {
                 ZkNodeProps updates = stateUpdates.get(collection.getName());
                 if (updates != null) {
                   updates.getProperties().clear();
-                  String stateUpdatesPath = ZkStateReader.getCollectionStateUpdatesPath(collection.getName());
-                  if (log.isDebugEnabled()) log.debug("write state updates for collection {} {}", collection.getName(), updates);
-                  try {
-                    reader.getZkClient().setData(stateUpdatesPath, Utils.toJSON(updates), -1, true, false);
-                  } catch (KeeperException.NoNodeException e) {
-                    if (log.isDebugEnabled()) log.debug("No node found for " + stateUpdatesPath, e);
-                  }
                 }
               }
 
             } catch (KeeperException.NoNodeException e) {
               if (log.isDebugEnabled()) log.debug("No node found for state.json", e);
 
-//              lastVersion.set(-1);
-//              trackVersions.remove(collection.getName());
-//              stateUpdates.remove(collection.getName());
-//              cs.getCollectionStates().remove(collection);
+              lastVersion.set(-1);
+              trackVersions.remove(collection.getName());
+              stateUpdates.remove(collection.getName());
+              cs.getCollectionStates().remove(collection);
               // likely deleted
 
             } catch (KeeperException.BadVersionException bve) {
@@ -553,7 +546,7 @@ public class ZkStateWriter {
             if (dirtyState.contains(collection.getName()) && !dirtyStructure.contains(collection.getName())) {
               ZkNodeProps updates = stateUpdates.get(collection.getName());
               if (updates != null) {
-                writeStateUpdates(lastVersion, collection, updates);
+                writeStateUpdates(collection, updates);
               }
             }
 
@@ -590,7 +583,7 @@ public class ZkStateWriter {
     //    }
   }
 
-  private void writeStateUpdates(AtomicInteger lastVersion, DocCollection collection, ZkNodeProps updates) throws KeeperException, InterruptedException {
+  private void writeStateUpdates(DocCollection collection, ZkNodeProps updates) throws KeeperException, InterruptedException {
     String stateUpdatesPath = ZkStateReader.getCollectionStateUpdatesPath(collection.getName());
     if (log.isDebugEnabled()) log.debug("write state updates for collection {} {}", collection.getName(), updates);
     dirtyState.remove(collection.getName());
@@ -598,14 +591,11 @@ public class ZkStateWriter {
       reader.getZkClient().setData(stateUpdatesPath, Utils.toJSON(updates), -1, true, false);
     } catch (KeeperException.NoNodeException e) {
       if (log.isDebugEnabled()) log.debug("No node found for state.json", e);
-     // cs.getCollectionStates().remove(collection.getName());
-      lastVersion.set(-1);
-      trackVersions.remove(collection.getName());
       // likely deleted
     }
   }
 
-  public ClusterState getClusterstate(boolean stateUpdate) {
+  public ClusterState getClusterstate() {
     ourLock.lock();
     try {
       return ClusterState.getRefCS(cs.getCollectionsMap(), -2);
@@ -627,9 +617,7 @@ public class ZkStateWriter {
       dirtyStructure.remove(collection);
       dirtyState.remove(collection);
       ZkNodeProps message = new ZkNodeProps("name", collection);
-
-     // cs = new ClusterStateMutator(overseer.getSolrCloudManager()).deleteCollection(cs, message);
-
+      cs = new ClusterStateMutator(overseer.getSolrCloudManager()).deleteCollection(cs, message);
       Long id = null;
       for (Map.Entry<Long, String> entry : idToCollection.entrySet()) {
         if (entry.getValue().equals(collection)) {