You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2020/08/05 08:21:00 UTC

[jira] [Commented] (HTTPCORE-639) Add a configurable ResponseOutOfOrder strategy for DefaultBHttpClientConnection

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

ASF subversion and git services commented on HTTPCORE-639:
----------------------------------------------------------

Commit eacb0d30c54cd9e8cd1254e51520f89e86c90fc2 in httpcomponents-core's branch refs/heads/5.1.x from Carter Kozak
[ https://gitbox.apache.org/repos/asf?p=httpcomponents-core.git;h=eacb0d3 ]

HTTPCORE-639: Add a configurable ResponseOutOfOrder strategy for DefaultBHttpClientConnection

This adds a configurable ResponseOutOfOrderStrategy in place of the
previous always-enabled behavior, and uses the no-op
NoResponseOutOfOrderStrategy implementation by default.

The previous behavior can be used by selecting the
MonitoringResponseOutOfOrderStrategy, which has been updated
to support more flexible behavior. Note that this strategy
results in a 1 ms pause for every chunk transferred, limiting
upload speed using the default 8 KiB chunk size to at most
8 MiB/second.

The original discussion can be found on the mailing list:
https://www.mail-archive.com/httpclient-users@hc.apache.org/msg09911.html

This closes #206


> Add a configurable ResponseOutOfOrder strategy for DefaultBHttpClientConnection
> -------------------------------------------------------------------------------
>
>                 Key: HTTPCORE-639
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-639
>             Project: HttpComponents HttpCore
>          Issue Type: New Feature
>          Components: HttpCore
>            Reporter: Carter Kozak
>            Assignee: Michael Osipov
>            Priority: Major
>             Fix For: 5.1
>
>          Time Spent: 13h 20m
>  Remaining Estimate: 0h
>
> In a known environment where the server fully reads full request bodies before sending a response, I would like to disable the expensive checkForEarlyResponse checks implemented by DefaultBHttpClientConnection.sendRequestEntity.
> Using TLS the check blocks for 1ms every 8kb, which limits the upload rate to at most eight megabytes per second, relatively low in a data-center environment.
> Proposed interface:
> {code:java}
> public interface ResponseOutOfOrderStrategy {
>     /**
>      * Returns the interval in bytes describing how often the socket is checked for an out-of-order response.
>      * The default implementation uses 8kb. A value of zero results in checks being disabled, this may result
>      * in requests blocking until the socket timeout is reached while a server sends an out-of-order response.
>      */
>     int determineResponseCheckIntervalBytes(ClassicHttpRequest request, Socket socket);
> }
> {code}
> I'd be happy to implement and contribute such a feature if you agree that it's reasonable.
> I appreciate any input and feedback you can provide!



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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