Class RaftActorContextImpl
java.lang.Object
org.opendaylight.controller.cluster.raft.RaftActorContextImpl
- All Implemented Interfaces:
RaftActorContext
Implementation of the RaftActorContext interface.
- Author:
- Moiz Raja, Thomas Pantelis
-
Constructor Summary
ConstructorsConstructorDescriptionRaftActorContextImpl(ActorRef actor, ActorContext context, @NonNull LocalAccess localStore, @NonNull Map<String, String> peerAddresses, @NonNull ConfigParams configParams, short payloadVersion, @NonNull RestrictedObjectStreams objectStreams, @NonNull PersistenceProvider persistenceProvider, @NonNull ApplyEntryMethod applyEntryMethod) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddToPeers(String peerId, String address, VotingState votingState) Adds a new peer.booleanDetermines if there are any voting peers.Returns the consumer of ApplyState operations.final Clustercluster()The PekkoClustersingleton for the actor system if one is configured.Returns theEntryStore.getActor()Returns the reference to the RaftActor.Returns the The ActorSystem associated with this context.Returns the ConfigParams instance.Returns the current behavior attached to the RaftActor.Returns theFileBackedOutputStreamFactoryinstance with a common configuration.getId()Returns the identifier for the RaftActor.shortReturns the payload version to be used when replicating data.final ActorSelectiongetPeerActorSelection(String peerId) Returns an ActorSelection for a peer.getPeerAddress(String peerId) Gets the address of a peer as a String.Returns the id's for each peer.getPeerInfo(String peerId) Returns the PeerInfo for the given peer.getPeers()Returns the PeerInfo instances for each peer.getPeerServerInfo(boolean includeSelf) Returns the peer information as a ClusterConfig if dynamic server configurations have been applied.Deprecated, for removal: This API element is subject to removal in a future version.Returns the RaftActorLeadershipTransferCohort if leadership transfer is in progress.Returns the RaftPolicy used to determine certain Raft behaviors.Returns the ReplicatedLog instance.Returns the SnapshotManager instance.longReturns the total available memory for use in calculations.booleanDetermines if there are any peer followers.booleanDetermines if there have been any dynamic server configuration changes applied.booleanDetermines if this peer is a voting member of the cluster.Returns theRestrictedObjectStreams.voidpersistTermInfo(TermInfo newElectionInfo) Sets and persists aTermInfo, so thatRaftActorContext.termInfo()returns it, even if we undergo recovery.voidremovePeer(String name) Removes a peer.final voidresetReplicatedLog(@NonNull ReplicatedLog newState) Deprecated, for removal: This API element is subject to removal in a future version.voidsetConfigParams(ConfigParams configParams) voidSets that dynamic server configuration changes have been applied.voidsetPeerAddress(String peerId, String peerAddress) Sets the address of a peer.voidsetRaftActorLeadershipTransferCohort(RaftActorLeadershipTransferCohort leadershipTransferCohort) Sets the RaftActorLeadershipTransferCohort for transferring leadership.voidsetTermInfo(TermInfo newElectionInfo) Sets, but does not persist, aTermInfo, so thatRaftActorContext.termInfo()returns it, unless we undergo recovery, in which case a priorTermInfomay be returned.voidsetTotalMemoryRetriever(LongSupplier retriever) Sets the retriever of the total memory metric.Returns theSnapshotStore.termInfo()Returns the current termTermInfo.voidupdateVotingConfig(VotingConfig votingConfig) Updates the peers and information to match the givenVotingConfig.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.opendaylight.controller.cluster.raft.RaftActorContext
currentTerm
-
Constructor Details
-
RaftActorContextImpl
public RaftActorContextImpl(ActorRef actor, ActorContext context, @NonNull LocalAccess localStore, @NonNull Map<String, String> peerAddresses, @NonNull ConfigParams configParams, short payloadVersion, @NonNull RestrictedObjectStreams objectStreams, @NonNull PersistenceProvider persistenceProvider, @NonNull ApplyEntryMethod applyEntryMethod)
-
-
Method Details
-
getPayloadVersion
public short getPayloadVersion()Description copied from interface:RaftActorContextReturns the payload version to be used when replicating data.- Specified by:
getPayloadVersionin interfaceRaftActorContext- Returns:
- the payload version.
-
setConfigParams
-
getId
Description copied from interface:RaftActorContextReturns the identifier for the RaftActor. This identifier represents the name of the actor whose common state is being shared.- Specified by:
getIdin interfaceRaftActorContext- Returns:
- the identifier
-
getActor
Description copied from interface:RaftActorContextReturns the reference to the RaftActor.- Specified by:
getActorin interfaceRaftActorContext- Returns:
- the reference to the RaftActor itself. This can be used to send messages to the RaftActor
-
cluster
Description copied from interface:RaftActorContextThe PekkoClustersingleton for the actor system if one is configured.- Specified by:
clusterin interfaceRaftActorContext- Returns:
- the Cluster instance, or
null
-
termInfo
Description copied from interface:RaftActorContextReturns the current termTermInfo.- Specified by:
termInfoin interfaceRaftActorContext- Returns:
- the
TermInfo
-
setTermInfo
Description copied from interface:RaftActorContextSets, but does not persist, aTermInfo, so thatRaftActorContext.termInfo()returns it, unless we undergo recovery, in which case a priorTermInfomay be returned.- Specified by:
setTermInfoin interfaceRaftActorContext- Parameters:
newElectionInfo-TermInfoto set
-
persistTermInfo
Description copied from interface:RaftActorContextSets and persists aTermInfo, so thatRaftActorContext.termInfo()returns it, even if we undergo recovery.- Specified by:
persistTermInfoin interfaceRaftActorContext- Parameters:
newElectionInfo-TermInfoto persist- Throws:
IOException- when an I/O error occurs
-
resetReplicatedLog
Deprecated, for removal: This API element is subject to removal in a future version. -
getReplicatedLog
Description copied from interface:RaftActorContextReturns the ReplicatedLog instance.- Specified by:
getReplicatedLogin interfaceRaftActorContext- Returns:
- the ReplicatedLog instance.
-
getActorSystem
Description copied from interface:RaftActorContextReturns the The ActorSystem associated with this context.- Specified by:
getActorSystemin interfaceRaftActorContext- Returns:
- the ActorSystem.
-
getPeerIds
Description copied from interface:RaftActorContextReturns the id's for each peer.- Specified by:
getPeerIdsin interfaceRaftActorContext- Returns:
- the list of peer id's.
-
getPeers
Description copied from interface:RaftActorContextReturns the PeerInfo instances for each peer.- Specified by:
getPeersin interfaceRaftActorContext- Returns:
- list of PeerInfo
-
getPeerInfo
Description copied from interface:RaftActorContextReturns the PeerInfo for the given peer.- Specified by:
getPeerInfoin interfaceRaftActorContext- Parameters:
peerId- the id of the peer- Returns:
- the PeerInfo or null if not found
-
getPeerAddress
Description copied from interface:RaftActorContextGets the address of a peer as a String. This is the same format in which a consumer would provide the address.- Specified by:
getPeerAddressin interfaceRaftActorContext- Parameters:
peerId- the id of the peer.- Returns:
- the address of the peer or null if the address has not yet been resolved.
-
updateVotingConfig
Description copied from interface:RaftActorContextUpdates the peers and information to match the givenVotingConfig.- Specified by:
updateVotingConfigin interfaceRaftActorContext- Parameters:
votingConfig- theVotingConfig
-
getConfigParams
Description copied from interface:RaftActorContextReturns the ConfigParams instance.- Specified by:
getConfigParamsin interfaceRaftActorContext- Returns:
- the ConfigParams instance.
-
addToPeers
Description copied from interface:RaftActorContextAdds a new peer.- Specified by:
addToPeersin interfaceRaftActorContext- Parameters:
peerId- the id of the new peer.address- the address of the new peer.votingState- the VotingState of the new peer.
-
removePeer
Description copied from interface:RaftActorContextRemoves a peer.- Specified by:
removePeerin interfaceRaftActorContext- Parameters:
name- the id of the peer to remove.
-
getPeerActorSelection
Description copied from interface:RaftActorContextReturns an ActorSelection for a peer.- Specified by:
getPeerActorSelectionin interfaceRaftActorContext- 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
Description copied from interface:RaftActorContextSets the address of a peer.- Specified by:
setPeerAddressin interfaceRaftActorContext- Parameters:
peerId- the id of the peer.peerAddress- the address of the peer.
-
getSnapshotManager
Description copied from interface:RaftActorContextReturns the SnapshotManager instance.- Specified by:
getSnapshotManagerin interfaceRaftActorContext- Returns:
- the SnapshotManager instance.
-
getTotalMemory
public long getTotalMemory()Description copied from interface:RaftActorContextReturns the total available memory for use in calculations. Normally this returns JVM's max memory but can be overridden for unit tests.- Specified by:
getTotalMemoryin interfaceRaftActorContext- Returns:
- the total memory.
-
setTotalMemoryRetriever
Description copied from interface:RaftActorContextSets the retriever of the total memory metric.- Specified by:
setTotalMemoryRetrieverin interfaceRaftActorContext- Parameters:
retriever- a supplier of the total memory metric.
-
hasFollowers
public boolean hasFollowers()Description copied from interface:RaftActorContextDetermines if there are any peer followers.- Specified by:
hasFollowersin interfaceRaftActorContext- Returns:
- true if there are followers otherwise false.
-
getPersistenceProvider
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:RaftActorContextReturns the DataPersistenceProvider instance.- Specified by:
getPersistenceProviderin interfaceRaftActorContext- Returns:
- the DataPersistenceProvider instance.
-
entryStore
Description copied from interface:RaftActorContextReturns theEntryStore.- Specified by:
entryStorein interfaceRaftActorContext- Returns:
- the
EntryStore
-
snapshotStore
Description copied from interface:RaftActorContextReturns theSnapshotStore.- Specified by:
snapshotStorein interfaceRaftActorContext- Returns:
- the
SnapshotStore
-
objectStreams
Description copied from interface:RaftActorContextReturns theRestrictedObjectStreams.- Specified by:
objectStreamsin interfaceRaftActorContext- Returns:
- the
RestrictedObjectStreams
-
getRaftPolicy
Description copied from interface:RaftActorContextReturns the RaftPolicy used to determine certain Raft behaviors.- Specified by:
getRaftPolicyin interfaceRaftActorContext- Returns:
- the RaftPolicy instance.
-
isDynamicServerConfigurationInUse
public boolean isDynamicServerConfigurationInUse()Description copied from interface:RaftActorContextDetermines if there have been any dynamic server configuration changes applied.- Specified by:
isDynamicServerConfigurationInUsein interfaceRaftActorContext- Returns:
- true if dynamic server configuration changes have been applied, false otherwise, meaning that static peer configuration is still in use.
-
setDynamicServerConfigurationInUse
public void setDynamicServerConfigurationInUse()Description copied from interface:RaftActorContextSets that dynamic server configuration changes have been applied.- Specified by:
setDynamicServerConfigurationInUsein interfaceRaftActorContext
-
getPeerServerInfo
Description copied from interface:RaftActorContextReturns the peer information as a ClusterConfig if dynamic server configurations have been applied.- Specified by:
getPeerServerInfoin interfaceRaftActorContext- Parameters:
includeSelf- include this peer's info.- Returns:
- the peer information as a ClusterConfig or null if no dynamic server configurations have been applied.
-
isVotingMember
public boolean isVotingMember()Description copied from interface:RaftActorContextDetermines if this peer is a voting member of the cluster.- Specified by:
isVotingMemberin interfaceRaftActorContext- Returns:
- true if this peer is a voting member, false otherwise.
-
anyVotingPeers
public boolean anyVotingPeers()Description copied from interface:RaftActorContextDetermines if there are any voting peers.- Specified by:
anyVotingPeersin interfaceRaftActorContext- Returns:
- true if there are any voting peers, false otherwise.
-
getCurrentBehavior
Description copied from interface:RaftActorContextReturns the current behavior attached to the RaftActor.- Specified by:
getCurrentBehaviorin interfaceRaftActorContext- Returns:
- current behavior.
-
applyEntryMethod
Description copied from interface:RaftActorContextReturns the consumer of ApplyState operations. This is invoked by a behavior when a log entry needs to be applied to the state.- Specified by:
applyEntryMethodin interfaceRaftActorContext- Returns:
- the
ApplyEntryMethod
-
getFileBackedOutputStreamFactory
Description copied from interface:RaftActorContextReturns theFileBackedOutputStreamFactoryinstance with a common configuration.- Specified by:
getFileBackedOutputStreamFactoryin interfaceRaftActorContext- Returns:
- the
FileBackedOutputStreamFactory
-
getRaftActorLeadershipTransferCohort
Description copied from interface:RaftActorContextReturns the RaftActorLeadershipTransferCohort if leadership transfer is in progress.- Specified by:
getRaftActorLeadershipTransferCohortin interfaceRaftActorContext- Returns:
- the RaftActorLeadershipTransferCohort if leadership transfer is in progress, null otherwise
-
setRaftActorLeadershipTransferCohort
public void setRaftActorLeadershipTransferCohort(RaftActorLeadershipTransferCohort leadershipTransferCohort) Description copied from interface:RaftActorContextSets the RaftActorLeadershipTransferCohort for transferring leadership.- Specified by:
setRaftActorLeadershipTransferCohortin interfaceRaftActorContext- Parameters:
leadershipTransferCohort- the RaftActorLeadershipTransferCohort or null to clear the existing one
-