Repository: hadoop Updated Branches: refs/heads/branch-2.7 fd834915f -> 1903665b2
HDFS-11648. Lazy construct the IIP pathname. Contributed by Daryn Sharp. (cherry picked from commit 8ed230c805625549b1cecc830e909a7027bb4961) (cherry picked from commit 9dfe0b35158cc0046a82cbfea2218a4ad61f329e) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/1903665b Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/1903665b Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/1903665b Branch: refs/heads/branch-2.7 Commit: 1903665b232fce562fffd63c2da80f1d7f9c4ff2 Parents: 81712e8 Author: Kihwal Lee <[email protected]> Authored: Wed Apr 12 13:30:41 2017 -0500 Committer: Zhe Zhang <[email protected]> Committed: Wed May 31 08:50:26 2017 -0700 ---------------------------------------------------------------------- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../org/apache/hadoop/hdfs/server/namenode/INodesInPath.java | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/1903665b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index c5940cb..e5567e0 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -99,6 +99,9 @@ Release 2.7.4 - UNRELEASED HDFS-10619. Cache path in InodesInPath. (daryn via kihwal, backported by zhz) + HDFS-11648. Lazy construct the IIP pathname. + (daryn via kihwal, backported by zhz) + OPTIMIZATIONS HDFS-10896. Move lock logging logic from FSNamesystem into FSNamesystemLock. http://git-wip-us.apache.org/repos/asf/hadoop/blob/1903665b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodesInPath.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodesInPath.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodesInPath.java index 0badf6d..90b6dbb 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodesInPath.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodesInPath.java @@ -270,7 +270,7 @@ public class INodesInPath { } private final byte[][] path; - private final String pathname; + private volatile String pathname; /** * Array with the specified number of INodes resolved for a given path. @@ -293,7 +293,6 @@ public class INodesInPath { Preconditions.checkArgument(inodes != null && path != null); this.inodes = inodes; this.path = path; - this.pathname = DFSUtil.byteArray2PathString(path); this.isSnapshot = isSnapshot; this.snapshotId = snapshotId; } @@ -349,6 +348,9 @@ public class INodesInPath { /** @return the full path in string form */ public String getPath() { + if (pathname == null) { + pathname = DFSUtil.byteArray2PathString(path); + } return pathname; } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
