[mod_python] _really_ Basic concept question

francois lepoutre francoislepoutre at compuserve.com
Tue May 13 18:13:40 EST 2003


> I'm trying to plan the most efficient way to implement an apache
> project.  And I have a really basic question about how mod_python (or
> any apache 'mod 'kind of framework, probably) works.  I think i've read
> that a major advantage of mod_python is the fact you dont have to
> re'load the interpreter for each instance... but i'm wondering if this
> also equates to having a global, accessible, code space that python is
> operating in....

Nearly so. Depending on your platform.

on win32:
    You will one workspace on win32 with shared code space
    (beware of that apache/win32 is threaded you will have to
    organize some locking when updating the python data structures)
on linux:
    not one python interpreter but a series of them depending on the
    context (apache setup and stress level)

> I'm following the examples in the documentation, and am using the
> 'handler' example, and have a python script with functions defined that
> do the work  (there is a database connection happening with an Interbase
> server).
> What I"m trying to do is to have a dictionary created and available to
> all users - without having to re'create the dictionary for each apache
> visitor.  I have a reason to NOT want to accomplish this using a
> database table - even though the dictionary is quite large, and requires
> a lot of overhead each time it's created.

Sure, you can build your code in such way that your apache mod_python
handler downloads what is necessary at loadtime and keep that stuff
(dictionnaries and the db handler ) buffered within the python "memory

Only once in a while the python interperter be restarted (depending on
setup), your memory workspace will be recreated from the db
(possibly a couple of seconds).

Perf will be excellent in this situation. At later calls to your stuff
will be "python-driven". That's what we do.

We rely heavily on highly secure but time-consuming db-based datastructure.

The possibily to smartly buffer your db stuff within python was our reason
switch  into python/mod_python (from iis/isapi).

Welcome onboard :)


If you wish to organize session-handling this way, it is doable as well but
will be a bit more complex as you will need to resync your set of apache
instances (each one handling its own session pool).

More information about the Mod_python mailing list