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

Colin Patrick McCabe commented on HDFS-9700:
--------------------------------------------

Hmm.  I think it's confusing to use a configuration key for Hadoop RPC to 
configure something that isn't Hadoop RPC.  We have tons of keys named with 
{{ipc}} and all of them relate to Hadoop RPC, not to DataTransferProtocol.  
{{ipc.client.connect.max.retries}}, {{ipc.server.listen.queue.size}}, 
{{ipc.client.connect.timeout}}, and so forth.

There are valid cases where you might want a different configuration for RPC 
versus datatransferprotocol.  For example, conservative users might also want 
to avoid turning on {{TCP_NODELAY}} for {{DataTransferProtocol}} since it is a 
new feature, and not as well tested as doing what we do currently.  But since 
we have {{TCP_NODELAY}} on for RPC, they might want to keep that on.

I agree that in the long term, {{TCP_NODELAY}} should be used for both.  But 
that's an argument for removing the configuration altogether, not for making it 
do something other than what it's named.

> DFSClient and DFSOutputStream should set TCP_NODELAY on sockets for 
> DataTransferProtocol
> ----------------------------------------------------------------------------------------
>
>                 Key: HDFS-9700
>                 URL: https://issues.apache.org/jira/browse/HDFS-9700
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: hdfs-client
>    Affects Versions: 2.7.1, 2.6.3
>            Reporter: Gary Helmling
>            Assignee: Gary Helmling
>             Fix For: 2.8.0
>
>         Attachments: HDFS-9700-branch-2.7.002.patch, 
> HDFS-9700-branch-2.7.003.patch, HDFS-9700-v1.patch, HDFS-9700-v2.patch, 
> HDFS-9700.002.patch, HDFS-9700.003.patch, HDFS-9700.004.patch, 
> HDFS-9700_branch-2.7-v2.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)

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

Reply via email to