[Zope] ZSERVER, THREADS, PERFORMANCE & FUTURE PERFORMANCE

Stuart 'Zen' Bishop zen@cs.rmit.edu.au
Sat, 13 Nov 1999 11:58:43 +1100 (EST)


On Fri, 12 Nov 1999, Michel Pelletier wrote:

> It is transparent.  There is no application level change in
> functionality.  You can take an existing Zope site and fire it up with
> Zeo in a few seconds, and then switch back to the original threaded mode
> just as quickly.

Unless your objects are sharing information between threads without using
ZODB. Or does ZEO somehow handle this?

For a product I'm writing, I need to maintain a cache of authentication
tokens which needs to be shared between all Zope threads. I seem to have
the choice of:

    Storing in the filesystem
    Storing in a RDBMS
    Storing in ZODB
    Storing in Memory

The first two will not work in ZEO environments without a shared var directory,
and can't be written platform independantly due to the lack of platform 
independant file locking in Python.

The second depends on having a network accessible RDBMS available, and a DBA
to drive it.

The third isn't usable yet for caching, as it quickly bloats your ZODB
to ridiculous sizes. 'volatile' objects would fix this, but they would
need to just be pointers in ZODB and actually stored elsewhere or risk
destroying Zopes nifty ZODB file format. And the conflict errors reported
by gtk would need to be fixed.

The forth shouldn't work for ZEO (?). By this I mean package or global
variables, and not class/object attributes.



 ___
   //     Zen (alias Stuart Bishop)     Work: zen@cs.rmit.edu.au
  // E N  Senior Systems Alchemist      Play: zen@shangri-la.dropbear.id.au
 //__     Computer Science, RMIT 	 WWW: http://www.cs.rmit.edu.au/~zen