Skip to content

Commit fa0275e

Browse files
Update A66-deterministic-subsetting-lb-policy.md
Co-authored-by: Antoine Tollenaere <atollena@gmail.com>
1 parent a2456e5 commit fa0275e

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

A66-deterministic-subsetting-lb-policy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Add support for the `deterministic_subsetting` load balancing policy configured
1313

1414
## Background
1515

16-
Currently, gRPC is lacking a way to select a subset of backend endpoints and load-balance requests between them. Mostly people are using two extremes: `pick_first` and `round_robin`. With `pick_first`, the resulting load distribution on the backend servers ends up being very uneven, especially during server rollouts. With `round_robin`, gRPC generates a lot of unnecessary connections, which consume resources on both clients and servers. The proposed LB policy provides a middle ground between these two extremes.
16+
Currently, gRPC is lacking a way to select a subset of endpoints available from the resolver and load-balance requests between them. Out of the box, users have the choice between two extremes: `pick_first` which sends all requests to one random backend, and `round_robin` which sends requests to all available backends. `pick_first` has poor connection balancing when the number of client is not much higher than the number of servers because of the birthday paradox. The problem is exacerbated during rollouts because `pick_first` does not change endpoint on resolver updates if the current subchannel remains `READY`. `round_robin` results in every servers having as many connections open as there are clients, which is unnecessarily costly when there are many clients, and makes local decisions load balancing (such as outlier detection) less precise.
1717

1818
### Related Proposals:
1919

0 commit comments

Comments
 (0)