Class DurableConsensusLogStore

java.lang.Object
org.j7m.middleware.consensus.DurableConsensusLogStore
All Implemented Interfaces:
AutoCloseable

public final class DurableConsensusLogStore extends Object implements AutoCloseable
Durable per-node consensus state store backed by the J7M durable log.
  • Constructor Summary

    Constructors
    Constructor
    Description
    DurableConsensusLogStore(org.j7m.middleware.api.consensus.ConsensusNodeId nodeId, Path directory)
    Opens a store.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    appendEntry(org.j7m.middleware.api.consensus.ConsensusLogEntry entry)
    Persists one log entry.
    void
    org.j7m.middleware.consensus.NodePersistentState
    Loads state.
    org.j7m.middleware.api.consensus.ConsensusRecoveryReport
    report(org.j7m.middleware.consensus.NodePersistentState state)
    Returns a safe recovery report for loaded state.
    void
    saveCommitIndex(org.j7m.middleware.api.consensus.CommitIndex commitIndex)
    Persists commit index.
    void
    saveTerm(org.j7m.middleware.api.consensus.ConsensusTerm term, org.j7m.middleware.api.consensus.ConsensusNodeId votedFor)
    Persists term and vote.
    void
    saveVote(org.j7m.middleware.api.consensus.ConsensusNodeId votedFor)
    Persists vote.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • DurableConsensusLogStore

      public DurableConsensusLogStore(org.j7m.middleware.api.consensus.ConsensusNodeId nodeId, Path directory)
      Opens a store.
      Parameters:
      nodeId - node id
      directory - durable directory
  • Method Details

    • load

      public org.j7m.middleware.consensus.NodePersistentState load()
      Loads state.
      Returns:
      recovered state
    • saveTerm

      public void saveTerm(org.j7m.middleware.api.consensus.ConsensusTerm term, org.j7m.middleware.api.consensus.ConsensusNodeId votedFor)
      Persists term and vote.
      Parameters:
      term - current term
      votedFor - voted-for node
    • saveVote

      public void saveVote(org.j7m.middleware.api.consensus.ConsensusNodeId votedFor)
      Persists vote.
      Parameters:
      votedFor - voted-for node
    • appendEntry

      public void appendEntry(org.j7m.middleware.api.consensus.ConsensusLogEntry entry)
      Persists one log entry.
      Parameters:
      entry - log entry
    • saveCommitIndex

      public void saveCommitIndex(org.j7m.middleware.api.consensus.CommitIndex commitIndex)
      Persists commit index.
      Parameters:
      commitIndex - commit index
    • report

      public org.j7m.middleware.api.consensus.ConsensusRecoveryReport report(org.j7m.middleware.consensus.NodePersistentState state)
      Returns a safe recovery report for loaded state.
      Parameters:
      state - state
      Returns:
      report
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable