Package

miniraft

state

Permalink

package state

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. state
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class AddHost(server: HostLocation) extends DynamicClusterMessage with Product with Serializable

    Permalink
  2. class Candidate extends NodeRole

    Permalink
  3. case class ClusterPeer(matchIndex: LogIndex, nextIndex: LogIndex) extends Product with Serializable

    Permalink
  4. trait ClusterProtocol extends AnyRef

    Permalink

    Represents a view of the cluster to a RaftNode.

    Represents a view of the cluster to a RaftNode. This is passed in, allowing the RaftNode (whos responsibility is to maintain its own state) to communicate with the rest of the cluster and control its timeouts

  5. sealed trait DynamicClusterMessage extends AnyRef

    Permalink
  6. case class DynamicHostService(config: RaftConfig, clusterNodesFile: Path) extends StrictLogging with Product with Serializable

    Permalink

    Provides a handler onDynamicClusterMessage for Raft DynamicClusterMessage append messages

  7. class ElectionCounter extends AnyRef

    Permalink
  8. trait InitialisableTimer extends RaftTimer

    Permalink

    Timers are tricky, as they need to be given to a ClusterProtocol, but the cluster protocol needs to reference nodes, which the timers in turn need to have a reference to.

    Timers are tricky, as they need to be given to a ClusterProtocol, but the cluster protocol needs to reference nodes, which the timers in turn need to have a reference to.

    Because of this circular reference, we make an 'initializable' timer, which is a valid RaftTimer, but resets won't take affect until it has been initialized.

  9. case class Leader(clusterViewByNodeId: Map[NodeId, ClusterPeer]) extends NodeRole with Product with Serializable

    Permalink
  10. trait Log[Command] extends AnyRef

    Permalink

    Represents the commit log

    Represents the commit log

    Command

    the messages we're saving to the log

  11. case class LogEntry[Command](term: Term, index: LogIndex, command: Command) extends Product with Serializable

    Permalink
  12. type LogIndex = Int

    Permalink
  13. type NodeId = String

    Permalink
  14. sealed trait NodeRole extends AnyRef

    Permalink
  15. case class NotTheLeaderException(currentLeader: Option[NodeId], roleId: NodeId, currentState: String, clusterSize: Int) extends Exception with Product with Serializable

    Permalink
  16. trait PersistentState[T] extends AnyRef

    Permalink
  17. class RaftConfig extends ServerConfig

    Permalink
  18. trait RaftNode[T] extends RaftEndpoint[T]

    Permalink

    A RaftNode encapsulates (or should encapsulate) _any_ raft implementation.

    A RaftNode encapsulates (or should encapsulate) _any_ raft implementation.

    The RaftEndpoint is the API representation for things which want to send raft messages to a node, but a 'RaftNode' can also accept reply messages

  19. case class RaftState[T](role: NodeRole, persistentState: PersistentState[T]) extends Product with Serializable

    Permalink
  20. class RaftSystem[T] extends AnyRef

    Permalink

    Pulls together the different components of a Raft System as seen by a raft node.

  21. trait RaftTimer extends AutoCloseable

    Permalink
  22. case class RemoveHost(server: HostLocation) extends DynamicClusterMessage with Product with Serializable

    Permalink
  23. case class Term(t: Int) extends Ordered[Term] with Product with Serializable

    Permalink

Value Members

  1. object Candidate

    Permalink
  2. object ClusterPeer extends Serializable

    Permalink
  3. object ClusterProtocol

    Permalink
  4. object DynamicClusterSystem extends FailFastCirceSupport with StrictLogging

    Permalink

    Provides a Raft setup which can add/remote cluster nodes at runtime

  5. object DynamicHostService extends Serializable

    Permalink
  6. object Follower extends NodeRole with Product with Serializable

    Permalink
  7. object InitialisableTimer

    Permalink
  8. object Log

    Permalink
  9. object LogEntry extends Serializable

    Permalink
  10. object PersistentState

    Permalink
  11. object RaftConfig

    Permalink
  12. object RaftNode

    Permalink
  13. object RaftState extends Serializable

    Permalink
  14. object RaftSystem extends StrictLogging

    Permalink

    Exposes functions for initialising raft systems from a configuration

  15. object RaftTimer

    Permalink
  16. object Term extends Serializable

    Permalink
  17. def isMajority(n: Int, total: Int): Boolean

    Permalink
  18. def raftId(location: HostLocation): String

    Permalink
  19. package rest

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped