On Jul 22, 2011, at 12:40 PM, Ignaz Birnstingl wrote:

> I implemented something very similar for my module: Dynamic
> configuration data is retrieved from a remote server and should be
> shared among all worker processes. Fortunately the configuration
> changes only sporadically so I implemented it using
> serialization/deserialization to/from the shared memory segment. Of
> course inter-process locking must be considered - for example using
> apr_proc_mutex_* or a spinlock inside the shared memory segment.
> 
> -- Ignaz

Thank you all for your suggestions, it turns out that implementing a shared 
dynamic memory storage across all the threads and process is quite a complex 
process, I ended up doing it in a stand alone daemon that uses libevent, each 
apache process or thread has its own storage for the duration of its life and 
all the cache misses are looked up in the said daemon using TCP sockets, the 
daemon usually replies in 0.004 seconds which is an acceptable performance hit 
since mutex locking across all apache instances might have ended up with a 
larger overhead anyway on busy servers.

virtually yours

Zaid

Reply via email to