Skip to content

Commit a6847af

Browse files
Updates references
1 parent 43b016a commit a6847af

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

A100-client-side-weighted-round-robin-slow-start.md

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ A100: Client-side weighted round robin slow start configuration
1010

1111
This proposal introduces an enhancement to the existing client-side weighted_round_robin (WRR) load balancing policy in gRPC by incorporating a configurable `slow_start_config` mechanism. The intent of this feature is to gradually increase traffic to backend endpoints that are newly introduced or have recently rejoined the cluster, allowing them time to warm up and reach their optimal performance level before handling their full share of traffic. This change increases system stability and resilience in environments with dynamic scaling and volatile workloads.
1212

13-
The design borrows from production-ready practices in other load balancers such as Envoy, where gradual traffic ramp-up (slow start) is a well-established technique for avoiding performance degradation and request failures during backend startup or recovery. The slow start feature gradually increases the traffic sent to newly added endpoints during a warmup period, allowing them to warm up their caches and establish connections before receiving full traffic load.
13+
The design borrows from production-ready practices in other load balancers such as Envoy, where gradual traffic ramp-up (slow start) is a [well-established technique][Envoy Slow Start Documentation] for avoiding performance degradation and request failures during backend startup or recovery. The slow start feature gradually increases the traffic sent to newly added endpoints during a warmup period, allowing them to warm up their caches and establish connections before receiving full traffic load.
1414

1515
## Background
1616

@@ -23,9 +23,7 @@ In contrast, many modern systems adopt slow start strategies in load balancing t
2323
Introducing a `slow_start_config` configuration in gRPC WRR will offer these benefits within the native client policy, reducing reliance on external traffic-shaping mechanisms or manual intervention.
2424

2525
### Related Proposals:
26-
* [gRFC A58][A58] - Client-side weighted round robin LB policy
27-
28-
[A58]: A58-client-side-weighted-round-robin-lb-policy.md
26+
* [gRFC A58: weighted_round_robin LB policy][A58]
2927

3028
## Proposal
3129

@@ -59,7 +57,7 @@ message SlowStartConfig {
5957
// so that endpoint would get linearly increasing amount of traffic.
6058
// When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
6159
// The value of aggression parameter should be greater than 0.0.
62-
// By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
60+
// By tuning the parameter, it is possible to achieve polynomial or exponential shape of ramp-up curve.
6361
//
6462
// During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
6563
// ``new_weight = weight * max(min_weight_percent, time_factor ^ (1 / aggression))``,
@@ -78,7 +76,7 @@ message SlowStartConfig {
7876

7977
### Weight Scaling During Warmup
8078

81-
When an endpoint is first added or becomes ready after being in a non-ready state, it enters the warmup period. During this period, its weight will be scaled by a factor that increases non-linearly from `min_weight_percent` to 100% over the duration of `slow_start_window`.
79+
When an endpoint is ready after being in a non-ready state, it enters the warmup period. During this period, its weight will be scaled by a factor that increases non-linearly from `min_weight_percent` to 100% over the duration of `slow_start_window`.
8280

8381
The scale factor is calculated as follows:
8482

@@ -242,7 +240,5 @@ This metric will help operators monitor the number of endpoints currently in slo
242240

243241
This will be implemented in all languages C++, Java, and Go.
244242

245-
## References
246-
247-
1. [Envoy Slow Start Documentation](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/slow_start)
248-
2. [gRFC A58][A58] - Client-side weighted round robin LB policy
243+
[Envoy Slow Start Documentation]: https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/slow_start
244+
[A58]: A58-client-side-weighted-round-robin-lb-policy.md

0 commit comments

Comments
 (0)