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

proxy: smart (or maybe just configurable) routing #4378

Closed
davidquarles opened this issue Feb 2, 2016 · 4 comments
Closed

proxy: smart (or maybe just configurable) routing #4378

davidquarles opened this issue Feb 2, 2016 · 4 comments

Comments

@davidquarles
Copy link

@yichengq I just stumbled across this year-old exchange, which didn't seem to ever make it into a proper feature request.

My use case:

I currently have a three-node cluster with the active members split between 3 data centers. Because the proxy does a basic round-robin under the hood, our proxies are connecting across regions two-thirds of the time, and there is a very obvious performance hit when this happens:

app1 ~ # time curl --cacert $cacert --cert $cert --key $key https://$inter_region_tls_endpoint:4001/v2/keys/foo
{"action":"get","node":{"key":"/foo","value":"bar","modifiedIndex":28150814,"createdIndex":28150814}}

real    0m0.049s
user    0m0.019s
sys 0m0.000s
app2 ~ # time curl --cacert $cacert --cert $cert --key $key https://$cross_region_tls_endpoint:4001/v2/keys/foo
{"action":"get","node":{"key":"/foo","value":"bar","modifiedIndex":28150814,"createdIndex":28150814}}

real    0m0.247s
user    0m0.018s
sys 0m0.003s

Perhaps -- given some optional flag -- we can utilize an alternative "nearest" load-balancing algorithm? I'm imagining dynamic (sanely bounded) weights for each endpoint based on a moving average of response times but there may be other / better ways. Alternatively, I can hack something out with HAProxy. Thoughts?

@raoofm
Copy link
Contributor

raoofm commented Feb 2, 2016

+1

@gyuho gyuho added this to the v3.0.0-maybe milestone Feb 3, 2016
@xiang90 xiang90 modified the milestones: v3.1.0, v3.0.0-maybe May 10, 2016
@xiang90
Copy link
Contributor

xiang90 commented Jul 18, 2016

@heyitsanthony What do you think? shall we add hard priorities to endpoints?

@heyitsanthony
Copy link
Contributor

@xiang90 sure, this is probably something we should handle in the grpc balancer

@xiang90
Copy link
Contributor

xiang90 commented Jul 19, 2016

@xiang90 xiang90 modified the milestones: v3.2.0, v3.1.0 Aug 7, 2016
@heyitsanthony heyitsanthony self-assigned this May 5, 2017
heyitsanthony pushed a commit to heyitsanthony/etcd that referenced this issue May 5, 2017
Adds DNS SRV weighting and priorities to gateway.

Fixes etcd-io#4378
heyitsanthony pushed a commit to heyitsanthony/etcd that referenced this issue May 5, 2017
Adds DNS SRV weighting and priorities to gateway.

Fixes etcd-io#4378
heyitsanthony pushed a commit to heyitsanthony/etcd that referenced this issue May 5, 2017
Adds DNS SRV weighting and priorities to gateway.

Fixes etcd-io#4378
heyitsanthony pushed a commit to heyitsanthony/etcd that referenced this issue May 5, 2017
Adds DNS SRV weighting and priorities to gateway.

Fixes etcd-io#4378
heyitsanthony pushed a commit to heyitsanthony/etcd that referenced this issue May 8, 2017
Adds DNS SRV weighting and priorities to gateway.

Fixes etcd-io#4378
heyitsanthony pushed a commit to heyitsanthony/etcd that referenced this issue May 8, 2017
Adds DNS SRV weighting and priorities to gateway.

Partially addresses etcd-io#4378
yudai pushed a commit to yudai/etcd that referenced this issue Oct 5, 2017
Adds DNS SRV weighting and priorities to gateway.

Partially addresses etcd-io#4378
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

5 participants