Liang Xie created HDFS-7523:
-------------------------------

             Summary: Setting a socket receive buffer size in DFSClient
                 Key: HDFS-7523
                 URL: https://issues.apache.org/jira/browse/HDFS-7523
             Project: Hadoop HDFS
          Issue Type: Improvement
          Components: dfsclient
    Affects Versions: 2.6.0
            Reporter: Liang Xie
            Assignee: Liang Xie


It would be nice if we have a socket receive buffer size while creating socket 
from client(HBase) view, in old version it should be in DFSInputStream, in 
trunk it seems should be at:
{code}
  @Override // RemotePeerFactory
  public Peer newConnectedPeer(InetSocketAddress addr,
      Token<BlockTokenIdentifier> blockToken, DatanodeID datanodeId)
      throws IOException {
    Peer peer = null;
    boolean success = false;
    Socket sock = null;
    try {
      sock = socketFactory.createSocket();
      NetUtils.connect(sock, addr,
        getRandomLocalInterfaceAddr(),
        dfsClientConf.socketTimeout);
      peer = TcpPeerServer.peerFromSocketAndKey(saslClient, sock, this,
          blockToken, datanodeId);
      peer.setReadTimeout(dfsClientConf.socketTimeout);
{code}

e.g: sock.setReceiveBufferSize(HdfsConstants.DEFAULT_DATA_SOCKET_SIZE);

the default socket buffer size in Linux+JDK7 seems is 8k if i am not wrong, 
this value sometimes is small for HBase 64k block reading in a 10G network(at 
least, more system call)



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

Reply via email to