On Tue, Aug 12, 2008 at 3:50 PM, Harold J. Ship
<[EMAIL PROTECTED]> 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
> [EMAIL PROTECTED]
>
>
>



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

Reply via email to