private synchronized void updateServerState(){ if (!reconfigFlag) { setPeerState(ServerState.LOOKING); LOG.warn("PeerState set to LOOKING"); return; } if (getId() == getCurrentVote().getId()) { setPeerState(ServerState.LEADING); LOG.debug("PeerState set to LEADING"); } else if (getLearnerType() == LearnerType.PARTICIPANT) { setPeerState(ServerState.FOLLOWING); LOG.debug("PeerState set to FOLLOWING"); } else if (getLearnerType() == LearnerType.OBSERVER) { setPeerState(ServerState.OBSERVING); LOG.debug("PeerState set to OBSERVER"); } else { // currently shouldn't happen since there are only 2 learner types setPeerState(ServerState.LOOKING); LOG.debug("Shouldn't be here"); } reconfigFlag = false; }
/** * Update the peer state based on the given proposedLeader. Also update * the leadingVoteSet if it becomes the leader. */ private void setPeerState(long proposedLeader, SyncedLearnerTracker voteSet) { ServerState ss = (proposedLeader == self.getId()) ? ServerState.LEADING: learningState(); self.setPeerState(ss); if (ss == ServerState.LEADING) { leadingVoteSet = voteSet; } }
self.setPeerState((proposedLeader == self.getId()) ? ServerState.LEADING: ServerState.FOLLOWING); self.setPeerState( (proposedLeader == self.getId()) ? ServerState.LEADING : self.setPeerState((n.leader == self.getId()) ? ServerState.LEADING: ServerState.FOLLOWING); self.setPeerState((n.leader == self.getId()) ? ServerState.LEADING: ServerState.FOLLOWING);
while(flag){ Vote v = null; peer.setPeerState(ServerState.LOOKING); LOG.info("Going to call leader election again: " + i); v = peer.getElectionAlg().lookForLeader();
self.setPeerState(ServerState.OBSERVING); Thread.sleep(100); return current; self.setPeerState((current.getId() == self.getId()) ? ServerState.LEADING: ServerState.FOLLOWING); if (self.getPeerState() == ServerState.FOLLOWING) {
public void run() { try { Vote v = null; peer.setPeerState(ServerState.LOOKING); LOG.info("Going to call leader election: {}", i); v = peer.getElectionAlg().lookForLeader(); if (v == null) { Assert.fail("Thread " + i + " got a null vote"); } /* * A real zookeeper would take care of setting the current vote. Here * we do it manually. */ peer.setCurrentVote(v); LOG.info("Finished election: {}, {}", i, v.getId()); Assert.assertTrue("State is not leading.", peer.getPeerState() == ServerState.LEADING); } catch (Exception e) { e.printStackTrace(); } LOG.info("Joining"); } }
Vote v = null; while(true) { peer.setPeerState(ServerState.LOOKING); LOG.info("Going to call leader election again."); v = peer.getElectionAlg().lookForLeader();
peer.setPeerState(ServerState.LOOKING); LOG.info("Going to call leader election."); v = peer.getElectionAlg().lookForLeader();
servers.mt[falseLeader].main.quorumPeer.setPeerState(QuorumPeer.ServerState.LEADING);
} catch (Exception e) { LOG.warn("Unexpected exception",e); setPeerState(ServerState.LOOKING); } finally { } catch (Exception e) { LOG.warn("Unexpected exception", e); setPeerState(ServerState.LOOKING); observer.shutdown(); setObserver(null); setPeerState(ServerState.LOOKING); follower.shutdown(); setFollower(null); setPeerState(ServerState.LOOKING); setLeader(null); setPeerState(ServerState.LOOKING);
} catch (Exception e) { LOG.warn("Unexpected exception", e); setPeerState(ServerState.LOOKING); } finally { } catch (Exception e) { LOG.warn("Unexpected exception", e); setPeerState(ServerState.LOOKING);
self.setPeerState((proposedLeader == self.getId()) ? ServerState.LEADING: ServerState.FOLLOWING); self.setPeerState( (proposedLeader == self.getId()) ? ServerState.LEADING : self.setPeerState((n.leader == self.getId()) ? ServerState.LEADING: ServerState.FOLLOWING); self.setPeerState((n.leader == self.getId()) ? ServerState.LEADING: ServerState.FOLLOWING);
self.setPeerState((proposedLeader == self.getId()) ? ServerState.LEADING: learningState()); self.setPeerState((n.leader == self.getId()) ? ServerState.LEADING: learningState()); synchronized(this){ logicalclock.set(n.electionEpoch); self.setPeerState((n.leader == self.getId()) ? ServerState.LEADING: learningState());
peer.setPeerState(ServerState.LOOKING); LOG.info("Going to call leader election again."); v = peer.getElectionAlg().lookForLeader();
self.setPeerState(ServerState.OBSERVING); Thread.sleep(100); return current; self.setPeerState((current.id == self.getId()) ? ServerState.LEADING: ServerState.FOLLOWING); if (self.getPeerState() == ServerState.FOLLOWING) {
self.setPeerState((proposedLeader == self.getId()) ? ServerState.LEADING: ServerState.FOLLOWING); self.setPeerState( (proposedLeader == self.getId()) ? ServerState.LEADING : self.setPeerState((n.leader == self.getId()) ? ServerState.LEADING: ServerState.FOLLOWING); self.setPeerState((n.leader == self.getId()) ? ServerState.LEADING: ServerState.FOLLOWING);
} catch (Exception e) { LOG.warn("Unexpected exception",e); setPeerState(ServerState.LOOKING); observer.shutdown(); setObserver(null); setPeerState(ServerState.LOOKING); follower.shutdown(); setFollower(null); setPeerState(ServerState.LOOKING); setLeader(null); setPeerState(ServerState.LOOKING);
} catch (Exception e) { LOG.warn("Unexpected exception",e); setPeerState(ServerState.LOOKING); } finally { } catch (Exception e) { LOG.warn("Unexpected exception", e); setPeerState(ServerState.LOOKING); observer.shutdown(); setObserver(null); setPeerState(ServerState.LOOKING); follower.shutdown(); setFollower(null); setPeerState(ServerState.LOOKING); setLeader(null); setPeerState(ServerState.LOOKING);
self.setPeerState((proposedLeader == self.getId()) ? ServerState.LEADING: learningState()); leaveInstance(); self.setPeerState((proposedLeader == self.getId()) ? ServerState.LEADING: learningState()); if(LOG.isDebugEnabled()){ n.zxid, n.epoch, n.state)) && checkLeader(outofelection, n.leader, n.epoch)) ){ self.setPeerState((n.leader == self.getId()) ? ServerState.LEADING: learningState()); synchronized(this){ logicalclock = n.epoch; self.setPeerState((n.leader == self.getId()) ? ServerState.LEADING: learningState());