Skip to content

Conversation

@frittentheke
Copy link
Contributor

What this PR does / why we need it:
This LB algorithm uses the peak exponentially-weighted moving average based on round-trip time (RTT) and outstanding requests to prefer targets resulting in low request latency and to respond to changes quickly. Peak EWMA is also well-suited for cross-data-center routing: it naturally prefers upstream hosts in the closest data center, but seamlessly fails over to other data centers during slowdowns (and fails back when performance recovers). In scenarios where all upstream hosts have similar request latency, Peak EWMA behaves equivalently to equal-weighted least request load balancing (using P2C selection).

Adding this contrib extension allows for evaluation of the potential for Istio service-meshes via EnvoyFilters.

Which issue this PR fixes

Special notes for your reviewer:
This is simply adding the great work of @rroblak to the Envoy build that is Istio-Proxy.
See his feature issue and PRs

or maybe https://linkerd.io/2016/03/16/beyond-round-robin-load-balancing-for-latency/ for some background on why this algo is a great addition.

There also other Issues/PRs for other proxies discussing or adding it:

HAProxy

NGINX

Linkerd

Alibaba Cloud

This LB algorithm uses the peak exponentially-weighted moving average based on
round-trip time (RTT) and outstanding requests to prefer targets resulting in
low request latency and to respond to changes quickly.
Peak EWMA is also well-suited for cross-data-center routing: it naturally prefers upstream
hosts in the closest data center, but seamlessly fails over to other data centers during
slowdowns (and fails back when performance recovers).
In scenarios where all upstream hosts have similar request latency, Peak EWMA behaves
equivalently to equal-weighted least request load balancing (using P2C selection).

Adding this contrib extension allows for evaluation of the potential for
Istio service-meshes via EnvoyFilters.
@frittentheke frittentheke requested a review from a team as a code owner November 18, 2025 17:46
@istio-testing istio-testing added size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. needs-ok-to-test labels Nov 18, 2025
@istio-testing
Copy link
Collaborator

Hi @frittentheke. Thanks for your PR.

I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-ok-to-test size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants