mirror of
https://github.com/apache/lucene.git
synced 2025-02-08 19:15:06 +00:00
SOLR-8300: Use constants for the /overseer_elect znode
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1714841 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ea917093f8
commit
dd8b980036
@ -527,6 +527,8 @@ Other Changes
|
|||||||
|
|
||||||
* SOLR-8290: remove SchemaField.checkFieldCacheSource's unused QParser argument (Christine Poerschke)
|
* SOLR-8290: remove SchemaField.checkFieldCacheSource's unused QParser argument (Christine Poerschke)
|
||||||
|
|
||||||
|
* SOLR-8300: Use constants for the /overseer_elect znode (Varun Thacker)
|
||||||
|
|
||||||
================== 5.3.1 ==================
|
================== 5.3.1 ==================
|
||||||
|
|
||||||
Bug Fixes
|
Bug Fixes
|
||||||
|
@ -652,14 +652,14 @@ final class OverseerElectionContext extends ElectionContext {
|
|||||||
private static Logger log = LoggerFactory.getLogger(OverseerElectionContext.class);
|
private static Logger log = LoggerFactory.getLogger(OverseerElectionContext.class);
|
||||||
private final SolrZkClient zkClient;
|
private final SolrZkClient zkClient;
|
||||||
private Overseer overseer;
|
private Overseer overseer;
|
||||||
public static final String PATH = "/overseer_elect";
|
public static final String OVERSEER_ELECT = "/overseer_elect";
|
||||||
|
|
||||||
public OverseerElectionContext(SolrZkClient zkClient, Overseer overseer, final String zkNodeName) {
|
public OverseerElectionContext(SolrZkClient zkClient, Overseer overseer, final String zkNodeName) {
|
||||||
super(zkNodeName,PATH , PATH+"/leader", null, zkClient);
|
super(zkNodeName, OVERSEER_ELECT, OVERSEER_ELECT + "/leader", null, zkClient);
|
||||||
this.overseer = overseer;
|
this.overseer = overseer;
|
||||||
this.zkClient = zkClient;
|
this.zkClient = zkClient;
|
||||||
try {
|
try {
|
||||||
new ZkCmdExecutor(zkClient.getZkClientTimeout()).ensureExists("/overseer_elect", zkClient);
|
new ZkCmdExecutor(zkClient.getZkClientTimeout()).ensureExists(OVERSEER_ELECT, zkClient);
|
||||||
} catch (KeeperException e) {
|
} catch (KeeperException e) {
|
||||||
throw new SolrException(ErrorCode.SERVER_ERROR, e);
|
throw new SolrException(ErrorCode.SERVER_ERROR, e);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
|
@ -298,8 +298,8 @@ public class Overseer implements Closeable {
|
|||||||
private void checkIfIamStillLeader() {
|
private void checkIfIamStillLeader() {
|
||||||
if (zkController != null && zkController.getCoreContainer().isShutDown()) return;//shutting down no need to go further
|
if (zkController != null && zkController.getCoreContainer().isShutDown()) return;//shutting down no need to go further
|
||||||
org.apache.zookeeper.data.Stat stat = new org.apache.zookeeper.data.Stat();
|
org.apache.zookeeper.data.Stat stat = new org.apache.zookeeper.data.Stat();
|
||||||
String path = "/overseer_elect/leader";
|
String path = OverseerElectionContext.OVERSEER_ELECT + "/leader";
|
||||||
byte[] data = null;
|
byte[] data;
|
||||||
try {
|
try {
|
||||||
data = zkClient.getData(path, null, stat, true);
|
data = zkClient.getData(path, null, stat, true);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -409,7 +409,7 @@ public class Overseer implements Closeable {
|
|||||||
boolean success = true;
|
boolean success = true;
|
||||||
try {
|
try {
|
||||||
ZkNodeProps props = ZkNodeProps.load(zkClient.getData(
|
ZkNodeProps props = ZkNodeProps.load(zkClient.getData(
|
||||||
"/overseer_elect/leader", null, null, true));
|
OverseerElectionContext.OVERSEER_ELECT + "/leader", null, null, true));
|
||||||
if (myId.equals(props.getStr("id"))) {
|
if (myId.equals(props.getStr("id"))) {
|
||||||
return LeaderStatus.YES;
|
return LeaderStatus.YES;
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ public class OverseerNodePrioritizer {
|
|||||||
String ldr = OverseerTaskProcessor.getLeaderNode(zk);
|
String ldr = OverseerTaskProcessor.getLeaderNode(zk);
|
||||||
if(overseerDesignates.contains(ldr)) return;
|
if(overseerDesignates.contains(ldr)) return;
|
||||||
log.info("prioritizing overseer nodes at {} overseer designates are {}", overseerId, overseerDesignates);
|
log.info("prioritizing overseer nodes at {} overseer designates are {}", overseerId, overseerDesignates);
|
||||||
List<String> electionNodes = OverseerTaskProcessor.getSortedElectionNodes(zk, OverseerElectionContext.PATH + LeaderElector.ELECTION_NODE);
|
List<String> electionNodes = OverseerTaskProcessor.getSortedElectionNodes(zk, OverseerElectionContext.OVERSEER_ELECT + LeaderElector.ELECTION_NODE);
|
||||||
if(electionNodes.size()<2) return;
|
if(electionNodes.size()<2) return;
|
||||||
log.info("sorted nodes {}", electionNodes);
|
log.info("sorted nodes {}", electionNodes);
|
||||||
|
|
||||||
|
@ -306,7 +306,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
|
|||||||
public static List<String> getSortedOverseerNodeNames(SolrZkClient zk) throws KeeperException, InterruptedException {
|
public static List<String> getSortedOverseerNodeNames(SolrZkClient zk) throws KeeperException, InterruptedException {
|
||||||
List<String> children = null;
|
List<String> children = null;
|
||||||
try {
|
try {
|
||||||
children = zk.getChildren(OverseerElectionContext.PATH + LeaderElector.ELECTION_NODE, null, true);
|
children = zk.getChildren(OverseerElectionContext.OVERSEER_ELECT + LeaderElector.ELECTION_NODE, null, true);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.warn("error ", e);
|
log.warn("error ", e);
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
@ -339,7 +339,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
|
|||||||
public static String getLeaderId(SolrZkClient zkClient) throws KeeperException,InterruptedException{
|
public static String getLeaderId(SolrZkClient zkClient) throws KeeperException,InterruptedException{
|
||||||
byte[] data = null;
|
byte[] data = null;
|
||||||
try {
|
try {
|
||||||
data = zkClient.getData("/overseer_elect/leader", null, new Stat(), true);
|
data = zkClient.getData(OverseerElectionContext.OVERSEER_ELECT + "/leader", null, new Stat(), true);
|
||||||
} catch (KeeperException.NoNodeException e) {
|
} catch (KeeperException.NoNodeException e) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -353,7 +353,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
|
|||||||
boolean success = true;
|
boolean success = true;
|
||||||
try {
|
try {
|
||||||
ZkNodeProps props = ZkNodeProps.load(zkStateReader.getZkClient().getData(
|
ZkNodeProps props = ZkNodeProps.load(zkStateReader.getZkClient().getData(
|
||||||
"/overseer_elect/leader", null, null, true));
|
OverseerElectionContext.OVERSEER_ELECT + "/leader", null, null, true));
|
||||||
if (myId.equals(props.getStr("id"))) {
|
if (myId.equals(props.getStr("id"))) {
|
||||||
return LeaderStatus.YES;
|
return LeaderStatus.YES;
|
||||||
}
|
}
|
||||||
|
@ -1890,7 +1890,7 @@ public final class ZkController {
|
|||||||
//however delete it . This is possible when the last attempt at deleting the election node failed.
|
//however delete it . This is possible when the last attempt at deleting the election node failed.
|
||||||
if (electionNode.startsWith(getNodeName())) {
|
if (electionNode.startsWith(getNodeName())) {
|
||||||
try {
|
try {
|
||||||
zkClient.delete(OverseerElectionContext.PATH + LeaderElector.ELECTION_NODE + "/" + electionNode, -1, true);
|
zkClient.delete(OverseerElectionContext.OVERSEER_ELECT + LeaderElector.ELECTION_NODE + "/" + electionNode, -1, true);
|
||||||
} catch (NoNodeException e) {
|
} catch (NoNodeException e) {
|
||||||
//no problem
|
//no problem
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
|
@ -177,7 +177,7 @@ public class OverseerRolesTest extends AbstractFullDistribZkTestBase{
|
|||||||
log.info("leader node {}", leaderJetty.getBaseUrl());
|
log.info("leader node {}", leaderJetty.getBaseUrl());
|
||||||
log.info ("current election Queue",
|
log.info ("current election Queue",
|
||||||
OverseerCollectionConfigSetProcessor.getSortedElectionNodes(client.getZkStateReader().getZkClient(),
|
OverseerCollectionConfigSetProcessor.getSortedElectionNodes(client.getZkStateReader().getZkClient(),
|
||||||
OverseerElectionContext.PATH + LeaderElector.ELECTION_NODE));
|
"/overseer_elect/election"));
|
||||||
ChaosMonkey.stop(leaderJetty);
|
ChaosMonkey.stop(leaderJetty);
|
||||||
timeout = new TimeOut(10, TimeUnit.SECONDS);
|
timeout = new TimeOut(10, TimeUnit.SECONDS);
|
||||||
leaderchanged = false;
|
leaderchanged = false;
|
||||||
|
@ -20,7 +20,6 @@ package org.apache.solr.cloud;
|
|||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
|
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
|
||||||
import org.apache.solr.common.cloud.SolrZkClient;
|
import org.apache.solr.common.cloud.SolrZkClient;
|
||||||
import org.apache.solr.common.params.CollectionParams;
|
|
||||||
import org.apache.zookeeper.KeeperException;
|
import org.apache.zookeeper.KeeperException;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@ -97,7 +96,7 @@ public class RollingRestartTest extends AbstractFullDistribZkTestBase {
|
|||||||
if (leader == null)
|
if (leader == null)
|
||||||
log.error("NOOVERSEER election queue is :" +
|
log.error("NOOVERSEER election queue is :" +
|
||||||
OverseerCollectionConfigSetProcessor.getSortedElectionNodes(cloudClient.getZkStateReader().getZkClient(),
|
OverseerCollectionConfigSetProcessor.getSortedElectionNodes(cloudClient.getZkStateReader().getZkClient(),
|
||||||
OverseerElectionContext.PATH + LeaderElector.ELECTION_NODE));
|
"/overseer_elect/election"));
|
||||||
fail("No overseer designate as leader found after restart #" + (i + 1) + ": " + leader);
|
fail("No overseer designate as leader found after restart #" + (i + 1) + ": " + leader);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -108,7 +107,7 @@ public class RollingRestartTest extends AbstractFullDistribZkTestBase {
|
|||||||
if (leader == null)
|
if (leader == null)
|
||||||
log.error("NOOVERSEER election queue is :" +
|
log.error("NOOVERSEER election queue is :" +
|
||||||
OverseerCollectionConfigSetProcessor.getSortedElectionNodes(cloudClient.getZkStateReader().getZkClient(),
|
OverseerCollectionConfigSetProcessor.getSortedElectionNodes(cloudClient.getZkStateReader().getZkClient(),
|
||||||
OverseerElectionContext.PATH + LeaderElector.ELECTION_NODE));
|
"/overseer_elect/election"));
|
||||||
fail("No overseer leader found after restart #" + (i + 1) + ": " + leader);
|
fail("No overseer leader found after restart #" + (i + 1) + ": " + leader);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user