[ZODB-Dev] ZEO ClientStorage's use of the asyncore main loop (was [Fwd: Re: [Zope3-dev] Twisted Publisher and Zope 2])

Shane Hathaway shane at hathawaymix.org
Fri Dec 9 12:25:10 EST 2005


Jim Fulton wrote:
> Tim and I have discussed this for some time.  We think an
> asynchronous I/O approach is still appropriate, to handle
> asynchronous messages from servers to clients, but we need
> to get away from expecting a server to provide the asyncore
> main loop needed by ZEO. Rather, ZEO should provide its own
> main loop running in a separate thread. (Or, possibly, each
> client storage should have its own thread.) Among other things,
> this would allow us to get rid of the horribly complex dual-mode
> code we have now.

I think that's a good strategy.

> (Note that we've had lots of frustration with asyncore.  It is
>    tempting to get rid of that at the same time.  However, we still
>    need an asynchronous I/O framework.  This would probably requite
>    a switch to Twisted.  This might be worthwhile, but would almost
>    certainly entail a lot of risk.  I'm not at all sure the benefit
>    is worth it unless there were some able volunteers who wanted to
>    work on it.)

Last I checked, Twisted could not support a private event loop.  Twisted 
assumes there is only one event loop for all threads.  I'd like to know 
if this has changed.  The asyncore module can support a private event 
loop, although it's ugly--you have to pass the 'map' argument all over 
the place.

Shane


More information about the ZODB-Dev mailing list