org.apache.solr.cloud
public class LeaderElector extends Object
setup(ElectionContext)
to ensure
the election process is init'd. Next call
joinElection(ElectionContext, boolean)
to start the leader election.
The implementation follows the classic ZooKeeper recipe of creating an
ephemeral, sequential node for each candidate and then looking at the set
of such nodes - if the created node is the lowest sequential node, the
candidate that created the node is the leader. If not, the candidate puts
a watch on the next lowest node it finds, and if that node goes down,
starts the whole process over by checking if it's the lowest sequential node, etc.Modifier and Type | Field and Description |
---|---|
protected SolrZkClient |
zkClient |
Constructor and Description |
---|
LeaderElector(SolrZkClient zkClient) |
Modifier and Type | Method and Description |
---|---|
ElectionContext |
getContext() |
int |
joinElection(ElectionContext context,
boolean replacement)
Begin participating in the election process.
|
protected void |
runIamLeaderProcess(ElectionContext context,
boolean weAreReplacement) |
void |
setup(ElectionContext context)
Set up any ZooKeeper nodes needed for leader election.
|
protected SolrZkClient zkClient
public LeaderElector(SolrZkClient zkClient)
public ElectionContext getContext()
protected void runIamLeaderProcess(ElectionContext context, boolean weAreReplacement) throws org.apache.zookeeper.KeeperException, InterruptedException, IOException
org.apache.zookeeper.KeeperException
InterruptedException
IOException
public int joinElection(ElectionContext context, boolean replacement) throws org.apache.zookeeper.KeeperException, InterruptedException, IOException
org.apache.zookeeper.KeeperException
InterruptedException
IOException
public void setup(ElectionContext context) throws InterruptedException, org.apache.zookeeper.KeeperException
InterruptedException
org.apache.zookeeper.KeeperException
Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.