Re: psycopg and gevent with pgbouncer

From: Marko Kreen <markokr(at)gmail(dot)com>
To: Raoul Duke <knevcher(at)gmail(dot)com>
Cc: psycopg(at)postgresql(dot)org
Subject: Re: psycopg and gevent with pgbouncer
Date: 2011-10-06 08:54:06
Message-ID: CACMqXCJGsixGO851HiXocEyh_OW33GTqBp42ufyw0nfm-rk-DQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: psycopg

On Thu, Oct 6, 2011 at 10:45 AM, Raoul Duke <knevcher(at)gmail(dot)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(at)10(dot)58(dot)65(dot)143:39380 login successful: db=database user=user
> 2011-10-05 13:00:52.941 26120 LOG C-0x7eb5a0:
> database/user(at)10(dot)58(dot)65(dot)143:39378 login successful: db=database user=user
> 2011-10-05 13:00:52.942 26120 LOG C-0x7ecfe0:
> database/user(at)10(dot)58(dot)65(dot)143:39377 login successful: db=database user=user
> 2011-10-05 13:00:52.948 26120 LOG C-0x7ea5e0:
> database/user(at)10(dot)58(dot)65(dot)143:39293 closing because: client close request
> (age=0)
> 2011-10-05 13:00:52.978 26120 LOG C-0x7ea880:
> database/user(at)10(dot)58(dot)65(dot)143:39381 login successful: db=database user=user
> 2011-10-05 13:00:52.978 26120 LOG C-0x7ea340:
> database/user(at)10(dot)58(dot)65(dot)143:39315 closing because: client close request
> (age=0)
> 2011-10-05 13:00:52.993 26120 LOG C-0x7ec2c0:
> database/user(at)10(dot)58(dot)65(dot)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

In response to

Responses

Browse psycopg by date

  From Date Subject
Next Message Daniele Varrazzo 2011-10-06 10:16:51 Re: Hstore array implementation.
Previous Message Raoul Duke 2011-10-06 08:45:35 psycopg and gevent with pgbouncer