From 33fda3ae6f8ff9d27ccbc7b0003eafb8fd449dcb Mon Sep 17 00:00:00 2001 From: mgutmanis <16244986+mgutmanis@users.noreply.github.com> Date: Wed, 2 Sep 2020 17:49:36 +0300 Subject: [PATCH] Improve Shard#entityCreated API performance #29520 Expose size of reachable actor count --- .../src/main/scala/akka/cluster/sharding/Shard.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/akka-cluster-sharding/src/main/scala/akka/cluster/sharding/Shard.scala b/akka-cluster-sharding/src/main/scala/akka/cluster/sharding/Shard.scala index 2805517796..c9d8c9388b 100644 --- a/akka-cluster-sharding/src/main/scala/akka/cluster/sharding/Shard.scala +++ b/akka-cluster-sharding/src/main/scala/akka/cluster/sharding/Shard.scala @@ -358,6 +358,8 @@ private[akka] object Shard { // only called once during handoff def activeEntities(): Set[ActorRef] = byRef.keySet.asScala.toSet + def nrActiveEntities: Int = byRef.size + // only called for getting shard stats def activeEntityIds(): Set[EntityId] = byRef.values.asScala.toSet @@ -1059,7 +1061,7 @@ private[akka] class Shard( * of active entities. */ @InternalStableApi - def entityCreated(@unused id: EntityId): Int = entities.activeEntities().size + def entityCreated(@unused id: EntityId): Int = entities.nrActiveEntities // ===== buffering while busy saving a start or stop when remembering entities ===== def appendToMessageBuffer(id: EntityId, msg: Any, snd: ActorRef): Unit = {