Interface ShardCoordinator.ShardAllocationStrategy

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      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.
      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.
    • Method Detail

      • allocateShard

        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.

        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

        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.

        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