Class TwoNodeClusterRaftPolicy

java.lang.Object
org.opendaylight.controller.cluster.datastore.policy.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 Details

    • TwoNodeClusterRaftPolicy

      public TwoNodeClusterRaftPolicy()
  • Method Details

    • 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