[Twisted-Python] So how does everyone use an ORM in twisted?

coder_gus coder_gus at lavabit.com
Mon Mar 23 16:48:14 EDT 2009

So, basically what you say is that if I do something like:

def dataReceived(self, data):
    reactor.callInThread(f, data)

and later you have:
def getData():
    data = orm_session.query(Object).filter(data).all()
    return data # eagerloaded, lazyloaded and put in any format you like


at the time of the query or when lazy-loading an attribute the reactor 
would block?

And if so, why is that? I do not know the internals of the reactor nor 
the ones of the ORM and I am interested why something like this won't work.


P.S: Sorry for the vaguely python pseudo-code, hope you got the idea.

Jean-Paul Calderone wrote:
> On Tue, 17 Mar 2009 11:05:59 -0400, Ryan Lepidi <ryeguy1 at gmail.com> 
> wrote:
>> I have searched a bit, and it seems as though you can't use SQL 
>> Alchemy with
>> twisted due to SA being thread unsafe. The only solution I found was 
>> sAsync,
>> but this is old and unmaintained. What is everyone else doing for 
>> database
>> access for a multiuser server? Is everyone really using raw sql 
>> queries or
>> is there some easy solution that I'm missing?
>> I'm not even stuck on SQL Alchemy; if there is some other ORM that 
>> works in
>> this case, I'd be willing to learn it.
> I use Axiom (for Mantissa, a somewhat general-purpose application server,
> for Quotient, a mail server based on it, for Imaginary, a text adventure
> server based on it, for Blendix, a person aggregator based on it, for
> Merit, a test results database, etc) most of the time.  I know some other
> people are using Storm.
> Overall, I think that the way all existing ORMs work (including Axiom and
> Storm) is hostile towards the typical Twisted program structure (or vice
> versa, or both).  So it's tough.  The approach Axiom takes is to warn you
> that any database operation you perform must complete quickly or your app
> will suffer, and to restrict you to SQLite, so network issues can't hurt
> you.
> Jean-Paul
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
> ____________________________________________________________________________________ 
> Be a professional.  Click here to earn a psychology degree.
> http://ads.lavabit.com/fc/BLSrjwr2XUejFQl52llZu1OHc75Kvdk24AO6XmzlqNlFiwPiYRenCdFpDfK/ 
> ____________________________________________________________________________________ 

More information about the Twisted-Python mailing list