You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Guo Ruijing (JIRA)" <ji...@apache.org> on 2014/10/28 06:00:35 UTC

[jira] [Created] (HDFS-7298) HDFS may honor socket timeout configuration

Guo Ruijing created HDFS-7298:
---------------------------------

             Summary: HDFS may honor socket timeout configuration
                 Key: HDFS-7298
                 URL: https://issues.apache.org/jira/browse/HDFS-7298
             Project: Hadoop HDFS
          Issue Type: Improvement
          Components: datanode
            Reporter: Guo Ruijing


DFS_CLIENT_SOCKET_TIMEOUT_KEY: HDFS socket read timeout
DFS_DATANODE_SOCKET_WRITE_TIMEOUT_KEY: HDFS socket write timeout 

HDFS may honor socket timeout configuration:

1. DataXceiver.java:

1) existing code(not expected)
       int timeoutValue = dnConf.socketTimeout
              + (HdfsServerConstants.READ_TIMEOUT_EXTENSION * targets.length);
          int writeTimeout = dnConf.socketWriteTimeout +
                      (HdfsServerConstants.WRITE_TIMEOUT_EXTENSION * targets.length);

2) proposed code:

       int timeoutValue = dnConf.socketTimeout ? (dnConf.socketTimeout
              + (HdfsServerConstants.READ_TIMEOUT_EXTENSION * targets.length) : 0;

          int writeTimeout = dnConf.socketWriteTimeout ? (dnConf.socketWriteTimeout + 
                      (HdfsServerConstants.WRITE_TIMEOUT_EXTENSION * targets.length)) : 0;

2) DFSClient.java

existing code is expected:

  int getDatanodeWriteTimeout(int numNodes) {
    return (dfsClientConf.confTime > 0) ?
      (dfsClientConf.confTime + HdfsServerConstants.WRITE_TIMEOUT_EXTENSION * numNodes) : 0;
  }

  int getDatanodeReadTimeout(int numNodes) {
    return dfsClientConf.socketTimeout > 0 ?
        (HdfsServerConstants.READ_TIMEOUT_EXTENSION * numNodes +
            dfsClientConf.socketTimeout) : 0;
  }

3) DataNode.java:

existing code is not expected: 

        long writeTimeout = dnConf.socketWriteTimeout +
                            HdfsServerConstants.WRITE_TIMEOUT_EXTENSION * (targets.length-1);

proposed code:

        long writeTimeout = dnConf.socketWriteTimeout ? (dnConf.socketWriteTimeout  +
                            HdfsServerConstants.WRITE_TIMEOUT_EXTENSION * (targets.length-1)) : 0;



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)