boolean isLeader(long id) { Vote vote = getCurrentVote(); return vote != null && id == vote.getId(); } }
private boolean updateVote(long designatedLeader, long zxid){ Vote currentVote = getCurrentVote(); if (currentVote!=null && designatedLeader != currentVote.getId()) { setCurrentVote(new Vote(designatedLeader, zxid)); reconfigFlagSet(); LOG.warn("Suggested leader: " + designatedLeader); return true; } return false; }
Vote current = getCurrentVote(); switch (getPeerState()) { case LOOKING:
/** * Returns the address of the node we think is the leader. */ protected QuorumServer findLeader() { QuorumServer leaderServer = null; // Find the leader by id Vote current = self.getCurrentVote(); for (QuorumServer s : self.getView().values()) { if (s.id == current.getId()) { // Ensure we have the leader's correct IP address before // attempting to connect. s.recreateSocketAddresses(); leaderServer = s; break; } } if (leaderServer == null) { LOG.warn("Couldn't find the leader with id = " + current.getId()); } return leaderServer; }
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; }
/** * Returns the address of the node we think is the leader. */ protected QuorumServer findLeader() { QuorumServer leaderServer = null; // Find the leader by id Vote current = self.getCurrentVote(); for (QuorumServer s : self.getView().values()) { if (s.id == current.getId()) { // Ensure we have the leader's correct IP address before // attempting to connect. s.recreateSocketAddresses(); leaderServer = s; break; } } if (leaderServer == null) { LOG.warn("Couldn't find the leader with id = " + current.getId()); } return leaderServer; }
Vote current = getCurrentVote(); switch (getPeerState()) { case LOOKING:
Vote current = self.getCurrentVote();
Vote current = self.getCurrentVote();
Vote current = self.getCurrentVote(); QuorumVerifier qv = self.getQuorumVerifier(); ToSend notmsg = new ToSend(ToSend.mType.notification, Vote current = self.getCurrentVote(); if(ackstate == QuorumPeer.ServerState.LOOKING){ if (self.leader != null) {
self.setCurrentVote(result.winner); s.close(); Vote current = self.getCurrentVote(); LOG.info("Found leader: my type is: " + self.getLearnerType());
Vote current = self.getCurrentVote(); ToSend notmsg = new ToSend(ToSend.mType.notification, current.getId(), Vote current = self.getCurrentVote(); if(ackstate == QuorumPeer.ServerState.LOOKING){ if(LOG.isDebugEnabled()){
long currentLeaderId = getCurrentVote().getId(); QuorumServer myleaderInCurQV = prevQV.getVotingMembers().get(currentLeaderId); QuorumServer myleaderInNewQV = qv.getVotingMembers().get(currentLeaderId);
Vote currentVote = getCurrentVote(); if (currentVote != null) { setCurrentVote(new Vote(currentVote.getId(),
/** * Updates leader election info to avoid inconsistencies when * a new server tries to join the ensemble. * See ZOOKEEPER-1732 for more info. */ protected void updateElectionVote(long newEpoch) { Vote currentVote = getCurrentVote(); setBCVote(currentVote); if (currentVote != null) { setCurrentVote(new Vote(currentVote.getId(), currentVote.getZxid(), currentVote.getElectionEpoch(), newEpoch, currentVote.getState())); } }
!v1.isSuccess()); long leaderSid = peer.getCurrentVote().getId(); long zxid = peer.getCurrentVote().getZxid(); long electionEpoch = peer.getCurrentVote().getElectionEpoch(); ServerState state = peer.getCurrentVote().getState(); long peerEpoch = peer.getCurrentVote().getPeerEpoch(); Vote newVote = new Vote(leaderSid, zxid+100, electionEpoch+100, peerEpoch, state); peer.setCurrentVote(newVote);
/** * Returns the address of the node we think is the leader. */ protected InetSocketAddress findLeader() { InetSocketAddress addr = null; // Find the leader by id Vote current = self.getCurrentVote(); for (QuorumServer s : self.getView().values()) { if (s.id == current.id) { addr = s.addr; break; } } if (addr == null) { LOG.warn("Couldn't find the leader with id = " + current.id); } return addr; }
Vote current = getCurrentVote(); switch (getPeerState()) { case LOOKING:
Vote current = getCurrentVote(); switch (getPeerState()) { case LOOKING:
/** * Updates leader election info to avoid inconsistencies when * a new server tries to join the ensemble. * See ZOOKEEPER-1732 for more info. */ protected void updateElectionVote(long newEpoch) { Vote currentVote = getCurrentVote(); setBCVote(currentVote); if (currentVote != null) { setCurrentVote(new Vote(currentVote.getId(), currentVote.getZxid(), currentVote.getElectionEpoch(), newEpoch, currentVote.getState())); } }