On Tue, 25 May 2004, Mathihalli, Madhusudan wrote:
Here's the current logic :
- user invokes "apachectl updatecrl" which sends a SIGUSR2 signal to the parent process
Question from an innocent bystander: Is there some reason that "apachectl graceful" isn't good enough for this situation?
AIUI, the 'graceful' restart forces the child processes join all the threads and re-start. (Pl. let me know if this is incorrect).
The requirement is to update the crl without causing the process to re-start in order to achieve a zero down-time.
Yes, the "graceful" restart does force all the child process/threads to restart. But it does so in a "graceful" manner: workers are not killed until they are done serving requests and new workers are started before the old ones are killed in order to assure that there is always a pool of workers available to serve new connections.
Theoretically, "apachectl graceful" should have zero down-time from the client perspective.
Of course, this recycling will cause some extra load on the server, so having a method of reloading arbitrary parts of the configuration is not a bad idea. But whether it is worth the effort over a nice, clean "apachectl graceful", I couldn't say.
Joshua.
