mirror of https://github.com/apache/lucene.git
SOLR-5576: Improve concurrency when registering and waiting for all SolrCore's to register a DOWN state.
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1553178 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
227ce7c228
commit
76f3bbef6e
|
@ -227,6 +227,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
|
||||
---------------------
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue