- 
                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.40%   -0.04%     
==========================================
  Files         415      415              
  Lines       32195    32236      +41     
==========================================
+ Hits        26863    26886      +23     
- Misses       3980     3991      +11     
- Partials     1352     1359       +7     
 🚀 New features to boost your workflow:
  | 
    
| 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

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
Thank you for your PR. Please read and follow
https://github.com/grpc/grpc-go/blob/master/CONTRIBUTING.md, especially the
"Guidelines for Pull Requests" section, and then delete this text before
entering your PR description.