quetz-mod_python-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jack Diederich" <jack_dieder...@email.com>
Subject Re: [mod_python] Using shared memory to do global persistence
Date Thu, 26 Jun 2003 23:58:25 GMT
From: VanL <vlindberg@verio.net>
> I think that the nicest solution (in terms of API, at least) would be to 
> have an explicit namespace that is instantiated when mod_python is first 
> loaded.  Applications could then access this shared namespace by 
> importing it; anything declared in the namespace would be automatically 
> shared.
> 
> For example.
> from mod_python import apache.shared as shared
> 
> shared.myvar = 'something here'
> 

In the future setting variables in other module spaces may be
outlawed in python.  Treating modules like classes/objects
is also strongly discouraged.

I think your use of dicts is dead on, something like:
def do_calc():
  cache = mod_python.shared
  if ('foo' not in cache):
    cache['foo'] = 'bar'
  return cache['foo']

As I mentioned during the long thread on what frameworks
should do, we could add two dicts to mod_python,
mod_python.page_cache # caching dict created per-request
mod_python.perm_cache # cache valid accross all processes for ever

perm_cache could actually lie and just keep the last X least
recently used entries, but the main idea is that it is long
lasting and valid accross all processes.  An intermediate
mod_python.proc_cache that is similarly 'permenent' for the
life of the process, but only caches values locally to the
current process might be useful in a pure-forking server
because it doesn't have to worry about locking.  If you are
threading you have to do locking anyway, so perm_cache is
more useful.

-jack


-- 
__________________________________________________________
Sign-up for your own FREE Personalized E-mail at Mail.com
http://www.mail.com/?sr=signup


Mime
View raw message