HDFS-11280. Allow WebHDFS to reuse HTTP connections to NN. Contributed by Zheng Shao.

This commit is contained in:
Haohui Mai 2017-01-04 21:01:23 -08:00
parent d4ca1c5226
commit 20486730e8
1 changed files with 8 additions and 1 deletions

View File

@ -667,6 +667,8 @@ public class WebHdfsFileSystem extends FileSystem
url = new URL(conn.getHeaderField("Location")); url = new URL(conn.getHeaderField("Location"));
redirectHost = url.getHost() + ":" + url.getPort(); redirectHost = url.getHost() + ":" + url.getPort();
} finally { } finally {
// TODO: consider not calling conn.disconnect() to allow connection reuse
// See http://tinyurl.com/java7-http-keepalive
conn.disconnect(); conn.disconnect();
} }
} }
@ -899,7 +901,9 @@ public class WebHdfsFileSystem extends FileSystem
LOG.debug("Response decoding failure.", e); LOG.debug("Response decoding failure.", e);
throw ioe; throw ioe;
} finally { } finally {
conn.disconnect(); // Don't call conn.disconnect() to allow connection reuse
// See http://tinyurl.com/java7-http-keepalive
conn.getInputStream().close();
} }
} }
@ -946,6 +950,9 @@ public class WebHdfsFileSystem extends FileSystem
try { try {
validateResponse(op, conn, true); validateResponse(op, conn, true);
} finally { } finally {
// This is a connection to DataNode. Let's disconnect since
// there is little chance that the connection will be reused
// any time soonl
conn.disconnect(); conn.disconnect();
} }
} }