[Twisted-Python] thread migration and bsddb

Bill la Forge laforge49 at yahoo.co.in
Tue May 18 03:35:28 EDT 2004

The 040518 release of CompStrm supports the movement of computational streams to a server thread and back to the main thread.
See http://compstrm.sourceforge.net/thread.html
Thread migration makes it very easy to do blocking I/O without comprimising the main thread.
Unfortunatly, this is still not good enough when working with bsddb, as cursors are NOT thread free. To reuse a cursor, you must be on the SAME thread it was created on. ;-(
A moderatly reasonable solution seems to be to have a thread dedicated to bsddb. Now the business logic can migrate to that thread, do a bunch of blocking I/O, and then migrate back to the main thread. It would then have the option of returning to the bsddb thread and resume processing with cursors it previously created.
Mmm. Looks like its time for me to "put to practice" more of what I've read about Twisted. I'm thinking that managing the bsddb thread might be a Twisted Service--lots better than having each business object instance create its own thread.

Bill la Forge
Yahoo! India Matrimony: Find your partner online.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-python/attachments/20040518/e5326956/attachment.htm 

More information about the Twisted-Python mailing list