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
Feature Request: Graceful restart #1033
Comments
+1 , I'm no dev, so thanks @minichate ! |
For context: What we currently do is have a set of standby ProxySQL instances on different machines. Since our applications can gracefully restart, we reconfigure those apps to point at the standby ProxySQL instances and then restart them. Once there is no more traffic pointed at the local ProxySQL instances, we can stop, upgrade and restart them. Finally, once we've verified that the upgraded binaries are started, we do the reverse of the procedure above to shift traffic back at the local ProxySQL's. The problem is that this takes considerable time when you have dozens/hundreds of machines. Furthermore, it is tricky to automate using tools like Puppet/Ansible. Finally, it incurs the cost of an additional network hop, which affects performance of the applications. |
Somehow related to #1018. |
@renecannao I'm wondering if there is a way to not require |
@minichate , the way I see a graceful upgrade is to have two processes (let's not enter into the details of how these 2 processes were started, either by Another option is to have proxysql1 closes the port, and then start proxysql2 while proxysql1 is still running. This implementation doesn't require |
@minichate : http://www.proxysql.com/blog/how-to-run-multiple-proxysql-instances time to upgrade to kernel >= 3.9 😄 |
It'd be wonderful if ProxySQL could
fork()
andexec()
, then gracefully drain existing connections on the old process, while accepting new connections on the new process. Ideally we'd be able to signal the old process to do this viaSIGHUP
.This would allow upgrading the ProxySQL binary without dropping any in-flight client queries.
I may be able to contribute some time developing/testing this feature over the next few months, if you think its worth having.
The text was updated successfully, but these errors were encountered: