httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "César Leonardo Blum Silveira" <cesa...@gmail.com>
Subject Re: Global Data
Date Thu, 28 Aug 2008 01:29:28 GMT
On Tue, Aug 12, 2008 at 3:50 PM, Harold J. Ship
<Harold@giant-steps-networks.com> wrote:
> I'm in the middle of porting an application from IIS/Windows to Apache 2.2 module. In
the application, there is a lot of global data. The data contains both:
>
> - application configuration that is read on startup and on receiving a certain HTTP request
to reload
> - per-request data that is shared between certain requests with dependencies.
>
> Other important information:
> - The config data is very large, many MB
> - The data structures are built with a lot of pointers to structs to pointers ...
> - We are using the worker MPM.
>

I believe this is sort of an ugly hack, but if you're not expecting
too much traffic to your application, you may limit the number of
child processes of the worker MPM to just 1. That way, you can safely
use global data in your module, since all threads of that process will
share the same memory space.

> My question is, how can we be sure that the data is stored only once on the machine,
and accessible by any request that needs it?
>
> For instance, if we store it in the server pool, and we have multiple processes, how
can the request data be shared?
> If we have to reload the configuration data, will each process need to maintain its own
copy?
> If we use shared memory, we will have to change a lot of code which today allocates data
on the heap.
>
> One idea for the request data: is there a way to direct a request to be handled by a
specific process?
>
> Harold Ship
> Team Leader, Giant Steps Networks
> 04-678-3440 extension 106
> harold@giant-steps-networks.com
>
>
>



-- 
César L. B. Silveira
http://www.cesarbs.org/blog

Mime
View raw message