Re: NIO support

From: Віталій Тимчишин <tivv00(at)gmail(dot)com>
To: Dave Cramer <pg(at)fastcrypt(dot)com>
Cc: PG-JDBC Mailing List <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: NIO support
Date: 2012-01-21 22:22:35
Message-ID: CABWW-d2Eq=+jovwFavsJe8Gfc3jqT=mX6OuosrRMfF=etYcBgg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hello.

I've fixed 1.4.2 compiling problems (moved from PriorityQueue to TreeSet +
removed some generics). Tests pass on 1.4.2.
I've created a fork from your github repository as it's much easier to work
with. New patch is here:
https://github.com/tivv/pgjdbc/commit/4321cdb7439fa1aaddca4ba925a952792e531c82
Are there any hints/guides on running SSL tests?

Best regards, Vitalii Tymchyshyn

20 січня 2012 р. 16:06 Dave Cramer <pg(at)fastcrypt(dot)com> написав:

> Vitalii,
>
> Does this compile and run on java 1.4 ?
>
> Thanks for the note on the current bug.
>
> Dave Cramer
>
> dave.cramer(at)credativ(dot)ca
> http://www.credativ.ca
>
>
>
> On Fri, Jan 20, 2012 at 8:54 AM, Vitalii Tymchyshyn <tivv00(at)gmail(dot)com>
> wrote:
> > Hello.
> >
> > This patch provides timeouts without additional threads.
> > I am going to enhance it to additionally solve next problems (as for me
> this
> > problem are easily solvable with NIO):
> > 1) DeadLock when client and server send buffers fill up. This is rare
> case
> > because it requires query to start generation output (e.g. notices)
> before
> > all query data is sent to server. AFAIR this can be provoked by copying
> to
> > table with trigger outputting notices.
> > 2) When SSL is enabled, getNotifications does not return notifications
> until
> > server is asked for anything.
> >
> > Also move to NIO may produce better performance, but this is still
> something
> > to be checked. It may be needed to select carefully if Heap or Off-heap
> > buffers should be used to get performance benefit.
> >
> > P.S. Unrelated to NIO, current setQueryTimeout code has bug since it
> treats
> > timeout as being specified in milliseconds, while javadoc says it's in
> > seconds.
> >
> > 20.01.12 14:05, Dave Cramer написав(ла):
> >
> >> Can you confirm that this patch is just to add time out ?
> >>
> >> If not can you outline what problem you are trying to solve ?
> >>
> >> Dave Cramer
> >>
> >> dave.cramer(at)credativ(dot)ca
> >> http://www.credativ.ca
> >>
> >>
> >>
> >> 2012/1/19 Віталій Тимчишин<tivv00(at)gmail(dot)com>:
> >>>
> >>> OK, I finally have first try of NIO support in the patch attached.
> >>> The only current feature is query timeout without any additional
> threads.
> >>> Please note that current driver has a bug: JDBC specs says timeout is
> in
> >>> seconds and driver takes it as millis, fixed in my patch.
> >>> Also current query timeout schema limitation is that query timeout
> >>> processing still requires server round trips that are not under timeout
> >>> control. I really don't see how much this differ from simply setting
> >>> server-side timeout for fast connections. For slow connections it's
> still
> >>> unreliable. Good thing that it is may be possible to enforce some kind
> of
> >>> hard timeout with NIO schema as it's easy to control blocking calls.
> >>> Limitations: only for V3 non-secure connections. Other connections use
> >>> regular stream-based implementation.
> >>> Planned features:
> >>> * SSL with NIO. This should allow to receive notifications without
> >>> server
> >>> roundtrip in SSL mode
> >>> * Read answer while sending query. This should make go away the
> problem
> >>> when large query is blocked because answer must be read to send more
> data
> >>> to
> >>> server.
> >>>
> >>> Note that I have never worked with CVS and have problems to make patch
> >>> with
> >>> new files (AFAICS I can't add it to CVS with RO access).
> >>> Comments are welcome.
> >>> P.S. To work with SSL I need to start SSL tests. Any hints?
> >>>
> >>> --
> >>> Best regards,
> >>> Vitalii Tymchyshyn
> >>>
> >>>
> >>> --
> >>> Sent via pgsql-jdbc mailing list (pgsql-jdbc(at)postgresql(dot)org)
> >>> To make changes to your subscription:
> >>> http://www.postgresql.org/mailpref/pgsql-jdbc
> >>>
> >
>

--
Best regards,
Vitalii Tymchyshyn

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message John Lister 2012-01-21 22:26:40 Java 1.4
Previous Message Kris Jurka 2012-01-20 23:02:57 Re: test git conversion