[mod_python] module caching problem

Huzaifa Tapal huzaifa at hostway.com
Tue Nov 30 16:48:49 EST 2004

Yes I am using linux on a debian OS.  How can I configure apache to not run
with mpm_prefork?  Pretty much I want to use Shared Memory with mod_python
so that for simultaneous requests it uses any modules that are already
loaded in memory rather than instantiating new processes.

Any ideas?


-----Original Message-----
From: mod_python-bounces at modpython.org
[mailto:mod_python-bounces at modpython.org] On Behalf Of Damjan
Sent: Tuesday, November 23, 2004 6:49 PM
To: mod_python at modpython.org
Subject: Re: [mod_python] module caching problem

> I am running into a problem with mod_python in that, I am importing a
> in the handler which creates a singleton in memory.  I am using the module
> to hold cache information for any other modules that import the same
> I started testing the cache mechanism when I noticed that the module was
> being imported multiple times and not just once after the first request
> after apache had started.  To test this, I put a few lines of code in the
> module to write to a file the time it was last imported.  I noticed that
> after restarting apache, the first time it writes to the file.  If I hit
> refresh on my page immediately, multiple times, it doesn't write.  If I
> like 10 seconds or more and then hit refresh again, it reimports that
> that should have been cached.
> Also, If I make a request for a page from two different clients, it
> reimports the module from each client.  Am I mistaken in thinking that any
> module imported in the handler then is cached in mod_python's module cache
> and subsequent imports of that module then are simply served up from the
> cache.  Under what conditions then would the same module get reimported if
> no modifications were made to that module?

I guess your are runnig Apache with mpm_prefork? 
In that case there's a completely different python interpreter for each
Apache process, so your caching module is loaded in each of them.

Your testing showed how apache processes get to serve requests, if it gets
two simultaneus requests two apache processes will be active, each
serving one of the request. But if you only generate one request after
another, its most likely that the same process will serve  both
requests... of course this depends on OS implementation... I think you
are running on Linux, no?

damjan | дамјан
This is my jabber ID --> damjan at bagra.net.mk <-- not my mail address!!!
Mod_python mailing list
Mod_python at modpython.org

More information about the Mod_python mailing list