RE: [Zope] Zope not multi-threaded - is this a problem?
-----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 )
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.
Thanks for the informative answer Michel. Look forward to seeing the all-new singing and dancing server! ta tone ------ Dr Tony McDonald, FMCC, Networked Learning Environments Project The Medical School, Newcastle University Tel: +44 191 222 5888 Fingerprint: 3450 876D FA41 B926 D3DD F8C3 F2D0 C3B9 8B38 18A2
participants (2)
-
Michel Pelletier -
Tony McDonald