Interface ElectionTerm

All Known Implementing Classes:
ImmutableElectionTerm

public interface ElectionTerm
ElectionTerm contains information about a RaftActors election term.

This information includes the last known current term of the RaftActor and which candidate was voted for by the RaftActor in that term.

This class ensures that election term information is persisted.

  • Method Summary

    Modifier and Type
    Method
    Description
    long
    Returns the current leader's Raft term.
    @Nullable String
    Returns the id of the candidate that this server voted for in current term.
    void
    update(long term, @Nullable String votedFor)
    This method updates the in-memory election term state.
    void
    updateAndPersist(long term, @Nullable String votedFor)
    This method updates the in-memory election term state and persists it so it can be recovered on next restart.
  • Method Details

    • getCurrentTerm

      long getCurrentTerm()
      Returns the current leader's Raft term.
      Returns:
      the current leader's Raft term.
    • getVotedFor

      @Nullable String getVotedFor()
      Returns the id of the candidate that this server voted for in current term.
      Returns:
      candidate id that received the vote or null if no candidate was voted for.
    • update

      void update(long term, @Nullable String votedFor)
      This method updates the in-memory election term state. This method should be called when recovering election state from persistent storage.
      Parameters:
      term - the election term.
      votedFor - the candidate id that was voted for.
    • updateAndPersist

      void updateAndPersist(long term, @Nullable String votedFor)
      This method updates the in-memory election term state and persists it so it can be recovered on next restart. This method should be called when starting a new election or when a Raft RPC message is received with a higher term.
      Parameters:
      term - the election term.
      votedFor - the candidate id that was voted for.