[Twisted-Python] Persisted protocol?

Tim Allen screwtape at froup.com
Wed Apr 6 07:27:36 EDT 2011


On Wed, Apr 06, 2011 at 12:41:08PM +0200, Laurens Van Houtven wrote:
> Whoa hang on. Without trying to hijack the thread, this is the entire
> premise of infobarb, the IRC bot I'm building for #python-*, except
> s/pickle/sqlite/, so if this is a horrible idea I'd like to know before I
> build it.

I'm not familiar with the reasons Twistd moved from .tap to .tac (it's
rather before my time), but as a user I'd be worried about things like
"what happens if, due to a bug, the server winds up choking on some
unexpected input, or deadlocked, or just mis-files some piece of state?"
Restarting the process in question is a sledgehammer approach, but
that's often what you want if the alternative is unscheduled downtime.

The difference between Pickle and SQLite is that a SQLite database has
probably had some thought put into its schema, and is much less likely
to accidentally scoop up random other objects by reference. Also, if
your database *does* pick up some unwanted state, you have the option of
tinkering with the database manually; something that's much more
difficult to do with pickles.

I'd be interested in hearing from Twisted greybeards why .tap was
deprecated, but I don't think your IRC bot has a fatal design flaw.



More information about the Twisted-Python mailing list