pg.ddx.io pgsql-interfaces@postgresql.org mailing list archive
help / color / mirror / Atom feedClient libraries supporting pipelining
5+ messages / 4 participants
[nested] [flat]
* Client libraries supporting pipelining
@ 2006-02-13 20:59 Florian Weimer <fw@deneb.enyo.de>
2006-02-13 21:07 ` Re: Client libraries supporting pipelining Kris Jurka <books@ejurka.com>
2006-02-13 21:22 ` Re: Client libraries supporting pipelining James William Pye <pgsql@jwp.name>
2006-02-14 03:30 ` Re: Client libraries supporting pipelining Jeroen T. Vermeulen <jtv@xs4all.nl>
0 siblings, 3 replies; 5+ messages in thread
From: Florian Weimer @ 2006-02-13 20:59 UTC (permalink / raw)
To: pgsql-interfaces
Which client libraries support pipelining, to reduce server
round-trips?
It seems that the protocol and libpq supports it, but are there any
bindings for high-level languages yet? I would like to avoid using C
directly if at all possible.
^ permalink raw reply [nested|flat] 5+ messages in thread
* Re: Client libraries supporting pipelining
2006-02-13 20:59 Client libraries supporting pipelining Florian Weimer <fw@deneb.enyo.de>
@ 2006-02-13 21:07 ` Kris Jurka <books@ejurka.com>
2 siblings, 0 replies; 5+ messages in thread
From: Kris Jurka @ 2006-02-13 21:07 UTC (permalink / raw)
To: Florian Weimer <fw@deneb.enyo.de>; +Cc: pgsql-interfaces
On Mon, 13 Feb 2006, Florian Weimer wrote:
> Which client libraries support pipelining, to reduce server
> round-trips?
JDBC supports batch execution for INSERT, UPDATE, and DELETE via
[Prepared]Statement.addBatch(). Support for multiple ResultSets is
available by concatenating queries with ; and sending them in the standard
fashion.
Kris Jurka
^ permalink raw reply [nested|flat] 5+ messages in thread
* Re: Client libraries supporting pipelining
2006-02-13 20:59 Client libraries supporting pipelining Florian Weimer <fw@deneb.enyo.de>
@ 2006-02-13 21:22 ` James William Pye <pgsql@jwp.name>
2006-02-13 21:29 ` Re: Client libraries supporting pipelining Florian Weimer <fw@deneb.enyo.de>
2 siblings, 1 reply; 5+ messages in thread
From: James William Pye @ 2006-02-13 21:22 UTC (permalink / raw)
To: Florian Weimer <fw@deneb.enyo.de>; +Cc: pgsql-interfaces
On Mon, Feb 13, 2006 at 09:59:06PM +0100, Florian Weimer wrote:
> It seems that the protocol and libpq supports it, but are there any
> bindings for high-level languages yet? I would like to avoid using C
> directly if at all possible.
There are many many libpq bindings for many many languages. There's also a
few PQ protocol implementations aside from libpq, most of which are not in C.
Google for em': postgresql <language> driver
--
Regards, James William Pye
^ permalink raw reply [nested|flat] 5+ messages in thread
* Re: Client libraries supporting pipelining
2006-02-13 20:59 Client libraries supporting pipelining Florian Weimer <fw@deneb.enyo.de>
2006-02-13 21:22 ` Re: Client libraries supporting pipelining James William Pye <pgsql@jwp.name>
@ 2006-02-13 21:29 ` Florian Weimer <fw@deneb.enyo.de>
0 siblings, 0 replies; 5+ messages in thread
From: Florian Weimer @ 2006-02-13 21:29 UTC (permalink / raw)
To: James William Pye <pgsql@jwp.name>; +Cc: pgsql-interfaces
* James William Pye:
> There are many many libpq bindings for many many languages. There's
> also a few PQ protocol implementations aside from libpq, most of
> which are not in C.
Yes, but not many of them provide access to the batching interfaces
(PQsendQueryPrepared and friends).
^ permalink raw reply [nested|flat] 5+ messages in thread
* Re: Client libraries supporting pipelining
2006-02-13 20:59 Client libraries supporting pipelining Florian Weimer <fw@deneb.enyo.de>
@ 2006-02-14 03:30 ` Jeroen T. Vermeulen <jtv@xs4all.nl>
2 siblings, 0 replies; 5+ messages in thread
From: Jeroen T. Vermeulen @ 2006-02-14 03:30 UTC (permalink / raw)
To: Florian Weimer <fw@deneb.enyo.de>; +Cc: pgsql-interfaces
On Tue, February 14, 2006 03:59, Florian Weimer wrote:
> Which client libraries support pipelining, to reduce server
> round-trips?
The C++ interface libpqxx does support pipelining of queries--but perhaps
not quite at the level you had in mind.
Its "pipeline" class transparently batches up queries and lets you go off
to do useful stuff on the client side while they are being submitted and
processed. Thus it provides both "split-transaction" operation to hide
latency and batch submission to reduce the number of roundtrips. You get
to influence when the current batch is sent off, through a minimal
interface. Normal operation consists of inserting queries in the one end
and retrieving results out the other.
This is not an extremely sophisticated mechanism, however. It doesn't do
any client-side background processing, and it doesn't transparently
prepare statements before executing them. You could still prepare them
yourself, of course--or if it really helps to do so automatically, that
could be implemented under the existing API.
You can find libpqxx at http://thaiopensource.org/development/libpqxx/
Jeroen
^ permalink raw reply [nested|flat] 5+ messages in thread
end of thread, other threads:[~2006-02-14 03:30 UTC | newest]
Thread overview: 5+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2006-02-13 20:59 Client libraries supporting pipelining Florian Weimer <fw@deneb.enyo.de>
2006-02-13 21:07 ` Kris Jurka <books@ejurka.com>
2006-02-13 21:22 ` James William Pye <pgsql@jwp.name>
2006-02-13 21:29 ` Florian Weimer <fw@deneb.enyo.de>
2006-02-14 03:30 ` Jeroen T. Vermeulen <jtv@xs4all.nl>
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox