Class ExternalShardAllocationStrategy

    • Constructor Detail

      • ExternalShardAllocationStrategy

        public ExternalShardAllocationStrategy​(ClassicActorSystemProvider systemProvider,
                                               java.lang.String typeName,
                                               Timeout timeout)
    • Method Detail

      • ddataKey

        public static LWWMapKey<java.lang.String,​java.lang.String> ddataKey​(java.lang.String typeName)
      • timeout

        public Timeout timeout()
      • createShardStateActor

        public ActorRef createShardStateActor()
      • allocateShard

        public 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
      • rebalance

        public 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