Re: Drop support for jdk 1.1, 1.2 ? - Mailing list pgsql-jdbc

From Oliver Jowett
Subject Re: Drop support for jdk 1.1, 1.2 ?
Date
Msg-id 3FF35E6D.4090407@opencloud.com
Whole thread Raw
In response to Re: Drop support for jdk 1.1, 1.2 ?  (Kris Jurka <books@ejurka.com>)
List pgsql-jdbc
Kris Jurka wrote:

>
> On 29 Dec 2003, Dave Cramer wrote:
>
>
>>As we are going to be moving to gborg, it is an opportunity to do some
>>reorganization, one way of simplifying the driver is to drop support for
>>some old jvm's.
>>
>>Is this a problem for anyone?
>
>
> This is more of a general user survey for how the driver is used and
> developed.  With the upcoming physical move of the driver source code to
> http://gborg.postgresql.org/ from the main project's cvs repository we
> were wondering if there are other changes that should be made?  For
> example:
>
> What JVMs does the latest version of the driver need to support?  Are you
> likely to upgrade your 7.1 database to 7.4 without upgrading the JVM at
> the same time?
>
> What server versions does the latest version of the driver need to
> support?  Are you using a driver from a new server against an older one to
> get some of the fixes/features or do you just download/build the driver
> for the server version you are on?

We run 1.4.2 JVMs with drivers built from CVS + patches, against 7.3.x
(soon 7.4.x) servers.

Dropping 1.1 support would make modifying the driver a lot easier for me.

If we drop 1.1 support, can we also drop JDBC1 support? That is, not
separating out a JDBC1-only build as we currently do. The main problem
with merging JDBC1 and JDBC2 implementations currently is that JDBC2
depends on JDK 1.2 collection classes (java.util.Map etc). Merging that
code would make bits like correct scrollable resultset support much simpler.

Is there anyone using JDK >=1.2 but not JDBC2?

Is there a real benefit to dropping 1.2 support? It doesn't affect me
but seems a bit aggressive. The 1.2 -> 1.3 -> 1.4 API changes aren't
particularly large (as used by the driver, anyway). The main argument
for dropping 1.2 that I can see is that it reduces the number of JVMs
that need testing.

> What features are you sorely in need of that are either unimplemented or
> don't work as advertised?

Efficient batch insert/update support -- either a real implementation of
batch updates, or a clean COPY interface. Currently, doing 100k inserts
via JDBC to a remote database kills us because of the network roundtrip
latency involved in doing each insert separately. I can batch the
inserts into a single query in the application but that's a) nonportable
[well, so is COPY] and b) ugly -- the driver should be doing this, not
the app -- that's why JDBC has a batch-update interface!

Robust query timeout and cancellation support. This might need API
extensions since the JDBC cancel() API seems fundamentally broken. I'm
not convinced that the current backend cancellation protocol is safe in
all cases either (what if the cancel arrives before the query, due to a
delay in the connection delivering the query?).

Reducing the garbage generated by the driver (mostly double-handling of
parameter/result data) would be nice to have. Our system needs low-pause
collections, and the best way to reduce GC pauses is to not generate the
garbage in the first place.

All of the above are on my radar for eventually implementing, but I'm
short on time for JDBC hacking at the moment.

-O


pgsql-jdbc by date:

Previous
From: Dave Cramer
Date:
Subject: Re: ordering of results returned from
Next
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] PL/Java issues