Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
4173b08
Support slow Start mode in Envoy
Sep 18, 2020
2f8dad0
Support slow Start mode in Envoy
Sep 18, 2020
627c910
Introduce creation_time field into host description
Sep 22, 2020
ed27cb7
Propagate timeSource to edf lb
Sep 30, 2020
80cd8eb
Fix weight adjustment formula
Oct 1, 2020
161cbaf
Draft: Track hosts in slow start mode in edf lb
Oct 1, 2020
d7f395c
Track hosts in slow start mode in edf lb
Oct 5, 2020
944607e
Merge remote-tracking branch 'origin/master'
Nov 27, 2020
f966f8b
switch to btree_set for tracking hosts in slow start
Dec 8, 2020
f61216c
Fix logical statement
Dec 8, 2020
6bfb2e0
Parametrize time bias
Dec 10, 2020
a02698d
Fix logger inheritance
Dec 14, 2020
23e517e
Add config validation for slow start in orig_dst_cluster lb
Dec 16, 2020
a4f697d
Merge remote-tracking branch 'origin/master'
Dec 16, 2020
d0f2cd2
Fix logic when tracking hosts in slow start
Jan 22, 2021
3ab3951
Adding tests
Feb 3, 2021
e5a8534
Add support for "first passing HC" slow start mode
Feb 9, 2021
e9e93ea
Fix comparator, add test for runtime updates
Feb 10, 2021
a365f6e
Merge remote-tracking branch 'origin/main'
Feb 15, 2021
2156dc3
Cleanup
Feb 15, 2021
fe0e551
Fix CI
Feb 16, 2021
38f792a
Fix CI
Feb 16, 2021
bbc3fda
Fix more CI
Feb 17, 2021
7d1cdb4
Some docs, some CI fixes...
Feb 17, 2021
18f0463
Fix clang
Feb 18, 2021
3cf6f9a
Update documentation
Feb 19, 2021
1510abb
Revert extra formatting
Feb 22, 2021
c038daf
Apply review comments
Mar 8, 2021
c4b8f8b
Apply review comments
Mar 8, 2021
bd87893
Fix format
Mar 8, 2021
0963656
Merge remote-tracking branch 'origin/main' into main
Mar 8, 2021
33737f8
Fix spelling in docs
Mar 10, 2021
0cbdbe7
Fix spelling
Mar 10, 2021
43b2f54
Fix build, apply rome view comments
Mar 15, 2021
4e8b9d7
Get rid of endpoint warming policy
Mar 29, 2021
78be70e
Remove unused import
Mar 29, 2021
dc1bb99
Fix tests, clarify docs
Mar 30, 2021
5d5d231
Clarify docs
Mar 30, 2021
fdbbd5f
remove extra space
Mar 30, 2021
b371ece
Apply review comment and fix build
Apr 7, 2021
1602a7b
Update formula, docs and clean up
Apr 16, 2021
bf32ee5
Update API+docs with new formula
Apr 27, 2021
9d96d4b
Merge remote-tracking branch 'origin/main'
Apr 28, 2021
f1670a9
Introduce aggression parameter
Apr 28, 2021
7a495e0
Fix docs format
Apr 29, 2021
941a43e
Fix math bug and add basic test
Apr 29, 2021
3467ca4
add more tests
Apr 29, 2021
bd467d6
Apply review comments, finish tests for RR
May 5, 2021
7d8022d
Slow start support in LR and initial test
May 6, 2021
49cd453
More tests for LR slow start
May 11, 2021
c6f2b86
Refactor duplicated code
May 17, 2021
514dabf
Update slow start example table
May 18, 2021
96d7b76
Bump memory limit per cluster
May 19, 2021
6a98431
Merge remote-tracking branch 'origin/main'
May 19, 2021
74557b9
Applied review comments
Aug 16, 2021
1a23da6
Merge remote-tracking branch 'origin/main' into HEAD
Aug 27, 2021
3e4f49a
Fix merge errors
Aug 27, 2021
4a2a508
Fix weird formatting
Aug 27, 2021
875c763
Fix proto and extra formatting
Aug 27, 2021
ccc9338
Move out slow start config from common lb config
Aug 27, 2021
19d288d
Apply more comments and fix some tests
Sep 3, 2021
2766a4f
fix doc and format
Sep 3, 2021
a2b1261
Fix mock default behaviour
Sep 6, 2021
5e18212
Update diagram with example
Sep 6, 2021
2e9d0ff
fix asan
Sep 8, 2021
2002d00
Bump memory limit
Sep 10, 2021
2128535
Apply review comment
Sep 10, 2021
224daa2
Fix graph and spelling in docs
Sep 10, 2021
b3c5c43
Merge remote-tracking branch 'origin/main' into HEAD
Sep 15, 2021
4d3efe7
apply review comments
Sep 15, 2021
3ed1ff4
Fix doc format
Sep 16, 2021
e4a3c84
Apply review comments
Sep 28, 2021
5c587e9
Merge branch 'main' into slow-start
Sep 28, 2021
7f4b258
fix format
Sep 28, 2021
9ed50d9
Fix merge error
Sep 30, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 37 additions & 1 deletion api/envoy/config/cluster/v3/cluster.proto
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ message ClusterCollection {
}

