[ 
https://issues.apache.org/jira/browse/HTTPCORE-484?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16531076#comment-16531076
 ] 

ASF GitHub Bot commented on HTTPCORE-484:
-----------------------------------------

GitHub user xiaohu-zhang opened a pull request:

    https://github.com/apache/httpcomponents-core/pull/66

    Use TimeWheel algorithm instead of loop when check timeout

    HashedWheelTimer and related util classes are copied from netty framework 
with tiny changes.
    use TimeWheel algorithm  to deal with both connect time out and read time 
out.
    related with HTTPCORE-484

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/xiaohu-zhang/httpcomponents-core TimeWheel

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/httpcomponents-core/pull/66.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #66
    
----
commit 4d7a18420cd66dd17387b845b324b241281d7fcc
Author: xiaohu-zhang <silver9886@...>
Date:   2017-08-29T14:11:24Z

    setting time limit on processPending methods
    
    setting time limit to avoid the SingleCoreIOReactor's time be exhausted
    and then  block the remaining work to do.

commit b6043b3aa94c65b23bb39804342a7826dc236eae
Author: xiaohu-zhang <silver9886@...>
Date:   2017-08-30T03:27:04Z

    Merge branch 'master' of 
https://github.com/apache/httpcomponents-core/commits/master

commit 0f58c65f06f0defd5c03b8e21c76e5ce533796e5
Author: xiaohu-zhang <silver9886@...>
Date:   2017-09-04T11:02:50Z

    Merge branch 'master' of https://github.com/apache/httpcomponents-core
    
    # Conflicts:
    #   
httpcore5/src/main/java/org/apache/hc/core5/reactor/SingleCoreIOReactor.java

commit 1cd22c701259a61207d538d0881a04484b9ca405
Author: xiaohu-zhang <silver9886@...>
Date:   2017-09-06T13:33:35Z

    Merge branch 'master' of https://github.com/apache/httpcomponents-core

commit 9f28dcfa49979a6f0c0bf6312749f3daca8c8bd3
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-09-06T14:42:50Z

    HTTPCORE-489: tweak SSL protocol mismatch test case to work around the 
problem with intermittent failures on Windows

commit 3b0bbac649499e2d1ecb1b089e29af72a93f37ca
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-09-27T15:55:24Z

    Drop oraclejdk7 from the Travis-CI build

commit 3eae2ab92d9aed582f2346fe0de55b1a6080fd41
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-09-28T20:31:07Z

    Fixed header logging in non-blocking client and server protocol handlers

commit a0c624056b2870c9af791beb5b4faa14cb392058
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-09-29T14:42:34Z

    Make basic string, byte array and file entity producers repeatable

commit d07a2a78466e3ccf2e4054c4306d55c0e3d896a8
Author: Gary Gregory <garydgregory@...>
Date:   2017-10-05T17:48:49Z

    [HTTPCORE-494] Add image constants to ContentType.

commit e81d893f36f4a9231b74d8a6feb620beb316b340
Author: Gary Gregory <garydgregory@...>
Date:   2017-10-05T18:06:53Z

    [HTTPCORE-494] Add image constants to ContentType.

commit f6906ed18e56d5163dd2a2dfa0f9669a834aa91d
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-16T14:06:13Z

    Fixed handling of relative request paths in BasicHttpRequest

commit ba88cc43d6c1062a611cba3d65b49ff95a87adcd
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-20T09:35:57Z

    Silence doclint warning about missing @param and @throws

commit d839711bd93871cb980cc7808dc2a9e899e5f867
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-20T11:36:42Z

    HTTPCORE-495: add context details to ParseException

commit 7cf31a110768f2d8cdac0cfbcdd8cf619cc59598
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-20T12:30:04Z

    Upgraded httpcomponents-parent to version 9

commit c1c391c4c19cb4601904f25482cb7f0b4e0489b1
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-20T14:39:53Z

    Compatibility with Java 9 (tested with Oracle JDK 9.0.1)

commit d9ac44e9712b251567f4191b853f66f193a2164d
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-20T14:45:51Z

    Added Oracle JDK 9 to Travis CI config

commit ced6ad940893a99d90e4002c68de86be89baa3cb
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-20T14:51:47Z

    Revert "Silence doclint warning about missing @param and @throws"
    
    This reverts commit e948fb1cb4090264a7bb078945d63fd31c5793b5.

commit 0ba626fa834748b8d96712a4c3751bdbfbac20b4
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-22T12:05:48Z

    Default I/O reactors to allow null IOReactorConfig parameter

commit 69b30da7cb7d20d370c68dba1a2983c2f37c9e19
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-22T12:17:41Z

    Renamed HTTP/2 TLS example (no functional changes)

commit 41d7b1ad194dec748644c08713be616049a19f07
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-24T11:31:01Z

    Added functional Transformation and Resolver interfaces

commit f779f007018cf9596cb9e479b5f14a344e774676
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-24T12:01:03Z

    Moved last read / write even time tracking from the I/O reactor to I/O 
sessions

commit d35a76f4c729cb0dc8ce7b4614773e88f231fd0f
Author: aleh_struneuski <aleh_struneuski@...>
Date:   2017-10-25T10:26:15Z

    HTTPCLIENT-1876: Improve the buildString() method in URIBuilder

commit e8d41ba68e7895596220060c69c65ac462e30600
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-25T11:19:51Z

    Added default HttpHost to InetSocketAddress resolver

commit 5370795ba3bc6dc063edcc0007cdc12853a0837a
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-27T12:56:05Z

    Upgraded HC Parent to version 10

commit 31820135474e9a4f61366650f5cdda7f93f7c483
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-27T13:09:33Z

    Fixed style check violations (no functional changes)

commit 3cb0c3b099a684440b6da799cd07b6e136fd2ec6
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-28T11:02:25Z

    Shared I/O session and HTTP/2 connection pool implementations

commit f7e1f40fd0eadcf6dd23876b2b9db8fe32009354
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-31T08:44:40Z

    Moved remote setting ack check in HTTP/2 stream multiplexer output code

commit 13b5fdeace3d341bef3824572657fe38f75c95d6
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-10-31T09:41:54Z

    HTTP/2 multiplexing requester

commit 5e6b9849c212eb6526e7771af5f2dbc4fef4ec8e
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-11-01T13:54:43Z

    Updated repository details and references to implemented RFCs in DOAP

commit 0a6117521857fafd55ae87e27f0e05a81744d38c
Author: Oleg Kalnichevski <olegk@...>
Date:   2017-11-01T15:35:07Z

    Updated release notes for HttpCore 5.0-beta1 release

----


> check timeout could use TimeWheel algorithm
> -------------------------------------------
>
>                 Key: HTTPCORE-484
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-484
>             Project: HttpComponents HttpCore
>          Issue Type: Improvement
>          Components: HttpCore NIO
>    Affects Versions: 4.4.6
>            Reporter: silver9886
>            Priority: Major
>             Fix For: 5.0
>
>
> check time out every this.selectTimeout,and had to iterator all the 
> SelectionKeys.
> it is not efficient nor accurate when their is a lot of SelectionKeys.
> I suggest use the TimeWheel algorithm when check the channel time out just
> as netty do.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org

Reply via email to