Repository: hadoop Updated Branches: refs/heads/branch-2 7d0f84bd8 -> 18740f938
HADOOP-11659. o.a.h.FileSystem.Cache#remove should use a single hash map lookup. Contributed by Brahma Reddy Battula. (cherry picked from commit 34117325b29f0f1bdbe21343e7fd07e9ad0af907) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/18740f93 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/18740f93 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/18740f93 Branch: refs/heads/branch-2 Commit: 18740f9383858543f4390626e7bbec37ca450cce Parents: 7d0f84b Author: Akira Ajisaka <aajis...@apache.org> Authored: Wed Mar 18 15:43:10 2015 +0900 Committer: Akira Ajisaka <aajis...@apache.org> Committed: Wed Mar 18 15:44:13 2015 +0900 ---------------------------------------------------------------------- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../src/main/java/org/apache/hadoop/fs/FileSystem.java | 11 +++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/18740f93/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 0d1ffce..b1d763b 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -17,6 +17,9 @@ Release 2.8.0 - UNRELEASED HADOOP-11692. Improve authentication failure WARN message to avoid user confusion. (Yongjun Zhang) + HADOOP-11659. o.a.h.fs.FileSystem.Cache#remove should use a single hash map + lookup. (Brahma Reddy Battula via aajisaka) + OPTIMIZATIONS BUG FIXES http://git-wip-us.apache.org/repos/asf/hadoop/blob/18740f93/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 d2b5744..c9844f9 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 @@ -2701,10 +2701,12 @@ public abstract class FileSystem extends Configured implements Closeable { } synchronized void remove(Key key, FileSystem fs) { - if (map.containsKey(key) && fs == map.get(key)) { - map.remove(key); + FileSystem cachedFs = map.remove(key); + if (fs == cachedFs) { toAutoClose.remove(key); - } + } else if (cachedFs != null) { + map.put(key, cachedFs); + } } synchronized void closeAll() throws IOException { @@ -2731,7 +2733,8 @@ public abstract class FileSystem extends Configured implements Closeable { } //remove from cache - remove(key, fs); + map.remove(key); + toAutoClose.remove(key); if (fs != null) { try {