[Zope] Zope not multi-threaded - is this a problem?

Michel Pelletier michel@digicool.com
Sun, 7 Mar 1999 16:00:48 -0500


> -----Original Message-----
> From: Tony McDonald [mailto:tony.mcdonald@ncl.ac.uk]
> Sent: Sunday, March 07, 1999 3:25 PM
> To: zope@zope.org
> Subject: [Zope] Zope not multi-threaded - is this a problem?
> 
> 
> Hi,
> I've read on the zope-dev list that Zope is not multi-threaded.
> 
> Does this have any ominous implications for server 
> performance? I believe it
> means problems for people writing products, but does it give 
> problems for
> folk using Zope in an 'install products and use them' scenario?
> 

We can discuss this now, but in a short while it won't really matter.
Zope as we know it now is not 'multi-threaded'.  The real issue
concerning Zope is one of concurrency, since the 'threading' of requests
is ussualy created by the web server (Apache using multi-processes or
Medusa (ZServer's) use of select(), neither of which use actual
'threads').  There are two areas that we are working on to make zope
concurrent.

The Database:
	There is a new version of BoboPOS, called BoboPOS3.  It is
currently alpha.  BoboPOS3 supports concurrent processes opening,
reading and writing the Object Database.

'Concurrifying' Zope:
	Concurrent programs have to be careful about some issues.  In
particular, the use of global data.  These can sneak in on you in wierd
ways.  For example, in the regex python module (yes, regex has been
depreciated for re, but for now regex is faster) certain uses of
compiled reg expressions don't work when two 'threads' enter the same
expression.  Also, there is an issue about passing mutable objects as
default arguments to methods.  To be truely thread safe, default
arguements need to be immutable, or mutable arguments can only be used
in immutable ways.

These are, as you said, developer issues.  Product developers have to be
careful not to block Zope for long periods of time.  People in the
'install and use them' scenario should not use these types of Products
unless they are sure the block times are low, and product developers
should be very, very careful about moving their software out into the
world if the product blocks.  It should be made clear to the user that
this software could stop up the whole works.

Why is won't matter soon is because we are working on making Zope fully
concurrent.

-Michel

> many thanks for any thoughts,
> tone.
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://www.zope.org/mailman/listinfo/zope
> 
> (For developer-specific issues, use the companion list,
> zope-dev@zope.org - http://www.zope.org/mailman/listinfo/zope-dev )
>