True Zero-Downtime HAProxy Reloads
engineeringblog.yelp.com
True Zero-Downtime HAProxy Reloads
1–10 of 54 posts
Re: True Zero-Downtime HAProxy Reloads
#2Re: True Zero-Downtime HAProxy Reloads
#3Why do you have to reload haproxy? When you update the configuration?
I reload nginx all the time (nginx -s reload) and I'm not sure if that is a true zero-downtime reload either.
Interesting hack nonetheless (stopping SYNs.)
Re: True Zero-Downtime HAProxy Reloads
#4I'm not familiar with HAProxy, but with other load balancers. I've been looking into it as a replacement for the hardware load balancers we use. Why do you have to reload haproxy? When you update the configuration? I reload nginx all the time (nginx -s reload) and I'm not sure if that is a true zero-downtime reload either. Interesting hack nonetheless (stopping SYNs.)
Re: True Zero-Downtime HAProxy Reloads
#5Does this issue exist in servers like Unicorn? A new instance forks from the old one, inheriting sockets, and starts handling requests. http://unicorn.bogomips.org/SIGNALS.html
One thing that makes doing this in haproxy difficult is that there is not really any shared state between the parent and child processes, so the child doesn't have a good way to know which file descriptor maps to which listening endpoint in the configuration, since the child pretty much throws its entire state away and reads the config file anew. It's not that there can't be any shared state, but that's not how it's been architected. Finding out the endpoint via something like getsockname(2) might be doable, but the mapping of listening endpoints to listen configuration blocks isn't one-to-one, so it's actually "safer" (from an amount of code standpoint) to use SO_REUSEPORT and let the OS handling the shared listening.
Re: True Zero-Downtime HAProxy Reloads
#6Re: True Zero-Downtime HAProxy Reloads
#7http://cbonte.github.io/haproxy-dconv/configuration-1.5.html...
Re: True Zero-Downtime HAProxy Reloads
#8I'm not familiar with HAProxy, but with other load balancers. I've been looking into it as a replacement for the hardware load balancers we use. Why do you have to reload haproxy? When you update the configuration? I reload nginx all the time (nginx -s reload) and I'm not sure if that is a true zero-downtime reload either. Interesting hack nonetheless (stopping SYNs.)
Re: True Zero-Downtime HAProxy Reloads
#9When you run `/etc/init.d/nginx reload` I was under this impression this is zero-downtime. Is that not true then?
Re: True Zero-Downtime HAProxy Reloads
#10I'm not familiar with HAProxy, but with other load balancers. I've been looking into it as a replacement for the hardware load balancers we use. Why do you have to reload haproxy? When you update the configuration? I reload nginx all the time (nginx -s reload) and I'm not sure if that is a true zero-downtime reload either. Interesting hack nonetheless (stopping SYNs.)
I believe it's API let's you enable/disable existing configured servers but not dynamically add or remove them.