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)) {