Class ShardCoordinator.AbstractShardAllocationStrategy

    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract scala.concurrent.Future<ActorRef> allocateShard​(ActorRef requester, java.lang.String shardId, java.util.Map<ActorRef,​scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations)
      Invoked when the location of a new shard is to be decided.
      scala.concurrent.Future<ActorRef> allocateShard​(ActorRef requester, java.lang.String shardId, scala.collection.immutable.Map<ActorRef,​scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations)
      Invoked when the location of a new shard is to be decided.
      abstract scala.concurrent.Future<java.util.Set<java.lang.String>> rebalance​(java.util.Map<ActorRef,​scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations, java.util.Set<java.lang.String> rebalanceInProgress)
      Invoked periodically to decide which shards to rebalance to another location.
      scala.concurrent.Future<scala.collection.immutable.Set<java.lang.String>> rebalance​(scala.collection.immutable.Map<ActorRef,​scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations, scala.collection.immutable.Set<java.lang.String> rebalanceInProgress)
      Invoked periodically to decide which shards to rebalance to another location.
      • Methods inherited from class java.lang.Object

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

      • AbstractShardAllocationStrategy

        public AbstractShardAllocationStrategy()
    • Method Detail

      • allocateShard

        public final scala.concurrent.Future<ActorRef> allocateShard​(ActorRef requester,
                                                                     java.lang.String shardId,
                                                                     scala.collection.immutable.Map<ActorRef,​scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations)
        Description copied from interface: ShardCoordinator.ShardAllocationStrategy
        Invoked when the location of a new shard is to be decided.

        Specified by:
        allocateShard in interface ShardCoordinator.ShardAllocationStrategy
        Parameters:
        requester - actor reference to the ShardRegion that requested the location of the shard, can be returned if preference should be given to the node where the shard was first accessed
        shardId - the id of the shard to allocate
        currentShardAllocations - all actor refs to ShardRegion and their current allocated shards, in the order they were allocated
        Returns:
        a Future of the actor ref of the ShardRegion that is to be responsible for the shard, must be one of the references included in the currentShardAllocations parameter
      • allocateShard

        public abstract scala.concurrent.Future<ActorRef> allocateShard​(ActorRef requester,
                                                                        java.lang.String shardId,
                                                                        java.util.Map<ActorRef,​scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations)
        Invoked when the location of a new shard is to be decided.

        Parameters:
        requester - actor reference to the ShardRegion that requested the location of the shard, can be returned if preference should be given to the node where the shard was first accessed
        shardId - the id of the shard to allocate
        currentShardAllocations - all actor refs to ShardRegion and their current allocated shards, in the order they were allocated
        Returns:
        a Future of the actor ref of the ShardRegion that is to be responsible for the shard, must be one of the references included in the currentShardAllocations parameter
      • rebalance

        public final scala.concurrent.Future<scala.collection.immutable.Set<java.lang.String>> rebalance​(scala.collection.immutable.Map<ActorRef,​scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations,
                                                                                                         scala.collection.immutable.Set<java.lang.String> rebalanceInProgress)
        Description copied from interface: ShardCoordinator.ShardAllocationStrategy
        Invoked periodically to decide which shards to rebalance to another location.

        Specified by:
        rebalance in interface ShardCoordinator.ShardAllocationStrategy
        Parameters:
        currentShardAllocations - all actor refs to ShardRegion and their current allocated shards, in the order they were allocated
        rebalanceInProgress - set of shards that are currently being rebalanced, i.e. you should not include these in the returned set
        Returns:
        a Future of the shards to be migrated, may be empty to skip rebalance in this round
      • rebalance

        public abstract scala.concurrent.Future<java.util.Set<java.lang.String>> rebalance​(java.util.Map<ActorRef,​scala.collection.immutable.IndexedSeq<java.lang.String>> currentShardAllocations,
                                                                                           java.util.Set<java.lang.String> rebalanceInProgress)
        Invoked periodically to decide which shards to rebalance to another location.

        Parameters:
        currentShardAllocations - all actor refs to ShardRegion and their current allocated shards, in the order they were allocated
        rebalanceInProgress - set of shards that are currently being rebalanced, i.e. you should not include these in the returned set
        Returns:
        a Future of the shards to be migrated, may be empty to skip rebalance in this round