|
Home > Archive > PostgreSQL JDBC > November 2005 > Non-blocking SQL Execution
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Non-blocking SQL Execution
|
|
| Logan Bowers 2005-10-31, 8:24 pm |
| Hello,
(sorry if this comes through twice)
I'm running a web application that needs to run several queries against
several databases
to satisfy a single request. To minimize latency I'd like to be able to
issue
"<PreparedStatement Object>.executeQuery()" on each connection, allow
the servers to
execute the queries in parallel, and then only block when I attempt to
fetch the first
row.
My anecdotal experience with JDBC drivers in general are that they block
when you attempt
to execute the query, not when you attempt to retrieve data. Is this
the case for the
Postgres driver? Does anyone have a feel for how hard it would be to
modify the driver
allow queries to be executed in the background? Thanks!
Logan Bowers
| |
| Dave Cramer 2005-10-31, 8:24 pm |
| It's probably easier to create a non-blocking thread which
encapsulates the driver
And yes, the postgres driver blocks on the execute.
Dave
On 31-Oct-05, at 7:06 PM, Logan Bowers wrote:
> Hello,
>
>
>
> (sorry if this comes through twice)
>
>
>
> I'm running a web application that needs to run several queries
> against several databases
>
> to satisfy a single request. To minimize latency I'd like to be
> able to issue
>
> "<PreparedStatement Object>.executeQuery()" on each connection,
> allow the servers to
>
> execute the queries in parallel, and then only block when I attempt
> to fetch the first
>
> row.
>
>
>
> My anecdotal experience with JDBC drivers in general are that they
> block when you attempt
>
> to execute the query, not when you attempt to retrieve data. Is
> this the case for the
>
> Postgres driver? Does anyone have a feel for how hard it would be
> to modify the driver
>
> allow queries to be executed in the background? Thanks!
>
>
>
> Logan Bowers
>
>
>
>
| |
| Logan Bowers 2005-10-31, 8:24 pm |
| Ah yes, I like this strategy, it will actually make things easier in my
application for dealing with timeouts and such (since they can be
handled in the thread). Thanks!
Logan Bowers
____________________
____________
From: Dave Cramer & #91;mailto:pg@fastcr
ypt.com]
Sent: Monday, October 31, 2005 4:50 PM
To: Logan Bowers
Cc: pgsql-jdbc@postgresql.org
Subject: Re: [JDBC] Non-blocking SQL Execution
It's probably easier to create a non-blocking thread which encapsulates
the driver
And yes, the postgres driver blocks on the execute.
Dave
On 31-Oct-05, at 7:06 PM, Logan Bowers wrote:
Hello,
(sorry if this comes through twice)
I'm running a web application that needs to run several queries against
several databases
to satisfy a single request. To minimize latency I'd like to be able to
issue
"<PreparedStatement Object>.executeQuery()" on each connection, allow
the servers to
execute the queries in parallel, and then only block when I attempt to
fetch the first
row.
My anecdotal experience with JDBC drivers in general are that they block
when you attempt
to execute the query, not when you attempt to retrieve data. Is this
the case for the
Postgres driver? Does anyone have a feel for how hard it would be to
modify the driver
allow queries to be executed in the background? Thanks!
Logan Bowers
| |
| Craig Servin 2005-11-01, 11:23 am |
| If your using a 1.5 JDK a java.util.concurrent.FutureTask is a nice way to do
this.
On Monday 31 October 2005 06:57 pm, Logan Bowers wrote:
> Ah yes, I like this strategy, it will actually make things easier in my
> application for dealing with timeouts and such (since they can be
> handled in the thread). Thanks!
>
>
>
> Logan Bowers
>
>
>
> ____________________
____________
>
> From: Dave Cramer & #91;mailto:pg@fastcr
ypt.com]
> Sent: Monday, October 31, 2005 4:50 PM
> To: Logan Bowers
> Cc: pgsql-jdbc@postgresql.org
> Subject: Re: [JDBC] Non-blocking SQL Execution
>
>
>
> It's probably easier to create a non-blocking thread which encapsulates
> the driver
>
>
>
> And yes, the postgres driver blocks on the execute.
>
>
>
> Dave
>
> On 31-Oct-05, at 7:06 PM, Logan Bowers wrote:
>
>
>
>
>
> Hello,
>
>
>
> (sorry if this comes through twice)
>
>
>
> I'm running a web application that needs to run several queries against
> several databases
>
> to satisfy a single request. To minimize latency I'd like to be able to
> issue
>
> "<PreparedStatement Object>.executeQuery()" on each connection, allow
> the servers to
>
> execute the queries in parallel, and then only block when I attempt to
> fetch the first
>
> row.
>
>
>
> My anecdotal experience with JDBC drivers in general are that they block
> when you attempt
>
> to execute the query, not when you attempt to retrieve data. Is this
> the case for the
>
> Postgres driver? Does anyone have a feel for how hard it would be to
> modify the driver
>
> allow queries to be executed in the background? Thanks!
>
>
>
> Logan Bowers
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend
|
|
|
|
|