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-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
|
Other Changes
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
|
|
|
@ -297,7 +297,6 @@ public final class ZkController {
|
||||||
// before registering as live, make sure everyone is in a
|
// before registering as live, make sure everyone is in a
|
||||||
// down state
|
// down state
|
||||||
for (CoreDescriptor descriptor : descriptors) {
|
for (CoreDescriptor descriptor : descriptors) {
|
||||||
final String coreZkNodeName = descriptor.getCloudDescriptor().getCoreNodeName();
|
|
||||||
try {
|
try {
|
||||||
descriptor.getCloudDescriptor().setLeader(false);
|
descriptor.getCloudDescriptor().setLeader(false);
|
||||||
publish(descriptor, ZkStateReader.DOWN, updateLastPublished);
|
publish(descriptor, ZkStateReader.DOWN, updateLastPublished);
|
||||||
|
@ -317,7 +316,9 @@ public final class ZkController {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (CoreDescriptor descriptor : descriptors) {
|
||||||
// if it looks like we are going to be the leader, we don't
|
// if it looks like we are going to be the leader, we don't
|
||||||
// want to wait for the following stuff
|
// want to wait for the following stuff
|
||||||
CloudDescriptor cloudDesc = descriptor.getCloudDescriptor();
|
CloudDescriptor cloudDesc = descriptor.getCloudDescriptor();
|
||||||
|
@ -331,19 +332,23 @@ public final class ZkController {
|
||||||
ZkStateReader.COLLECTIONS_ZKNODE + "/" + collection
|
ZkStateReader.COLLECTIONS_ZKNODE + "/" + collection
|
||||||
+ "/leader_elect/" + slice + "/election", null, true).size();
|
+ "/leader_elect/" + slice + "/election", null, true).size();
|
||||||
if (children == 0) {
|
if (children == 0) {
|
||||||
return;
|
log.debug("looks like we are going to be the leader for collection {} shard {}", collection, slice);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (NoNodeException e) {
|
} catch (NoNodeException e) {
|
||||||
return;
|
log.debug("looks like we are going to be the leader for collection {} shard {}", collection, slice);
|
||||||
|
continue;
|
||||||
} catch (InterruptedException e2) {
|
} catch (InterruptedException e2) {
|
||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
} catch (KeeperException e) {
|
} catch (KeeperException e) {
|
||||||
log.warn("", e);
|
log.warn("", e);
|
||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final String coreZkNodeName = descriptor.getCloudDescriptor().getCoreNodeName();
|
||||||
try {
|
try {
|
||||||
|
log.debug("calling waitForLeaderToSeeDownState for coreZkNodeName={} collection={} shard={}", new Object[] {coreZkNodeName, collection, slice});
|
||||||
waitForLeaderToSeeDownState(descriptor, coreZkNodeName);
|
waitForLeaderToSeeDownState(descriptor, coreZkNodeName);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
SolrException.log(log, "", e);
|
SolrException.log(log, "", e);
|
||||||
|
|
Loading…
Reference in New Issue