From 75de45d9ef8f433a1860fe176e97416220dcc3cc Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Thu, 1 Aug 2019 15:19:45 +0200 Subject: [PATCH] Log changes to the ShardCoordinator ddata state (#27444) The number of shards is configurable, in the order of magnitude of the number of nodes in the cluster. Logging the ActorRef for each allocated shard is useful to see on which node the shard is allocated. --- .../main/scala/akka/cluster/sharding/ShardCoordinator.scala | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/akka-cluster-sharding/src/main/scala/akka/cluster/sharding/ShardCoordinator.scala b/akka-cluster-sharding/src/main/scala/akka/cluster/sharding/ShardCoordinator.scala index bc318aa08c..c3f71a6566 100644 --- a/akka-cluster-sharding/src/main/scala/akka/cluster/sharding/ShardCoordinator.scala +++ b/akka-cluster-sharding/src/main/scala/akka/cluster/sharding/ShardCoordinator.scala @@ -329,6 +329,8 @@ object ShardCoordinator { rememberEntities: Boolean = false) extends ClusterShardingSerializable { + override def toString = s"State($shards)" + def withRememberEntities(enabled: Boolean): State = { if (enabled) copy(rememberEntities = enabled) @@ -1049,6 +1051,7 @@ class DDataShardCoordinator( ({ case g @ GetSuccess(CoordinatorStateKey, _) => state = g.get(CoordinatorStateKey).value.withRememberEntities(settings.rememberEntities) + log.debug("Received initial coordinator state [{}]", state) val newRemainingKeys = remainingKeys - CoordinatorStateKey if (newRemainingKeys.isEmpty) becomeWaitingForStateInitialized() @@ -1178,6 +1181,7 @@ class DDataShardCoordinator( private def unbecomeAfterUpdate[E <: DomainEvent](evt: E, afterUpdateCallback: E => Unit): Unit = { context.unbecome() afterUpdateCallback(evt) + log.debug("New coordinator state after [{}]: [{}]", evt, state) unstashGetShardHomeRequests() unstashAll() } @@ -1236,6 +1240,7 @@ class DDataShardCoordinator( def sendCoordinatorStateUpdate(evt: DomainEvent) = { val s = state.updated(evt) + log.debug("Publishing new coordinator state [{}]", state) replicator ! Update(CoordinatorStateKey, LWWRegister(selfUniqueAddress, initEmptyState), writeMajority, Some(evt)) { reg => reg.withValueOf(s)