executeQuery and busy waiting - Mailing list pgsql-jdbc

From Garrick Dasbach
Subject executeQuery and busy waiting
Date
Msg-id 1056739442.24233.21.camel@bock
Whole thread Raw
Responses Re: executeQuery and busy waiting
List pgsql-jdbc
I'm working on a project with Postgresql and I'm running into a strange
problem.

I have a Java Program running on the Database server that periodicly
connects to the Database and runs a pl/pgsql function.  This function
should run fairly fast, but could take several minutes based on the load
of the server and amount of information it needs to process.

Running the function from psql takes 40 seconds under no load and
minimal data, but when I run the function from java using JDBC it takes
20-30 minutes.

Checking top, this is a Linux system, I see that the java program takes
up 99% of the CPU when it's running this function through executeQuery.
Is executeQuery() doing a busy wait for the data from postgres?  It
seems a bit absurd that the executeQuery method would hijack 99% of the
CPU waiting for results and slowing everything else on the system down.

The second problem I am noticing is that if I move the java program to
another machine, to keep java from stealing all the CPU cycles, the
function still takes 20-30 minutes to run through java, but only takes
40 seconds to run through psql.  What's the deal?

Any help would be appreciated.

Garrick Dasbach

Software Developer
MusicRebellion.com, Inc.
Garrick@musicrebellion.com


pgsql-jdbc by date:

Previous
From: Manuel Gil Pérez
Date:
Subject: [PATCHES] IPv6 patch doesn't work fine
Next
From: Dave Cramer
Date:
Subject: Re: executeQuery and busy waiting