Skip site navigation (1) Skip section navigation (2)

Re: NIO support

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Vitalii Tymchyshyn <tivv00(at)gmail(dot)com>
Cc: PG-JDBC Mailing List <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: NIO support
Date: 2012-01-20 14:06:35
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-jdbc

 Does this compile and run on java 1.4 ?

Thanks for the note on the current bug.

Dave Cramer


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
>> 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:

In response to


pgsql-jdbc by date

Next:From: David JohnstonDate: 2012-01-20 14:22:43
Subject: Re: plpgsql function, comment with single quote, braces
Previous:From: Vitalii TymchyshynDate: 2012-01-20 13:54:23
Subject: Re: NIO support

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group