[
https://issues.apache.org/jira/browse/HBASE-11492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14057775#comment-14057775
]
Devaraj Das commented on HBASE-11492:
-------------------------------------
Could this be a JDK issue or maybe something that needs to be done when nio is
used (as discussed offline). Nonetheless, the change itself is fine (using
channel.setOption instead of socket.setTcpNoDelay). Very good catch, [~nkeywal].
> The servers do not honnor 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.92.2, 0.98.0, 0.96.0, 0.99.0, 0.94.20
> Reporter: Nicolas Liochon
> Assignee: Nicolas Liochon
> Priority: Critical
> Fix For: 0.99.0, 0.98.5
>
> Attachments: 11492.v1.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 divided by 5 when the connection is shared. This is the
> delayed ack kicking in. This can be fixed by really using tcp no delay.
--
This message was sent by Atlassian JIRA
(v6.2#6252)