httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Abdi Abdirahman <abd.moha...@gmail.com>
Subject Re: Sharing information across Apache child processes
Date Tue, 30 Sep 2014 13:20:24 GMT
On 09/29/2014 05:14 PM, Sorin Manolache wrote:
> On 2014-09-29 13:39, Rajalakshmi Iyer wrote:
>> Hello,
>>
>> I have a requirement whereby my application's configuration information
>> (comprising a few complex data structures) needs to be shared across the
>> various Apache child processes.
>>
>> Currently, the configuration is being individually loaded by each child
>> process, which makes it hard for configuration changes to propagate.
>>
>> What is the best way / place to have a common configuration for the
>> application?
>>
>> Please advise.
>
> I suppose you want to update the configuration without running 
> "apache2 -k graceful" (or "apache2ctl graceful").
>
> In this case you could use a segment of memory that is shared across 
> the apache children. You'll have to create the shared segment memory 
> before the parent forks its children (for example in post_config). The 
> shared memory is then inherited by the forked children.
>
> You'll need a method to update the contents of the shared memory 
> segment and a multiple-readers-single-writer inter-process exclusion 
> mechanism in order to safely read and write from the shared segment.
>
> Sorin
>
Hello All,

You can check out mod_cluster approach 
(https://github.com/modcluster/mod_cluster/tree/master/native/mod_proxy_cluster) 
- it uses shared memory as data storage and additional thread per 
process to check updates in storage. This way you'll keep per-process 
module config in sync with shared data.
Not perfect solution though, but I doubt that there is any flawless way 
to share config structures.

________________
Best regards,
Abdi A.

Mime
View raw message