-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DData: Cannot create a shard proxy on a cluster node that is not in the same role as the proxied shard entity #3352
Comments
I found a quote from @Horusiath on #3277:
So the example I gave above is legit. I only managed to get DData running with a Proxy Shard when both nodes were in the same role (
The node with the real shard (not proxy) could not start the coordinator as it was not Oldest:
So I guess I will have to roll-back to Persistence once again as DData does not seem to work well Shard Proxies at the moment. |
I might be way off, but in Akka the replicator for a proxy is set to dead letters, it does not create a replicator for the proxy at all.... |
I tested a new version of the code locally (see PR) in the scenario described above and I no longer received those errors and the shard proxies were working correctly. |
Running Akka 1.3.5 inside a netcoreapp2.0 hosted on Service Fabric.
I have the following setup:
Backend service
Api service
Works fine with Persistance backing cluster sharding but if I switch to ddata I get the following error:
Seems like this line:
akka.net/src/contrib/cluster/Akka.DistributedData/Replicator.cs
Line 353 in c954b79
Setting the ddata cluster role has no effect as the replicator's role is set during the creation of the shard proxy based on the cluster setting here:
akka.net/src/contrib/cluster/Akka.Cluster.Sharding/ClusterShardingGuardian.cs
Line 262 in c954b79
So it seems that I would need to set the cluster role of the Api service to backend if I wanted to communicate with entities deployed to the backend nodes. But in doing so I would allow some entities to be deployed to the ApiService, would I not? Maybe not if I only start the proxy here and not the full shard, but still seems a bit odd to need to set the backend role on the API service. Is this really needed?
Thank you,
Ondrej.
The text was updated successfully, but these errors were encountered: