Gary, since you're the author of zc.twist (as I understand), I take
this as an exhaustive answer, and thank you :)

However, I'm still curious to know zc.twist would provide any benefit
when used together with a thread pool.
The thread examples in its README (which I find hard to understand)
indicate that there must be some meaning to using zc.twist with

Thanks again and best regards,

2011/7/29 Gary Poster <>:
> Hello Erik.  As the author, I'll suggest that you move on to a ZODB 
> connection pool used by the usual Twisted-provided thread pool.  zc.twist is 
> maybe interesting and maybe clever, but of very limited usefulness.  I 
> suspect it is only used in zc.async, and that's probably as it should be.  
> It's a case of premature generalization.
> If you are going to use Twisted in anything like a normal way, and the ZODB 
> in anything like a normal way, use a connection pool and threads.
> Best,
> Gary
> On Jul 28, 2011, at 4:12 PM, Erik Allik wrote:
>> 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 #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).
>> _______________________________________________
>> For more information about ZODB, see the ZODB Wiki:
>> ZODB-Dev mailing list  -
For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -

Reply via email to