abstract class AbstractShardAllocationStrategy extends ShardAllocationStrategy
Java API: Java implementations of custom shard allocation and rebalancing logic used by the ShardCoordinator should extend this abstract class and override allocateNewShard and rebalanceShard.
Earlier versions of this API had different extension points. Overriding those is still supported but they may be removed in a future release.
- Source
- ShardCoordinator.scala
- Alphabetic
- By Inheritance
- AbstractShardAllocationStrategy
- ShardAllocationStrategy
- NoSerializationVerificationNeeded
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new AbstractShardAllocationStrategy()
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from AbstractShardAllocationStrategy toany2stringadd[AbstractShardAllocationStrategy] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (AbstractShardAllocationStrategy, B)
- Implicit
- This member is added by an implicit conversion from AbstractShardAllocationStrategy toArrowAssoc[AbstractShardAllocationStrategy] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def allocateNewShard(requester: ActorRef, shardId: String, currentShardAllocations: Map[ActorRef, IndexedSeq[String]]): CompletionStage[ActorRef]
Invoked when the location of a new shard is to be decided.
Invoked when the location of a new shard is to be decided.
New implementations of this class should override this method instead of overriding allocateShard.
For compatibility with earlier versions of this API, this method's default implementation returns an immediately-failing java.util.concurrent.CompletionStage.
- 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
ShardRegionand their current allocated shards, in the order they were allocated- returns
a java.util.concurrent.CompletionStage of the actor ref of the ShardRegion that is to be responsible for the shard, must be one of the references included in the
currentShardAllocationsparameter
- Annotations
- @nowarn()
- final def allocateShard(requester: ActorRef, shardId: ShardId, currentShardAllocations: Map[ActorRef, IndexedSeq[ShardId]]): Future[ActorRef]
Invoked when the location of a new shard is to be decided.
Invoked when the location of a new shard is to be decided.
- 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
ShardRegionand their current allocated shards, in the order they were allocated- returns
a
Futureof the actor ref of the ShardRegion that is to be responsible for the shard, must be one of the references included in thecurrentShardAllocationsparameter
- Definition Classes
- AbstractShardAllocationStrategy → ShardAllocationStrategy
- Annotations
- @nowarn()
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
- def ensuring(cond: (AbstractShardAllocationStrategy) => Boolean, msg: => Any): AbstractShardAllocationStrategy
- Implicit
- This member is added by an implicit conversion from AbstractShardAllocationStrategy toEnsuring[AbstractShardAllocationStrategy] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (AbstractShardAllocationStrategy) => Boolean): AbstractShardAllocationStrategy
- Implicit
- This member is added by an implicit conversion from AbstractShardAllocationStrategy toEnsuring[AbstractShardAllocationStrategy] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): AbstractShardAllocationStrategy
- Implicit
- This member is added by an implicit conversion from AbstractShardAllocationStrategy toEnsuring[AbstractShardAllocationStrategy] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): AbstractShardAllocationStrategy
- Implicit
- This member is added by an implicit conversion from AbstractShardAllocationStrategy toEnsuring[AbstractShardAllocationStrategy] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def rebalance(currentShardAllocations: Map[ActorRef, IndexedSeq[ShardId]], rebalanceInProgress: Set[ShardId]): Future[Set[ShardId]]
Invoked periodically to decide which shards to rebalance to another location.
Invoked periodically to decide which shards to rebalance to another location.
- currentShardAllocations
all actor refs to
ShardRegionand 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
Futureof the shards to be migrated, may be empty to skip rebalance in this round
- Definition Classes
- AbstractShardAllocationStrategy → ShardAllocationStrategy
- Annotations
- @nowarn()
- def rebalanceShards(currentShardAllocations: Map[ActorRef, IndexedSeq[String]], rebalanceInProgress: Set[String]): CompletionStage[Set[String]]
Invoked periodically to decide which shards to rebalance to another location.
Invoked periodically to decide which shards to rebalance to another location.
New implementations of this class should override this method instead of overriding rebalance.
For compatibility with earlier versions of this API, this method's default implementation returns an immediately-failing java.util.concurrent.CompletionStage.
- currentShardAllocations
all actor refs to
ShardRegionand 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 java.util.concurrent.CompletionStage of the set of shards to be migrated, may be empty to skip rebalance in this round
- Annotations
- @nowarn()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def allocateShard(requester: ActorRef, shardId: String, currentShardAllocations: Map[ActorRef, IndexedSeq[String]]): Future[ActorRef]
Invoked when the location of a new shard is to be decided.
Invoked when the location of a new shard is to be decided.
The default implementation defers to allocateNewShard. In earlier versions of this API, this Scala Future-returning method was the extension point.
New implementations of this class should prefer to override allocateNewShard. This method may be removed in a future release.
- 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
ShardRegionand their current allocated shards, in the order they were allocated- returns
a
Futureof the actor ref of the ShardRegion that is to be responsible for the shard, must be one of the references included in thecurrentShardAllocationsparameter
- Annotations
- @deprecated
- Deprecated
(Since version 2.10.10) prefer allocateNewShard
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from AbstractShardAllocationStrategy toStringFormat[AbstractShardAllocationStrategy] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)instead ofvalue.formatted(formatString), or use thef""string interpolator. In Java 15 and later,formattedresolves to the new method in String which has reversed parameters.
- def rebalance(currentShardAllocations: Map[ActorRef, IndexedSeq[String]], rebalanceInProgress: Set[String]): Future[Set[String]]
Invoked periodically to decide which shards to rebalance to another location.
Invoked periodically to decide which shards to rebalance to another location.
The default implementation defers to rebalanceShards. In earlier versions of this API, this Scala Future-returning method was the extension point.
New implementations of this class should prefer to override rebalanceShards. This method may be removed in a future release
- currentShardAllocations
all actor refs to
ShardRegionand 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
Futureof the shards to be migrated, may be empty to skip rebalance in this round
- Annotations
- @deprecated
- Deprecated
(Since version 2.10.10) prefer rebalanceShards
- def →[B](y: B): (AbstractShardAllocationStrategy, B)
- Implicit
- This member is added by an implicit conversion from AbstractShardAllocationStrategy toArrowAssoc[AbstractShardAllocationStrategy] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.