[Zope] Performance and Concurrency

Cary O'Brien cobrien@Radix.Net
Wed, 8 Mar 2000 08:55:58 -0500 (EST)


I was reading the thread about Zope vs AOLServer and performance
and threading and all that.  

I've done some work with other interpreters embedded in the apache
child processes (tcl, mod-perl) so I started wondering if this would
work for zope.  Somewhere I think there is a Python interpreter
embedded a'la mod-perl.  If not, I'm pretty sure it can be done
without too much grief, using mod-perl and mod-dtcl as starting
points or examples.

It seems to me this would allow utilization of multiple processors,
esp for apps with a database backend, since the work would be split up
over n frontend apache server processes and n backend database
processes (at least for oracle an PostgreSQL)[1].  All without
worrying about threading...

But...

What happens when multiple processes attempt to access the zame ZODB
Data.fs file?  Is it multi-process safe?  Thread safe?  How big are
the sections protected by the mutexes? (or more importantly how long
do they take to execute).

Thanks,

-- cary

[1] m apache talking to n database backend process, m > n, might be
    even nicer in some cases.  Gotta write that PostgreSQL backend
    multiplexor someday.