Re: NIO support - Mailing list pgsql-jdbc

From Віталій Тимчишин
Subject Re: NIO support
Date
Msg-id CABWW-d2Eq=+jovwFavsJe8Gfc3jqT=mX6OuosrRMfF=etYcBgg@mail.gmail.com
Whole thread Raw
In response to Re: NIO support  (Dave Cramer <pg@fastcrypt.com>)
Responses Re: NIO support
List 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@fastcrypt.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@gmail.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@gmail.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@postgresql.org)
>>> To make changes to your subscription:
>>> http://www.postgresql.org/mailpref/pgsql-jdbc
>>>
>



--
Best regards,
 Vitalii Tymchyshyn

pgsql-jdbc by date:

Previous
From: Kris Jurka
Date:
Subject: Re: test git conversion
Next
From: John Lister
Date:
Subject: Java 1.4