-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Infima Shuffle Shard Loadbalancer #15375
Conversation
Hi @cgetzen, welcome and thank you for your contribution. We will try to review your Pull Request as quickly as possible. In the meantime, please take a look at the contribution guidelines if you have not done so already. |
CC @envoyproxy/api-shepherds: Your approval is needed for changes made to |
Signed-off-by: Charlie Getzen <[email protected]>
311958c
to
8c1bdfb
Compare
cc @wgallagher could you take a first pass? |
b822391
to
93f3a85
Compare
Signed-off-by: Charlie Getzen <[email protected]>
93f3a85
to
940bf0a
Compare
Signed-off-by: Charlie Getzen <[email protected]>
a8b7439
to
19a3400
Compare
Signed-off-by: Charlie Getzen <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a quick drive by until Bill gets a chance to take a look.
/wait
@@ -218,6 +219,16 @@ def _boringssl_fips(): | |||
patches = ["@envoy//bazel/external:boringssl_fips.patch"], | |||
) | |||
|
|||
def _com_github_cgetzen_cpp_infima(): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will this move to a public repo before commit?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is currently public here: https://github.com/cgetzen/cpp-infima
I'd like to see ownership transferred to github.com/envoyproxy, but there may be other options I haven't considered.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't reviewed the overall PR yet since it's still drafting, but just a heads up but we are unlikely to take a dependency on this external repo. I would just inline whatever code you actually need to make the PR function vs. using the library.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gotcha. This is a good opportunity for me to learn how licensing works.
Signed-off-by: Charlie Getzen <[email protected]>
Signed-off-by: Charlie Getzen <[email protected]>
|
Signed-off-by: Charlie Getzen <[email protected]>
Signed-off-by: Charlie Getzen <[email protected]>
Signed-off-by: Charlie Getzen <[email protected]>
Signed-off-by: Charlie Getzen <[email protected]>
Signed-off-by: Charlie Getzen <[email protected]>
Signed-off-by: Charlie Getzen <[email protected]>
# load balancers | ||
/*/extensions/load_balancers @snowp @mattklein123 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't reviewed the change, but if you did go ahead and make an LB extension point to fix that issue, please PR that first and we can review independently. Would be great to get that fixed! (This PR is too large as it is). Thanks!
/wait
Signed-off-by: Charlie Getzen <[email protected]>
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in 7 days if no further activity occurs. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
This pull request has been automatically closed because it has not had activity in the last 37 days. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
Commit Message: upstream: add shuffle-sharding load balancer
Additional Description:
Risk Level: Medium
Testing: TBD
Docs Changes: TBD
Release Notes: TBD
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
#14663
[Optional Deprecated:]
[Optional API Considerations:]
This implements what is closest to option 1 from the google doc referenced in the issue #14663.
If I get a tentative thumbs-up, I will begin working on:
Description
Please learn more about shuffle sharding from the linked issue.
Using a Lattice to shuffle shard, we can ensure that a request isn't isolated to a single fault-boundary.
use_zone_as_dimensions
: this allows one to use envoy's zone as a Lattice dimension.dimensions
: A list of strings that serve as Lattice dimensions. Similar to the SubsetLb, this pulls from ENVOY_LB metadata.endpoints_per_cell
: The amount of endpoints returned for a given cell. To calculate the number of endpoints available to a given unique request: endpoints_per_cell x cells. The number of cells is the multiplication of number of dimension values for each dimension (eg. "AZ" could have 3 values, "Region" could have 2 values = 6 cells)