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 2013/12/23 20:01:20 UTC
svn commit: r1553179 - in /lucene/dev/branches/branch_4x: ./ solr/
solr/CHANGES.txt solr/core/
solr/core/src/java/org/apache/solr/cloud/ZkController.java
Author: markrmiller
Date: Mon Dec 23 19:01:19 2013
New Revision: 1553179
URL: http://svn.apache.org/r1553179
Log:
SOLR-5576: Improve concurrency when registering and waiting for all SolrCore's to register a DOWN state.
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/cloud/ZkController.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=1553179&r1=1553178&r2=1553179&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/solr/CHANGES.txt Mon Dec 23 19:01:19 2013
@@ -191,6 +191,9 @@ Optimizations
* SOLR-5512: Optimize DocValuesFacets. (Robert Muir)
+* SOLR-5576: Improve concurrency when registering and waiting for all
+ SolrCore's to register a DOWN state. (Christine Poerschke via Mark Miller)
+
Other Changes
---------------------
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkController.java?rev=1553179&r1=1553178&r2=1553179&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkController.java Mon Dec 23 19:01:19 2013
@@ -297,7 +297,6 @@ public final class ZkController {
// before registering as live, make sure everyone is in a
// down state
for (CoreDescriptor descriptor : descriptors) {
- final String coreZkNodeName = descriptor.getCloudDescriptor().getCoreNodeName();
try {
descriptor.getCloudDescriptor().setLeader(false);
publish(descriptor, ZkStateReader.DOWN, updateLastPublished);
@@ -317,7 +316,9 @@ public final class ZkController {
continue;
}
}
+ }
+ for (CoreDescriptor descriptor : descriptors) {
// if it looks like we are going to be the leader, we don't
// want to wait for the following stuff
CloudDescriptor cloudDesc = descriptor.getCloudDescriptor();
@@ -331,19 +332,23 @@ public final class ZkController {
ZkStateReader.COLLECTIONS_ZKNODE + "/" + collection
+ "/leader_elect/" + slice + "/election", null, true).size();
if (children == 0) {
- return;
+ log.debug("looks like we are going to be the leader for collection {} shard {}", collection, slice);
+ continue;
}
} catch (NoNodeException e) {
- return;
+ log.debug("looks like we are going to be the leader for collection {} shard {}", collection, slice);
+ continue;
} catch (InterruptedException e2) {
Thread.currentThread().interrupt();
} catch (KeeperException e) {
log.warn("", e);
Thread.currentThread().interrupt();
}
-
+
+ final String coreZkNodeName = descriptor.getCloudDescriptor().getCoreNodeName();
try {
+ log.debug("calling waitForLeaderToSeeDownState for coreZkNodeName={} collection={} shard={}", new Object[] {coreZkNodeName, collection, slice});
waitForLeaderToSeeDownState(descriptor, coreZkNodeName);
} catch (Exception e) {
SolrException.log(log, "", e);