Class Shard

  • All Implemented Interfaces:
    akka.actor.Actor, akka.actor.Stash, akka.actor.StashFactory, akka.actor.StashSupport, akka.actor.UnrestrictedStash, akka.dispatch.RequiresMessageQueue<akka.dispatch.DequeBasedMessageQueueSemantics>, akka.persistence.AbstractPersistentActorLike, akka.persistence.Eventsourced, akka.persistence.PersistenceIdentity, akka.persistence.PersistenceRecovery, akka.persistence.PersistenceStash, akka.persistence.Snapshotter, org.opendaylight.controller.cluster.common.actor.ExecuteInSelfActor

    public class Shard
    extends org.opendaylight.controller.cluster.raft.RaftActor
    A Shard represents a portion of the logical data tree.

    Our Shard uses InMemoryDataTree as it's internal representation and delegates all requests it

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Shard.AbstractBuilder<T extends Shard.AbstractBuilder<T,​S>,​S extends Shard>  
      static class  Shard.Builder  
      • Nested classes/interfaces inherited from class akka.actor.AbstractActor

        akka.actor.AbstractActor.ActorContext, akka.actor.AbstractActor.Receive
      • Nested classes/interfaces inherited from interface akka.actor.Actor

        akka.actor.Actor.emptyBehavior$, akka.actor.Actor.ignoringBehavior$
      • Nested classes/interfaces inherited from interface akka.persistence.Eventsourced

        akka.persistence.Eventsourced.AsyncHandlerInvocation, akka.persistence.Eventsourced.AsyncHandlerInvocation$, akka.persistence.Eventsourced.PendingHandlerInvocation, akka.persistence.Eventsourced.ProcessingState, akka.persistence.Eventsourced.RecoveryTick, akka.persistence.Eventsourced.RecoveryTick$, akka.persistence.Eventsourced.StashingHandlerInvocation, akka.persistence.Eventsourced.StashingHandlerInvocation$, akka.persistence.Eventsourced.State
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static String DEFAULT_NAME  
      • Fields inherited from class org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor

        LOG
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void applyState​(akka.actor.ActorRef clientActor, org.opendaylight.yangtools.concepts.Identifier identifier, Object data)  
      static Shard.Builder builder()  
      Collection<?> convertPendingTransactionsToMessages()
      Clears all pending transactions and converts them to messages to be forwarded to a new leader.
      int getCohortCacheSize()  
      ShardDataTree getDataStore()  
      DatastoreContext getDatastoreContext()  
      int getPendingTxCommitQueueSize()  
      protected org.opendaylight.controller.cluster.raft.RaftActorRecoveryCohort getRaftActorRecoveryCohort()  
      org.opendaylight.controller.cluster.raft.RaftActorSnapshotCohort getRaftActorSnapshotCohort()  
      protected Optional<akka.actor.ActorRef> getRoleChangeNotifier()  
      protected void handleBatchedModificationsLocal​(BatchedModifications batched, akka.actor.ActorRef sender)  
      protected void handleNonRaftCommand​(Object message)  
      protected void handleRecover​(Object message)  
      protected boolean isIsolatedLeader()  
      protected org.opendaylight.controller.cluster.notifications.LeaderStateChanged newLeaderStateChanged​(String memberId, String leaderId, short leaderPayloadVersion)  
      protected org.opendaylight.controller.cluster.raft.client.messages.OnDemandRaftState.AbstractBuilder<?,​?> newOnDemandRaftStateBuilder()  
      protected void onDatastoreContext​(DatastoreContext context)  
      protected void onLeaderChanged​(String oldLeader, String newLeader)  
      protected void onRecoveryComplete()  
      protected void onStateChanged()  
      protected void pauseLeader​(Runnable operation)  
      String persistenceId()  
      void postStop()  
      protected void unpauseLeader()  
      • Methods inherited from class org.opendaylight.controller.cluster.raft.RaftActor

        changeCurrentBehavior, getCurrentBehavior, getCurrentTerm, getId, getLeader, getLeaderId, getRaftActorContext, getRaftState, handleCommand, hasFollowers, isLeader, isLeaderActive, isLeadershipTransferInProgress, newRaftActorRecoverySupport, onVotingStateChangeComplete, persistData, persistence, preStart, setPeerAddress, setPersistence, setPersistence, snapshotSequenceNr, updateConfigParams
      • Methods inherited from class org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor

        createReceive, createReceiveRecover, executeInSelf, ignoreMessage, unknownMessage
      • Methods inherited from class akka.persistence.AbstractPersistentActor

        akka$actor$StashSupport$_setter_$akka$actor$StashSupport$$capacity_$eq, akka$actor$StashSupport$_setter_$mailbox_$eq, akka$actor$StashSupport$$capacity, akka$actor$StashSupport$$theStash, akka$actor$StashSupport$$theStash_$eq, akka$persistence$Eventsourced$_setter_$akka$persistence$Eventsourced$$extension_$eq, akka$persistence$Eventsourced$_setter_$akka$persistence$Eventsourced$$instanceId_$eq, akka$persistence$Eventsourced$_setter_$akka$persistence$Eventsourced$$internalStash_$eq, akka$persistence$Eventsourced$_setter_$akka$persistence$Eventsourced$$maxMessageBatchSize_$eq, akka$persistence$Eventsourced$_setter_$akka$persistence$Eventsourced$$pendingInvocations_$eq, akka$persistence$Eventsourced$_setter_$akka$persistence$Eventsourced$$persistingEvents_$eq, akka$persistence$Eventsourced$_setter_$akka$persistence$Eventsourced$$processingCommands_$eq, akka$persistence$Eventsourced$_setter_$akka$persistence$Eventsourced$$unstashFilterPredicate_$eq, akka$persistence$Eventsourced$_setter_$akka$persistence$Eventsourced$$writerUuid_$eq, akka$persistence$Eventsourced$$_lastSequenceNr, akka$persistence$Eventsourced$$_lastSequenceNr_$eq, akka$persistence$Eventsourced$$currentState, akka$persistence$Eventsourced$$currentState_$eq, akka$persistence$Eventsourced$$eventBatch, akka$persistence$Eventsourced$$eventBatch_$eq, akka$persistence$Eventsourced$$extension, akka$persistence$Eventsourced$$instanceId, akka$persistence$Eventsourced$$internalStash, akka$persistence$Eventsourced$$journalBatch, akka$persistence$Eventsourced$$journalBatch_$eq, akka$persistence$Eventsourced$$maxMessageBatchSize, akka$persistence$Eventsourced$$pendingInvocations, akka$persistence$Eventsourced$$pendingStashingPersistInvocations, akka$persistence$Eventsourced$$pendingStashingPersistInvocations_$eq, akka$persistence$Eventsourced$$persistingEvents, akka$persistence$Eventsourced$$processingCommands, akka$persistence$Eventsourced$$sequenceNr, akka$persistence$Eventsourced$$sequenceNr_$eq, akka$persistence$Eventsourced$$unstashFilterPredicate, akka$persistence$Eventsourced$$writeInProgress, akka$persistence$Eventsourced$$writeInProgress_$eq, akka$persistence$Eventsourced$$writerUuid, aroundPostRestart, aroundPostStop, aroundPreRestart, aroundPreStart, aroundReceive, clearStash, createStash, defer, deferAsync, deleteMessages, deleteSnapshot, deleteSnapshots, internalDefer, internalDeferAsync, internalDeleteMessagesBeforeSnapshot, internalPersist, internalPersistAll, internalPersistAllAsync, internalPersistAsync, internalStashOverflowStrategy, journal, journalPluginId, lastSequenceNr, loadSnapshot, mailbox, onPersistFailure, onPersistRejected, onRecoveryFailure, onReplaySuccess, persist, persistAll, persistAllAsync, persistAsync, prepend, preRestart, receiveCommand, receiveRecover, recovery, recoveryFinished, recoveryRunning, saveSnapshot, snapshotPluginId, snapshotStore, snapshotterId, stash, unhandled, unstash, unstashAll, unstashAll
      • Methods inherited from class akka.actor.AbstractActor

        akka$actor$Actor$_setter_$context_$eq, akka$actor$Actor$_setter_$self_$eq, context, emptyBehavior, getContext, getSelf, getSender, postRestart, preRestart, receive, receiveBuilder, self, sender, supervisorStrategy
      • Methods inherited from interface akka.actor.Actor

        akka$actor$Actor$_setter_$context_$eq, akka$actor$Actor$_setter_$self_$eq, context, postRestart, receive, self, sender, supervisorStrategy
      • Methods inherited from interface akka.persistence.Eventsourced

        akka$persistence$Eventsourced$$changeState, akka$persistence$Eventsourced$$flushBatch, akka$persistence$Eventsourced$$flushJournalBatch, akka$persistence$Eventsourced$$peekApplyHandler, akka$persistence$Eventsourced$$recovering, akka$persistence$Eventsourced$$setLastSequenceNr, akka$persistence$Eventsourced$$startRecovery, akka$persistence$Eventsourced$$stashInternally, akka$persistence$Eventsourced$$unstashInternally, akka$persistence$Eventsourced$$updateLastSequenceNr, akka$persistence$Eventsourced$$writeEventFailed, akka$persistence$Eventsourced$$writeEventRejected, akka$persistence$Eventsourced$$writeEventSucceeded
      • Methods inherited from interface akka.actor.StashSupport

        context, self
    • Method Detail

      • postStop

        public void postStop()
                      throws Exception
        Specified by:
        postStop in interface akka.actor.Actor
        Specified by:
        postStop in interface akka.actor.UnrestrictedStash
        Overrides:
        postStop in class org.opendaylight.controller.cluster.raft.RaftActor
        Throws:
        Exception
      • handleRecover

        protected void handleRecover​(Object message)
        Overrides:
        handleRecover in class org.opendaylight.controller.cluster.raft.RaftActor
      • handleNonRaftCommand

        protected void handleNonRaftCommand​(Object message)
        Overrides:
        handleNonRaftCommand in class org.opendaylight.controller.cluster.raft.RaftActor
      • getPendingTxCommitQueueSize

        public int getPendingTxCommitQueueSize()
      • getCohortCacheSize

        public int getCohortCacheSize()
      • getRoleChangeNotifier

        protected Optional<akka.actor.ActorRef> getRoleChangeNotifier()
        Specified by:
        getRoleChangeNotifier in class org.opendaylight.controller.cluster.raft.RaftActor
      • newLeaderStateChanged

        protected org.opendaylight.controller.cluster.notifications.LeaderStateChanged newLeaderStateChanged​(String memberId,
                                                                                                             String leaderId,
                                                                                                             short leaderPayloadVersion)
        Overrides:
        newLeaderStateChanged in class org.opendaylight.controller.cluster.raft.RaftActor
      • onDatastoreContext

        protected void onDatastoreContext​(DatastoreContext context)
      • handleBatchedModificationsLocal

        protected void handleBatchedModificationsLocal​(BatchedModifications batched,
                                                       akka.actor.ActorRef sender)
      • isIsolatedLeader

        protected boolean isIsolatedLeader()
      • getRaftActorSnapshotCohort

        public org.opendaylight.controller.cluster.raft.RaftActorSnapshotCohort getRaftActorSnapshotCohort()
        Specified by:
        getRaftActorSnapshotCohort in class org.opendaylight.controller.cluster.raft.RaftActor
      • getRaftActorRecoveryCohort

        protected org.opendaylight.controller.cluster.raft.RaftActorRecoveryCohort getRaftActorRecoveryCohort()
        Specified by:
        getRaftActorRecoveryCohort in class org.opendaylight.controller.cluster.raft.RaftActor
      • onRecoveryComplete

        protected void onRecoveryComplete()
        Specified by:
        onRecoveryComplete in class org.opendaylight.controller.cluster.raft.RaftActor
      • applyState

        protected void applyState​(akka.actor.ActorRef clientActor,
                                  org.opendaylight.yangtools.concepts.Identifier identifier,
                                  Object data)
        Specified by:
        applyState in class org.opendaylight.controller.cluster.raft.RaftActor
      • onStateChanged

        protected void onStateChanged()
        Specified by:
        onStateChanged in class org.opendaylight.controller.cluster.raft.RaftActor
      • onLeaderChanged

        protected void onLeaderChanged​(String oldLeader,
                                       String newLeader)
        Overrides:
        onLeaderChanged in class org.opendaylight.controller.cluster.raft.RaftActor
      • convertPendingTransactionsToMessages

        public Collection<?> convertPendingTransactionsToMessages()
        Clears all pending transactions and converts them to messages to be forwarded to a new leader.
        Returns:
        the converted messages
      • pauseLeader

        protected void pauseLeader​(Runnable operation)
        Overrides:
        pauseLeader in class org.opendaylight.controller.cluster.raft.RaftActor
      • unpauseLeader

        protected void unpauseLeader()
        Overrides:
        unpauseLeader in class org.opendaylight.controller.cluster.raft.RaftActor
      • newOnDemandRaftStateBuilder

        protected org.opendaylight.controller.cluster.raft.client.messages.OnDemandRaftState.AbstractBuilder<?,​?> newOnDemandRaftStateBuilder()
        Overrides:
        newOnDemandRaftStateBuilder in class org.opendaylight.controller.cluster.raft.RaftActor
      • persistenceId

        public String persistenceId()