On Mon, Aug 23, 2010 at 5:48 PM, Michael Bayer <mike...@zzzcomputing.com> wrote: > > > Sent from my iPhone > > On Aug 23, 2010, at 8:29 PM, Tarek Ziadé <ziade.ta...@gmail.com> wrote: > >> Hello, >> >> I use the default options to run queries via sql expressions and I've >> noticed that SQLAlchemy does a rollback >> after every select using the mysql default engine. These rollback are >> not really useful and eat 15% of the CPU time. >> >> Is this a normal behavior, part of the auto commit custom strategy >> SQLAlchemy implements ? >> >> If yes, is there a way to avoid those extra rollbacks ? > > Because we're using a connection pool, putting the connection back into the > pool without a rollback means you throw existing transactional locks and > state into the pool as well, holding them open indefinitely and generally > causing problems for subsequent usages of those pooled connections. > > However, we get a complaint about every 6 months from a mysql myisam user, > who uses many ad-hoc connection checkouts (which in itself is a little > unusual) and who would rather not have it (as myisam has no transactional > integrity anyway). For those cases, we tell them to add > rollback_on_return=False to their create_engine to turn the behavior off. > > But also maybe consider why you have a high volume of checkins, rather then > working in some kind of transaction-per-logical-operation scheme (like a web > request).
Thanks Michael ! -- Tarek Ziadé | http://ziade.org -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.