You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-issues@hadoop.apache.org by "Masatake Iwasaki (JIRA)" <ji...@apache.org> on 2016/02/01 14:36:39 UTC
[jira] [Commented] (HDFS-9700) DFSClient and DFSOutputStream do not
respect TCP_NODELAY config in two spots
[ https://issues.apache.org/jira/browse/HDFS-9700?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15126245#comment-15126245 ]
Masatake Iwasaki commented on HDFS-9700:
----------------------------------------
Both of {{DFSClient#connectToDN}} and {{DataStreamer#createSocketForPipeline}} should not use {{CommonConfigurationKeysPublic.IPC_CLIENT_TCPNODELAY_KEY}}.
Though I prefer always setting TCP_NODELAY, we should run some benchmark like TestDFSIo to see the effect before change the default behavior.
Adding configuration key such as HdfsClientConfigKeys.DFS_CLIENT_SOCKET_TCP_NODELAY might be conservative option to retain existing behaviour and change the default value later. (You can see HDFS-8829 and HDFS-9259 as example for the fix.)
> DFSClient and DFSOutputStream do not respect TCP_NODELAY config in two spots
> ----------------------------------------------------------------------------
>
> Key: HDFS-9700
> URL: https://issues.apache.org/jira/browse/HDFS-9700
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: hdfs-client
> Affects Versions: 2.7.1, 2.6.3
> Reporter: Gary Helmling
> Assignee: Gary Helmling
> Attachments: HDFS-9700-v1.patch, HDFS-9700_branch-2.7.patch
>
>
> In {{DFSClient.connectToDN()}} and {{DFSOutputStream.createSocketForPipeline()}}, we never call {{setTcpNoDelay()}} on the constructed socket before sending. In both cases, we should respect the value of ipc.client.tcpnodelay in the configuration.
> While this applies whether security is enabled or not, it seems to have a bigger impact on latency when security is enabled.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)