// Configuration for a single upstream cluster.
// [#next-free-field: 56]
// [#next-free-field: 57]
message Cluster {
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.Cluster";

Expand Down Expand Up @@ -345,6 +345,35 @@ message Cluster {
bool list_as_any = 7;
}

// Configuration for :ref:`slow start mode <arch_overview_load_balancing_slow_start>`.
message SlowStartConfig {
// Represents the size of slow start window.
// If set, the newly created host remains in slow start mode starting from its creation time
// for the duration of slow start window.
google.protobuf.Duration slow_start_window = 1;

// This parameter controls the speed of traffic increase over the slow start window. Defaults to 1.0,
// so that endpoint would get linearly increasing amount of traffic.
// When increasing the value for this parameter, the speed of traffic ramp-up increases non-linearly.
// The value of aggression parameter should be greater than 0.0.
// By tuning the parameter, is possible to achieve polynomial or exponential shape of ramp-up curve.
//
// During slow start window, effective weight of an endpoint would be scaled with time factor and aggression:
// `new_weight = weight * time_factor ^ (1 / aggression)`,
// where `time_factor=(time_since_start_seconds / slow_start_time_seconds)`.
//
// As time progresses, more and more traffic would be sent to endpoint, which is in slow start window.
// Once host exits slow start, time_factor and aggression no longer affect its weight.
core.v3.RuntimeDouble aggression = 2;
}

// Specific configuration for the RoundRobin load balancing policy.
message RoundRobinLbConfig {
// Configuration for slow start mode.
// If this configuration is not set, slow start will not be not enabled.
SlowStartConfig slow_start_config = 1;
}

// Specific configuration for the LeastRequest load balancing policy.
message LeastRequestLbConfig {
option (udpa.annotations.versioning).previous_message_type =
Expand Down Expand Up @@ -378,6 +407,10 @@ message Cluster {
// .. note::
// This setting only takes effect if all host weights are not equal.
core.v3.RuntimeDouble active_request_bias = 2;

// Configuration for slow start mode.
// If this configuration is not set, slow start will not be not enabled.
SlowStartConfig slow_start_config = 3;
}

// Specific configuration for the :ref:`RingHash<arch_overview_load_balancing_types_ring_hash>`
Expand Down Expand Up @@ -959,6 +992,9 @@ message Cluster {

// Optional configuration for the LeastRequest load balancing policy.
LeastRequestLbConfig least_request_lb_config = 37;

// Optional configuration for the RoundRobin load balancing policy.
RoundRobinLbConfig round_robin_lb_config = 56;
}

// Common configuration for all load balancer implementations.
Expand Down
Loading