void synchronizeFromFollower(String peerId)
      throws IOException, TimeoutException, InterruptedException {
    LOG.debug("Begins synchronizing from follower {}.", peerId);
    Zxid lastZxid = persistence.getLatestZxid();
    Message pullTxn = MessageBuilder.buildPullTxnReq(lastZxid);
    LOG.debug("Last zxid of {} is {}", this.serverId, lastZxid);
    sendMessage(peerId, pullTxn);
    // Waits until the synchronization is finished.
    waitForSync(peerId);
  }
void synchronizeFromFollower ( String peerId ) throws IOException , TimeoutException , InterruptedException { LOG . debug ( "Begins synchronizing from follower {}." , peerId ) ; Zxid lastZxid = persistence . getLatestZxid ( ) ; Message pullTxn = MessageBuilder . buildPullTxnReq ( lastZxid ) ; LOG . debug ( "Last zxid of {} is {}" , this . serverId , lastZxid ) ; sendMessage ( peerId , pullTxn ) ; waitForSync ( peerId ) ; }
Pulls the history from the server who has the "best" history.

@param peerId the id of the server whose history is selected.