[ZODB-Dev] Twisted, ZODB and zc.twist

Erik Allik eallik at gmail.com
Thu Jul 28 16:12:59 EDT 2011


Hello everyone,

I hope this is the right mailing list to post this question to.

I'm trying to build an Twisted application that uses ZODB and I've
also found zc.twist.
I've read its README as well as the source code to try to understand
how exactly and why I should use zc.twist, and also asked the same
questions on irc.freenode.net #zope but without a conclusive answer.

What I'm not able to understand is whether using zc.twist will allow
me to do all ZODB access in the main Twisted thread, or if still need
to set up a thread pool and deferToThread any code that accesses the
DB.

The README of zc.twist has:
"Everything can be done within the main thread, so it can be full-bore
Twisted usage, without threads."

However, looking at the source code of zc.twist, I cannot find any
reference to async communication (callbacks/polling) with ZODB, so
it's difficult to conclude that all DB access is non-blocking and can
be done in a single thread. Also, there are some examples with threads
in the README.

I would highly appreciate if somebody with a clearer understanding of
this could explain to me whether I in fact need to set up a thread
pool, and in any case, what exactly is zc.twist for regardless of
whether it needs to be used with a threadpool or not.

Thanks in advance!

Regards,
Erik Allik

P.S. I'd be very thankful for any references to open source
projects/code using ZODB with Twisted, or even zc.twist (besides
zc.async).


More information about the ZODB-Dev mailing list