[ZODB-Dev] Re: ZEO and Twisted

David Pratt fairwinds at eastlink.ca
Tue Apr 25 17:33:00 EDT 2006


Hi Rodrigo! Great post on this. You provide an insightful and compelling 
summary of what can be accomplished. Add on top of this, the things that 
twisted "just does" like SSL or SSH out of the box and we can also have 
the security issue beat. Jim, what do you think? Do you think you could 
give us a place to experiment in zope's svn?

Regards,
David

Rodrigo Dias Arruda Senra wrote:
> 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
> _______________________________________________
> For more information about ZODB, see the ZODB Wiki:
> http://www.zope.org/Wikis/ZODB/
> 
> ZODB-Dev mailing list  -  ZODB-Dev at zope.org
> http://mail.zope.org/mailman/listinfo/zodb-dev
> 


More information about the ZODB-Dev mailing list