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

Steve Loughran commented on HADOOP-18915:
-----------------------------------------

Here are the default timeouts in the synchronous client  as defined in 
{{software.amazon.awssdk.http.SdkHttpConfigurationOption}}. The 10s acquisition 
timeout is important as if the connection pool is overloaded, this will trigger 
fast.

{code}

    /**
     * The maximum amount of time that a TLS handshake is allowed to take from 
the time the CLIENT HELLO
     * message is sent to the time the client and server have fully negotiated 
ciphers and exchanged keys.
     *
     * <p>
     * If not specified, the default value will be the same as the resolved 
{@link #CONNECTION_TIMEOUT}.
     */
    public static final SdkHttpConfigurationOption<Duration> 
TLS_NEGOTIATION_TIMEOUT =
        new SdkHttpConfigurationOption<>("TlsNegotiationTimeout", 
Duration.class);

    private static final Duration DEFAULT_SOCKET_READ_TIMEOUT = 
Duration.ofSeconds(30);
    private static final Duration DEFAULT_SOCKET_WRITE_TIMEOUT = 
Duration.ofSeconds(30);
    private static final Duration DEFAULT_CONNECTION_TIMEOUT = 
Duration.ofSeconds(2);
    private static final Duration DEFAULT_CONNECTION_ACQUIRE_TIMEOUT = 
Duration.ofSeconds(10);
    private static final Duration DEFAULT_CONNECTION_MAX_IDLE_TIMEOUT = 
Duration.ofSeconds(60);
    private static final Duration DEFAULT_CONNECTION_TIME_TO_LIVE = 
Duration.ZERO;
    /**
     * 5 seconds = 3 seconds (RTO for 2 packets loss) + 2 seconds (startup 
latency and RTT buffer)
     */
    private static final Duration DEFAULT_TLS_NEGOTIATION_TIMEOUT = 
Duration.ofSeconds(5);
    private static final Boolean DEFAULT_REAP_IDLE_CONNECTIONS = Boolean.TRUE;
    private static final int DEFAULT_MAX_CONNECTIONS = 50;
    private static final int DEFAULT_MAX_CONNECTION_ACQUIRES = 10_000;
    private static final Boolean DEFAULT_TCP_KEEPALIVE = Boolean.FALSE;
    private static final Boolean DEFAULT_TRUST_ALL_CERTIFICATES = Boolean.FALSE;

    private static final Protocol DEFAULT_PROTOCOL = Protocol.HTTP1_1;


{code}


> S3A client builder to use getTImeDuration() for HTTP timeouts
> -------------------------------------------------------------
>
>                 Key: HADOOP-18915
>                 URL: https://issues.apache.org/jira/browse/HADOOP-18915
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs/s3
>    Affects Versions: 3.4.0
>            Reporter: Ahmar Suhail
>            Assignee: Steve Loughran
>            Priority: Major
>              Labels: pull-request-available
>
> In the client config builders, when [setting 
> timeouts|https://github.com/apache/hadoop/blob/trunk/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/impl/AWSClientConfig.java#L120],
>  it uses Duration.ofSeconds(), configs all use milliseconds so this needs to 
> be updated to Duration.ofMillis().
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to