Class TwoNodeClusterRaftPolicy

  • All Implemented Interfaces:
    RaftPolicy

    public class TwoNodeClusterRaftPolicy
    extends Object
    implements RaftPolicy
    The TwoNodeClusterRaftPolicy is intended to be used in a two node deployment where when one instance of the controller goes down the other instance is to take over and move the state forward. When a TwoNodeClusterRaftPolicy is used Raft elections are disabled. This is primarily because we would need to specify the leader externally. Also since we want one node to continue to function while the other node is down we would need to apply a modification to the state before consensus occurs.
    • Constructor Detail

      • TwoNodeClusterRaftPolicy

        public TwoNodeClusterRaftPolicy()
    • Method Detail

      • automaticElectionsEnabled

        public boolean automaticElectionsEnabled()
        Description copied from interface: RaftPolicy
        According to Raft a Follower which does not receive a heartbeat (aka AppendEntries) in a given period should become a Candidate and trigger an election.
        Specified by:
        automaticElectionsEnabled in interface RaftPolicy
        Returns:
        true to enable automatic Raft elections, false to disable them
      • applyModificationToStateBeforeConsensus

        public boolean applyModificationToStateBeforeConsensus()
        Description copied from interface: RaftPolicy
        According to Raft consensus on a Raft entry is achieved only after a Leader replicates a log entry to a majority of it's followers.
        Specified by:
        applyModificationToStateBeforeConsensus in interface RaftPolicy
        Returns:
        true if modification should be applied before consensus, false to apply modification to state as per Raft