Re: Prepared Statements vs. pgbouncer

From: Josh Berkus <josh(at)agliodbs(dot)com>
To: Paul Lindner <lindner(at)inuus(dot)com>
Cc: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>, Oliver Jowett <oliver(at)opencloud(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Prepared Statements vs. pgbouncer
Date: 2007-10-01 19:49:18
Message-ID: 200710011249.19142.josh@agliodbs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Paul,

> PREPARE IF NOT EXISTS foo() AS xxxx
> PREPARE OR REPLACE foo() AS xxxx
> DEALLLOCATE IF EXISTS foo;

This has been a request of various app developers anyway. Mind you, they
want it mostly to support sloppy programming, but it would make it easier
to port applications from MySQL.

> Or fix the general case and allow for a way to catch errors without
> invalidating the transaction.

heh, that would be a major PostgreSQL change.

> * make it possible to request server-side state be transaction-scoped.
> For example, prepared-statements, temporary tables, and the like
> could be cleaned up at the end of a transaction automatically. Some
> of this behavior exists already:

This would rather limit the utility of prepared plans.

> * Have server-side support for 'pooled' connections. If you request a
> pooled connection then certain features will be disabled to insure
> that server-side state is contained properly.
>
> This could be specified on connection, or perhaps it could be
> specified as a user attribute...
>
> For example, if this was in place no session state modifications
> could occur outside a transaction.

I don't see that this would fix the issue with JDBC.

> * Have some way of dumping and restoring transient state. This would
> allow pgbouncer to preserve client state without having to intercept
> and track all of the various temporary information. Something
> simple like this would suffice.
> .. or ..
> Have the database itself track client state separate from backend
> processes.

This approach seems incompatible with the goal of using pgBouncer in the
first place, namely scalability.

Basically, I see two things we need to do. In the short term, we need some
kind of fix for pgBouncer so it at least works with JDBC. In the long
term, we should work on support for shared prepared plans.

--
--Josh

Josh Berkus
PostgreSQL @ Sun
San Francisco

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dave Cramer 2007-10-01 20:06:49 statement caching link on jdbc page
Previous Message Paul Lindner 2007-10-01 19:31:53 Re: Prepared Statements vs. pgbouncer