Skip to content
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

Calls issued from clients to StatelessWorker grains should be spread across silos #9153

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

ReubenBond
Copy link
Member

@ReubenBond ReubenBond commented Sep 26, 2024

Fixes #9149

Microsoft Reviewers: Open in CodeFlow

…across silos

(cherry picked from commit 81944a4933e05609f4c2b200343805d87b7f1f4f)
@JorgeCandeias
Copy link
Contributor

Will this apply to calls from clients to silos or also from within a silo?
Meaning, will a call originating from within silo to a stateless worker pool continue to hit the local pool, or can it get sent to a pool in some other silo?

@ReubenBond
Copy link
Member Author

This PR only affects external clients. Within a silo the calls will still be sent to the local silo if compatible. Otherwise, they will be sent to a random compatible silo. In the latter case, the random compatible silo is cached as the location for the worker so it will not spread load since it treats it as a normal grain.

We could additionally avoid caching placement for stateless workers but I'm not sure we should. The distinction between external & internal does raise doubt over whether it's good to have this functionality at all. I welcome your thoughts. Also, @benjaminpetit, wdyt?

@JorgeCandeias
Copy link
Contributor

Changing that behaviour for internal silo calls would be a severe breaking change for us. We rely on the current routing behaviour to avoid serialization/hops of too-expensive-to-serialize models that still require stateful fan-out processing, even if locally.

I'm not against changing this, as the alternative can have other benefits wrt scale-out scenarios. However if you decide to, pretty please do mention that in the release notes in big red caps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants