Skip to content
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

Re-Balancing Connections when using a hash-based load balancer #2819

Closed
asgoel opened this issue Mar 15, 2018 · 2 comments
Closed

Re-Balancing Connections when using a hash-based load balancer #2819

asgoel opened this issue Mar 15, 2018 · 2 comments
Labels
question Questions that are neither investigations, bugs, nor enhancements

Comments

@asgoel
Copy link

asgoel commented Mar 15, 2018

Been exploring the envoy docs a little bit and haven't seen anything on this topic so thought I would ask. If I have a load balancer set up that uses the ring-hash algorithm, how does re-balancing work, with regards to upstreams coming up or down?

Specifically, if I have upstream A and upstream B, with persistent connections (say, websockets) open to both, and A goes down, will all traffic be routed to B? What happens when A comes back up? Will the LB kill any connections that are open to B that are meant to go to A? Or will it keep those connections open and only new connections will go to A?

Basically, we want to guarantee that for a specific header value, all clients are always connected to the same upstream, regardless of what the upstream actually is.

@mattklein123 mattklein123 added the question Questions that are neither investigations, bugs, nor enhancements label Mar 15, 2018
@mattklein123
Copy link
Member

It's the former. No existing requests are effected during rehashing. For long lives request reams (websocket/gRPC) you have a split brain situation. It's possible we could kill all connections on rehash, but that would be a feature request and need a bunch of thinking.

@mattklein123
Copy link
Member

Closing as answered. Please feel free to open a feature request issue with more details on the requirements and use cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Questions that are neither investigations, bugs, nor enhancements
Projects
None yet
Development

No branches or pull requests

2 participants