HADOOP-12810. FileSystem#listLocatedStatus causes unnecessary RPC calls (Contributed by Ryan Blue)
(cherry picked from commit 96ea3094315bb1e1a5e268e3817c7fdedc3e9462) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2bf5a005 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2bf5a005 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2bf5a005 Branch: refs/heads/branch-2 Commit: 2bf5a005fab287689a148c1928f3b04c0a8dcedf Parents: 6874a14 Author: Vinayakumar B <[email protected]> Authored: Wed Feb 17 10:13:41 2016 +0530 Committer: Vinayakumar B <[email protected]> Committed: Wed Feb 17 10:15:08 2016 +0530 ---------------------------------------------------------------------- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../src/main/java/org/apache/hadoop/fs/FileSystem.java | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/2bf5a005/hadoop-common-project/hadoop-common/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 7cb918f..900b6de 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -1081,6 +1081,9 @@ Release 2.7.3 - UNRELEASED OPTIMIZATIONS + HADOOP-12810. FileSystem#listLocatedStatus causes unnecessary RPC calls + (Ryan Blue via vinayakumarb) + BUG FIXES HADOOP-12296. when setnetgrent returns 0 in linux, exception should be http://git-wip-us.apache.org/repos/asf/hadoop/blob/2bf5a005/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java index 4b389dc..d9cb9e4 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java @@ -1739,8 +1739,10 @@ public abstract class FileSystem extends Configured implements Closeable { throw new NoSuchElementException("No more entry in " + f); } FileStatus result = stats[i++]; + // for files, use getBlockLocations(FileStatus, int, int) to avoid + // calling getFileStatus(Path) to load the FileStatus again BlockLocation[] locs = result.isFile() ? - getFileBlockLocations(result.getPath(), 0, result.getLen()) : + getFileBlockLocations(result, 0, result.getLen()) : null; return new LocatedFileStatus(result, locs); }
