-
Notifications
You must be signed in to change notification settings - Fork 4.6k
weightedroundrobin: Implements Slow Start (gRFC A100) [WiP] #8689
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
base: master
Are you sure you want to change the base?
Conversation
Implements slow start functionality as described in [gRFC A100](grpc/proposal#498) I still need to do some work on tests and do an e2e experiment with xDS to ensure that things are working as expected, but the core implementation is in a state that can be reviewed. At this phase I'm mainly looking for feedback on the overall approach and design and in the test code because I am worried that I might be missing some test utility that would make testing with `time` easier. Pending Items before this is ready to be merged: - [ ] Add more unit tests for slow start config cases - [ ] Manually verify with an xDS experiment that slow start is working as expected Release Notes * weightedroundrobin: Implements slow start functionality as described in [gRFC A100](grpc/proposal#498) Signed-off-by: sotiris <[email protected]>
Signed-off-by: sotiris <[email protected]>
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #8689 +/- ##
==========================================
- Coverage 83.43% 83.32% -0.12%
==========================================
Files 415 416 +1
Lines 32195 32342 +147
==========================================
+ Hits 26863 26949 +86
- Misses 3980 4016 +36
- Partials 1352 1377 +25
🚀 New features to boost your workflow:
|
go.mod
Outdated
| github.com/envoyproxy/go-control-plane/envoy v1.35.0 | ||
| github.com/cncf/xds/go v0.0.0-20251014123835-2ee22ca58382 | ||
| github.com/envoyproxy/go-control-plane v0.13.4 | ||
| github.com/envoyproxy/go-control-plane/envoy v1.35.1-0.20251015221300-4138018a492b |
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.
imports a commit because the proto is not in a release yet, validate this is the correct version for all deps
Signed-off-by: sotiris <[email protected]>
Signed-off-by: sotiris <[email protected]>
Signed-off-by: sotiris <[email protected]>
|
Don't want to commit this code because it introduces a new dependencies but wanted to make sure the
(Note the flatline at start is due to |
Signed-off-by: sotiris <[email protected]>
Signed-off-by: sotiris <[email protected]>
Signed-off-by: sotiris <[email protected]>
Signed-off-by: sotiris <[email protected]>
| if slowStartConfigCfg := cswrrProto.GetSlowStartConfig(); slowStartConfigCfg != nil { | ||
| wrrLBCfg.SlowStartConfig = &weightedroundrobin.SlowStartConfig{ | ||
| SlowStartWindow: internalserviceconfig.Duration(slowStartConfigCfg.GetSlowStartWindow().AsDuration()), | ||
| // SlowStartConfig uses a runtime value in the proto definition so we need to get either the default value or the runtime value |
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.
Wanted to call some attention here since this is a bit of subtle point, where I made a decision but maybe its worth clarifying in the gRFC
Signed-off-by: sotiris <[email protected]>
Signed-off-by: sotiris <[email protected]>
| ew.stopORCAListener() | ||
| } | ||
| ew.mu.Lock() | ||
| ew.readySince = time.Time{} // Reset readySince when going non-READY. |
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.
The implementation should be adjusted based on the convo grpc/proposal#498 (comment)
|
Apologies for the delay in reviewing this PR. I'm starting on this today and hopefully will have comments soon. Thanks. |

Implements slow start functionality as described in gRFC A100
I still need to do some work on tests and do an e2e experiment with xDS to ensure that things are working as expected, but the core implementation is in a state that can be reviewed.
At this phase I'm mainly looking for feedback on the overall approach and design and in the test code because I am worried that I might be missing some test utility that would make testing with
timeeasier.Pending Items before this is ready to be merged:
RELEASE NOTES: