Interface RaftActorContext

All Known Implementing Classes:
RaftActorContextImpl

public interface RaftActorContext
The RaftActorContext contains that portion of the RaftActors state that needs to be shared with it's behaviors. A RaftActorContext should NEVER be used in any actor context outside the RaftActor that constructed it.
  • Method Details

    • actorOf

      ActorRef actorOf(Props props)
      Creates a new local actor.
      Parameters:
      props - the Props used to create the actor.
      Returns:
      a reference to the newly created actor.
    • actorSelection

      ActorSelection actorSelection(String path)
      Creates an actor selection.
      Parameters:
      path - the path.
      Returns:
      an actor selection for the given actor path.
    • getId

      String getId()
      Returns the identifier for the RaftActor. This identifier represents the name of the actor whose common state is being shared.
      Returns:
      the identifier
    • getActor

      ActorRef getActor()
      Returns the reference to the RaftActor.
      Returns:
      the reference to the RaftActor itself. This can be used to send messages to the RaftActor
    • getExecutor

      @NonNull Executor getExecutor()
      Return an Executor which is guaranteed to run tasks in the context of getActor().
      Returns:
      An executor.
    • getCluster

      Optional<Cluster> getCluster()
      The akka Cluster singleton for the actor system if one is configured.
      Returns:
      an Optional containing the Cluster instance is present.
    • getTermInformation

      @NonNull ElectionTerm getTermInformation()
      Returns the current ElectionTerm information.
      Returns:
      the ElectionTerm.
    • getCommitIndex

      long getCommitIndex()
      Returns the index of highest log entry known to be committed.
      Returns:
      index of highest log entry known to be committed.
    • setCommitIndex

      void setCommitIndex(long commitIndex)
      Sets the index of highest log entry known to be committed.
      Parameters:
      commitIndex - new commit index
    • getLastApplied

      long getLastApplied()
      Returns index of highest log entry applied to state machine.
      Returns:
      index of highest log entry applied to state machine.
    • setLastApplied

      void setLastApplied(long lastApplied)
      Sets index of highest log entry applied to state machine.
      Parameters:
      lastApplied - the new applied index.
    • setReplicatedLog

      void setReplicatedLog(@NonNull ReplicatedLog replicatedLog)
      Sets the ReplicatedLog instance.
      Parameters:
      replicatedLog - the ReplicatedLog instance.
    • getReplicatedLog

      @NonNull ReplicatedLog getReplicatedLog()
      Returns the ReplicatedLog instance.
      Returns:
      the ReplicatedLog instance.
    • getActorSystem

      @NonNull ActorSystem getActorSystem()
      Returns the The ActorSystem associated with this context.
      Returns:
      the ActorSystem.
    • getLogger

      @NonNull Logger getLogger()
      Returns the logger to be used for logging messages.
      Returns:
      the logger.
    • getPeerAddress

      @Nullable String getPeerAddress(String peerId)
      Gets the address of a peer as a String. This is the same format in which a consumer would provide the address.
      Parameters:
      peerId - the id of the peer.
      Returns:
      the address of the peer or null if the address has not yet been resolved.
    • updatePeerIds

      void updatePeerIds(ServerConfigurationPayload serverCfgPayload)
      Updates the peers and information to match the given ServerConfigurationPayload.
      Parameters:
      serverCfgPayload - the ServerConfigurationPayload.
    • getPeers

      @NonNull Collection<PeerInfo> getPeers()
      Returns the PeerInfo instances for each peer.
      Returns:
      list of PeerInfo
    • getPeerIds

      @NonNull Collection<String> getPeerIds()
      Returns the id's for each peer.
      Returns:
      the list of peer id's.
    • getPeerInfo

      @Nullable PeerInfo getPeerInfo(String peerId)
      Returns the PeerInfo for the given peer.
      Parameters:
      peerId - the id of the peer
      Returns:
      the PeerInfo or null if not found
    • addToPeers

      void addToPeers(String id, String address, VotingState votingState)
      Adds a new peer.
      Parameters:
      id - the id of the new peer.
      address - the address of the new peer.
      votingState - the VotingState of the new peer.
    • removePeer

      void removePeer(String id)
      Removes a peer.
      Parameters:
      id - the id of the peer to remove.
    • getPeerActorSelection

      @Nullable ActorSelection getPeerActorSelection(String peerId)
      Returns an ActorSelection for a peer.
      Parameters:
      peerId - the id of the peer.
      Returns:
      the actorSelection corresponding to the peer or null if the address has not yet been resolved.
    • setPeerAddress

      void setPeerAddress(String peerId, String peerAddress)
      Sets the address of a peer.
      Parameters:
      peerId - the id of the peer.
      peerAddress - the address of the peer.
    • getConfigParams

      @NonNull ConfigParams getConfigParams()
      Returns the ConfigParams instance.
      Returns:
      the ConfigParams instance.
    • getSnapshotManager

      @NonNull SnapshotManager getSnapshotManager()
      Returns the SnapshotManager instance.
      Returns:
      the SnapshotManager instance.
    • getPersistenceProvider

      @NonNull DataPersistenceProvider getPersistenceProvider()
      Returns the DataPersistenceProvider instance.
      Returns:
      the DataPersistenceProvider instance.
    • hasFollowers

      boolean hasFollowers()
      Determines if there are any peer followers.
      Returns:
      true if there are followers otherwise false.
    • getTotalMemory

      long getTotalMemory()
      Returns the total available memory for use in calculations. Normally this returns JVM's max memory but can be overridden for unit tests.
      Returns:
      the total memory.
    • setTotalMemoryRetriever

      void setTotalMemoryRetriever(LongSupplier retriever)
      Sets the retriever of the total memory metric.
      Parameters:
      retriever - a supplier of the total memory metric.
    • getPayloadVersion

      short getPayloadVersion()
      Returns the payload version to be used when replicating data.
      Returns:
      the payload version.
    • getRaftPolicy

      @NonNull RaftPolicy getRaftPolicy()
      Returns the RaftPolicy used to determine certain Raft behaviors.
      Returns:
      the RaftPolicy instance.
    • isDynamicServerConfigurationInUse

      boolean isDynamicServerConfigurationInUse()
      Determines if there have been any dynamic server configuration changes applied.
      Returns:
      true if dynamic server configuration changes have been applied, false otherwise, meaning that static peer configuration is still in use.
    • setDynamicServerConfigurationInUse

      void setDynamicServerConfigurationInUse()
      Sets that dynamic server configuration changes have been applied.
    • getPeerServerInfo

      @Nullable ServerConfigurationPayload getPeerServerInfo(boolean includeSelf)
      Returns the peer information as a ServerConfigurationPayload if dynamic server configurations have been applied.
      Parameters:
      includeSelf - include this peer's info.
      Returns:
      the peer information as a ServerConfigurationPayload or null if no dynamic server configurations have been applied.
    • isVotingMember

      boolean isVotingMember()
      Determines if this peer is a voting member of the cluster.
      Returns:
      true if this peer is a voting member, false otherwise.
    • anyVotingPeers

      boolean anyVotingPeers()
      Determines if there are any voting peers.
      Returns:
      true if there are any voting peers, false otherwise.
    • getCurrentBehavior

      RaftActorBehavior getCurrentBehavior()
      Returns the current behavior attached to the RaftActor.
      Returns:
      current behavior.
    • getApplyStateConsumer

      Consumer<ApplyState> getApplyStateConsumer()
      Returns the consumer of ApplyState operations. This is invoked by a behavior when a log entry needs to be applied to the state.
      Returns:
      the Consumer
    • getFileBackedOutputStreamFactory

      @NonNull FileBackedOutputStreamFactory getFileBackedOutputStreamFactory()
      Returns the FileBackedOutputStreamFactory instance with a common configuration.
      Returns:
      the FileBackedOutputStreamFactory;
    • getRaftActorLeadershipTransferCohort

      @Nullable RaftActorLeadershipTransferCohort getRaftActorLeadershipTransferCohort()
      Returns the RaftActorLeadershipTransferCohort if leadership transfer is in progress.
      Returns:
      the RaftActorLeadershipTransferCohort if leadership transfer is in progress, null otherwise
    • setRaftActorLeadershipTransferCohort

      void setRaftActorLeadershipTransferCohort(@Nullable RaftActorLeadershipTransferCohort leadershipTransferCohort)
      Sets the RaftActorLeadershipTransferCohort for transferring leadership.
      Parameters:
      leadershipTransferCohort - the RaftActorLeadershipTransferCohort or null to clear the existing one