Re: overhead of ZEO connection
Sanjay Rao <[email protected]>
| Newsgroups | gmane.comp.web.zope.zodb |
|---|---|
| Message-ID | <[email protected]> |
Hi, Thanks for reply. If pool size is 8 then is following true ? In application; there are some long running(may run more than a hour) threads. there are 8 such threads these 8 long running threads get all available 8 connections in pool There are some short duration threads also, which read/write in database. These short duration threads won't get connection until at least one of the long running thread does not release connection. Best Regards, Sanjay Rao On Friday, 6 May 2016 19:32:21 UTC+5:30, Tres Seaver wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 05/06/2016 09:33 AM, Sanjay Rao wrote: > > > In this post I want to understand the overhead of creating database > > connections in a zope application what is overhead of creating a new > > connection to ZEO ? > > > > which one is recommended ? > > > > - Create a connection - Use this connection for each transaction > > commit (one transaction commit could be bounded into one function) - > > Close connection when application terminates > > > > OR > > > > - Create one separate connection for each transaction commit - Commit > > transaction - Close connection ..... > > You definitely don't want to *destroy* the connection at transaction > boundaries: each connection holds a cache (in RAM) of objects retrieved > from the database. The `ZODB.DB.DB` object, which holds onto the > storage, also maintains a connection pool. The usual pattern would be: > > - ------------------------- %< ------------------------- > # At startup > from ZODB.DB import DB > from ZEO.ClientStorage impport ClientStorage > > storage = ClientStoraget((192.168.1.200, 9876)) > db = DB(storage) > > # Whenever you need a connection > conn = db.open() # checks it out of the pool > root = conn.root() > > # Use the root object to do work > try: > do_something_with(root) > except Exception: > transaction.abort() > raise > else: > transaction.commit() > > conn.close() # return 'conn' to the pool > - ------------------------- %< ------------------------- > > Zope follows this pattern for each HTTP request it serves. Hope that > helps, > > > Tres. > - -- > =================================================================== > Tres Seaver +1 540-429-0999 [email protected] > <javascript:> > Palladion Software "Excellence by Design" http://palladion.com > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1 > > iQIcBAEBAgAGBQJXLKPaAAoJEPKpaDSJE9HYtm4QAI/ZDu8GiEG4egEcl8zXzThK > /yDeq8ciIIPDWPUCsCRC26IQIhonq/GXUsEde7LCIbeLNfvTns/W6Kv4glCpX8zx > Ap+MYmpx2Dozj7dipiHJgCgZbbx9LZbTwKS2MbaNU1KgLEetk5EkdYPxj3tBV3Ad > KxGZ5zdLWKeh9YhBnkEJNBBfyvjRXO/jSvNEVL40o0LT49JvzvcMkJn9c6qudjNE > 6bAjqLr1MVrw62+U8xn9MuBEPv5wqSVEH2+kb7x8MqrW2yhdWi3UjgjpubRoqlHK > u1Xf8wojF6dxyWuOJ7X2aiO/qlDYPpIaTIBkWcZWzYLybXnPqveSIzi8Y5T8rw0Y > 4meZKUkoNsqUmSpIp/8mxOX4j2ZkicLLITEezFQwC76VyUmbuD03Doyl+bJzBRh5 > kAvIR/7BzW6pa3TMnEfteUClHG0NwloqVHIsSp9/mtO6OdEa/6bvMdVUD2lwC80X > PMQumfAG2CEnQTwVssFCj+BVxBK7Fp6iIgMppUifeiRTX+2+jFT5DpCU6mp73jm4 > 2EgJeDFbzbm0P5UwrTcUlVWpU3iglwKUfvXn80WXtL5CE9hU/k/g6HYadIz2lxQj > wS4rYcM4lPuodwYwYhj4iTcCoIkQ7QH2kI8mhYoiWTV0Pgjm7Iun/C86t48CGF4L > 49zxIkN8tM5BgCnrPgCU > =C0Cx > -----END PGP SIGNATURE----- > > -- You received this message because you are subscribed to the Google Groups "zodb" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.