-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Silo Metadata and Placement Filtering #9271
base: main
Are you sure you want to change the base?
Silo Metadata and Placement Filtering #9271
Conversation
Still requires tests
Question: Why is metadata handled separate from the existing membership table as suggested in #8189? |
Question: Why is this implemented in core instead of as a separate package? |
@rkargMsft this is something I really need. When can we expect this PR to move from draft? Thanks so much. |
When I’m back next week I’ll be working on the documentation to get this out of draft. I expect that others will be more available for feedback on the PR in the new year, too. |
Ordering of filters (through a parameter on the attribute) came up as being necessary as the documentation was being written. The order the attributes are applied in source is not necessarily the same order that they show up when querying metadata so explicit ordering is necessary. Getting the ordering support implemented atm. |
@rkargMsft I would suggest moving the following into assembly Orleans.Core.Abstractions:
And eventually move specific implementations for PreferredMatchSiloMetadataPlacementFilter and RequiredMatchSiloMetadataPlacementFilter into a separate assembly (eg: Orleans.Placement.Filtering). |
I agree with this comment
We can consider this, but I'm not in favor of fine-grained assembly/package model since it tends to degrade the user experience |
e1ea897
to
4fae612
Compare
Orleans.Core.Abstractions: - PlacementFilterAttribute - PlacementFilterStrategy Orelans.Core: - IPlacementFilterDirector - PlacementFilterExtensions
Documentation PR up. Ready for review. |
This PR has two main features:
Additionally, there are specific implementations of Placement Filtering using the Silo Metadata to specify either required keys that must match, or an ordered set of preferred keys to use for filtering down placement candidates.
Microsoft Reviewers: Open in CodeFlow