[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