[ZODB-Dev] Re: ZEO and Twisted

Rodrigo Dias Arruda Senra rodsenra at gpr.com.br
Tue Apr 25 17:14:16 EDT 2006


You probably already know all of these, but just in case ...

[ Jim Fulton ]:
---------------
|
|  I am strongly against linking ZEO to an application's main loop.

Twisted performs better if the protocols build upon it rely on its
reactor (asynchronous loop). That means breaking long computations
to use promises (deferreds in Twisted vocabulary), therefore increasing
the interleaving of data handlers.

Implementing ZEO in Twisted would probably isolate the zeo protocol
from the underlying transport (tcp, udp, whatever). OTOH, the
implementation would be dependent on the typical deferred patterns
(only common in Twisted nowadays). Twisted also support threads, but
that defeats most of the other benefits of using Twisted in the first
place (like not bothering about critical sections and other synch
stuff), so they are just used when blocking calls must be made.
  

|  If twisted supports using multiple independent main loops, then it
| would be an option.

I know it supports multiple implementations of reactors, each
specialized for a particular purpose, for instance to conciliate
two different loops into a single reactor, which is the case of
twisted_networking_loop + GUI_event_loop.
Therefore, it would be possible (my educated guess) to create a
zeoreactor, would that suffice ?  

That was done to marry Twisted to: gtk, gtk2, glib2, wxPython,
win32event loops.

|  Then the possible issues are:
|  
|  - Whether we want Twisted to be a dependency of ZEO

If it comes to that, probably just TwistedCore would be required,
and perhaps even a subset.
 
|  - Performance

There is a lot of this-and-that [1] about what communication pattern
performs better. Twisted is definetely better for long sessions, and
not necessarily much worse for short-termed sessions (where "people"
say thread-pools are much sexier). IMVHO, the strong argument behind
Twisted adoption would be flexibility and not huge speedups. 


[ David Pratt ]:
-----------------
|  > Is there is any strong opposition to using the twistd daemon for a 
|  > twisted zeo service?

I volunteer to help in that effort to the best of my modest skills
and limited (just like everybody else) spare time.

[1] http://www.cs.wustl.edu/~schmidt/patterns-ace.html

cheers,
Senra

-------------
Rodrigo Senra
GPr Sistemas


More information about the ZODB-Dev mailing list