Re: psycopg and gevent with pgbouncer - Mailing list psycopg
From | Marko Kreen |
---|---|
Subject | Re: psycopg and gevent with pgbouncer |
Date | |
Msg-id | CACMqXCJGsixGO851HiXocEyh_OW33GTqBp42ufyw0nfm-rk-DQ@mail.gmail.com Whole thread Raw |
In response to | psycopg and gevent with pgbouncer (Raoul Duke <knevcher@gmail.com>) |
Responses |
Re: psycopg and gevent with pgbouncer
|
List | psycopg |
On Thu, Oct 6, 2011 at 10:45 AM, Raoul Duke <knevcher@gmail.com> wrote: > I'm the author of this topic on stackoverflow > http://stackoverflow.com/questions/7658714/psycopg2-pgbouncer-async-mode-with-gevent-error > http://archives.postgresql.org/psycopg/2011-10/msg00006.php Hey! > I have two more questions: > > 1. When I use connection.commit() before end of application handle request, > I've got such messages in logs: > > > 2011-10-05 13:00:52.941 26120 LOG C-0x7ea9d0: > database/user@10.58.65.143:39380 login successful: db=database user=user > 2011-10-05 13:00:52.941 26120 LOG C-0x7eb5a0: > database/user@10.58.65.143:39378 login successful: db=database user=user > 2011-10-05 13:00:52.942 26120 LOG C-0x7ecfe0: > database/user@10.58.65.143:39377 login successful: db=database user=user > 2011-10-05 13:00:52.948 26120 LOG C-0x7ea5e0: > database/user@10.58.65.143:39293 closing because: client close request > (age=0) > 2011-10-05 13:00:52.978 26120 LOG C-0x7ea880: > database/user@10.58.65.143:39381 login successful: db=database user=user > 2011-10-05 13:00:52.978 26120 LOG C-0x7ea340: > database/user@10.58.65.143:39315 closing because: client close request > (age=0) > 2011-10-05 13:00:52.993 26120 LOG C-0x7ec2c0: > database/user@10.58.65.143:39314 closing because: client close request > (age=0) > > As I understand It `age` - is a count of connection uses. If I run > application in sync mode (without gevent), messages in logs have age = 140 > and more. Maybe there is a reason why in async mode age is such a small? No, age is in seconds, how long the connection has been connected. Also note the C- before 0x... means the message is about client connection, S- means it's about server connection. > 2. I use psycopg simple connection pooler : > pool = SimpleConnectionPool(1, 3, connection_string) > > if I add async option: > pool = SimpleConnectionPool(1, 3, connection_string, async=1) > > I've got an error, than I can't understand: > File "/usr/lib/pymodules/python2.6/sqlalchemy/engine/base.py", line 940, > in __create_execution_context > self._handle_dbapi_exception(e, kwargs.get('statement', None), > kwargs.get('parameters', None), None, None) > File "/usr/lib/pymodules/python2.6/sqlalchemy/engine/base.py", line 931, > in _handle_dbapi_exception > raise exc.DBAPIError.instance(statement, parameters, e, > connection_invalidated=is_disconnect) > OperationalError: (OperationalError) asynchronous connection attempt > underway None [{}] > > Do I understand that when using the gevent, I have to use async option? I leave that to psycopg guys to answer. -- marko