[Zope] ZSERVER, THREADS, PERFORMANCE & FUTURE PERFORMANCE

Toby Dickenson tdickenson@geminidataloggers.com
Mon, 15 Nov 1999 11:06:29 -0000


> -----Original Message-----
> From: Jeff Rush [mailto:jrush@timecastle.net]
> Subject: Re: [Zope] ZSERVER, THREADS, PERFORMANCE & FUTURE PERFORMANCE
> 
> 
> On Thu, 11 Nov 1999 18:34:31 -0500, Michel Pelletier wrote:
> 
> >However, the goal of threading Zope was NOT to increase requests
> >per/sec, the goal was to allow simultaneous requests to 
> happen, in Zope
> >1.x, requests were serialized and one requests wait for 
> (possibly long
> >running) previous requests.  Threading allows many requests to happen
> >simultaneously, and means that individual threads can call 'blocking'
> >methods without worrying about locking up the whole site.
> 
> Related question -- if _adding_ threads doesn't gain much raw 
> performance,
> then is it a sound workaround, on a site that (a) does a lot 
> of OODB writing
> and (b) doesn't take a  ton'o'hits, to turn threading off to 
> avoid the dreaded
> ZODB conflicts.  It seems this wouldn't lose much performance either.

Today, the ODB maintains a separate pool of object-spaces (aka
'connections') for each version. The default size of the main pool is 7
object-spaces, and the default for version objects-spaces is 3. Assuming
there are no versions in use, No more than 7 threads can be running at one
time (even if you create more) since the excess will be blocked waiting for
a free object-space.

What if these write-intensive requests could specify that they should take
place in a special pool, containing only one object-space..... The
write-intensive requests would be serialized, but every other request would
still be handled concurrently.



ps. perhaps this should move to the zopedev list.