On Jun 17, 2008, at 12:41 PM, Laurence Rowe wrote:
What connection pooling is used by default? e.g. with
create_engine('sqlite:///:memory:')
sqlite is a special case, it uses the SingletonThreadPool. This pool
holds onto one connection per thread. This is used in SQLite
because of a sometimes-restriction that a sqlite connection can only
be used in the same thread in which it was created. The pool in
normal use is QueuePool.
I think we are only talking about the difference between using four
pools of one connection versus one pool of four connections (assuming
the standard four threads in zope). I don't see that making a lot of
difference in practice.
in practice, a single pool of four connections means if one of those
connections encounters a "connection lost" exception, the exception is
raised, and the entire pool is recycled; meaning that only one
exception is raised for the whole application during a database
restart. It also means that the total connections used by the
application for a particular database can be configured/throttled in
one place. To me thats a significant difference.
_______________________________________________
Zope-Dev maillist - [email protected]
http://mail.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists -
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )