zero downtime deploys
sunaku at gmail.com
Fri Nov 13 17:54:05 EST 2009
I tried using preload_app with the "zero downtime deploys" trick of
sending SIGQUIT to the old master in before_fork(), as described in:
This significantly reduced, but did not eliminate, the transition time
when the new workers take over (step #2 below):
1. old master (and its workers) is killed in before_fork()
2. workers re-establish DB connections in after_fork()
3. workers are ready to work, at the bottom of after_fork()
Why do we kill the old master in before_fork() when the new workers
are really ready to work much later? Shouldn't we kill the old master
at the *bottom* of after_fork() --- when the new workers are really
ready to work?
Thanks for your consideration.
More information about the mongrel-unicorn