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

Sponsored Links





Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive | Programming forum archive

Copyright 2008 droptable.com