hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nicolas Liochon (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-11492) The servers do not honor the tcpNoDelay option
Date Fri, 11 Jul 2014 17:38:05 GMT

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

Nicolas Liochon commented on HBASE-11492:
-----------------------------------------

here are the changes. Some parameters were defined twice but the only difference was on tcpnodelay.
{noformat}
ipc.server.listen.queue.size
hbase code 128
in hadoop common yes 128
in hbase conf files no

ipc.server.max.callqueue.size
in hadoop common no
in hbase conf files no

ipc.server.read.threadpool.size
hbase code 10
in hadoop common no
in hbase conf files no

ipc.client.connection.maxidletime
hbase code 10
in hadoop common no
in hbase conf files no

ipc.client.kill.max
hbase code 10
in hadoop common yes 10
in hbase conf files no

ipc.client.idlethreshold
hbase code 4000
in hadoop common yes 4000
in hbase conf files no

ipc.client.call.purge.timeout
in hadoop common no
in hbase conf files no

ipc.server.tcpnodelay
hbase code true
in hadoop common yes false
in hbase conf files no

ipc.server.tcpkeepalive
hbase code true
in hadoop common no
in hbase conf files no
{noformat}

> The servers do not honor the tcpNoDelay option
> ----------------------------------------------
>
>                 Key: HBASE-11492
>                 URL: https://issues.apache.org/jira/browse/HBASE-11492
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.98.0, 0.99.0
>            Reporter: Nicolas Liochon
>            Assignee: Nicolas Liochon
>            Priority: Critical
>             Fix For: 0.99.0, 0.98.5
>
>         Attachments: 11492.v1.patch, 11492.v1.withp1.patch, 11492.v2.patch
>
>
> There is an option to set tcpNoDelay, defaulted to true, but the socket channel is actually
not changed. As a consequence, the server works with nagle enabled. This leads to very degraded
behavior when a single connection is shared between threads. We enter into conflicts with
nagle and tcp delayed ack. 
> Here is an example of performance with the PE tool plus HBASE-11491:
> {noformat}
> oneCon     #client       sleep          exeTime (seconds)                           
 avg latency, sleep excluded (microseconds)
> true           1               0                31                                  
                  310
> false          1               0                31                                  
                  310
> true           2               0                50                                  
                   500
> false          2               0               31                                   
                  310
> true           2                5               488 (including 200s sleeping)       
       2880 
> false          2               5               246  (including 200s sleeping)       
       460
> {noformat}
> The latency is multiple by 5 (2880 vs 460) when the connection is shared. This is the
delayed ack kicking in. This can be fixed by really using tcp no delay.
> Any application sharing the tcp connection between threads has the issue.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message