[28/50] [abbrv] hadoop git commit: HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp.
HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/bd3dcf46 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/bd3dcf46 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/bd3dcf46 Branch: refs/heads/YARN-3926 Commit: bd3dcf46e263b6e6aa3fca6a5d9936cc49e3280f Parents: 557a245 Author: Jing ZhaoAuthored: Thu Jul 21 11:14:39 2016 -0700 Committer: Jing Zhao Committed: Thu Jul 21 11:14:39 2016 -0700 -- .../java/org/apache/hadoop/hdfs/DFSUtil.java| 9 ++ .../hadoop/hdfs/server/namenode/INode.java | 20 + .../server/namenode/TestSnapshotPathINodes.java | 30 +++- 3 files changed, 26 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/bd3dcf46/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java index f1a6de7..0ba80d9 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java @@ -320,6 +320,15 @@ public class DFSUtil { } /** + * Convert a UTF8 string to an array of byte arrays. + */ + public static byte[][] getPathComponents(String path) { +// avoid intermediate split to String[] +final byte[] bytes = string2Bytes(path); +return bytes2byteArray(bytes, bytes.length, (byte)Path.SEPARATOR_CHAR); + } + + /** * Splits the array of bytes into array of arrays of bytes * on byte separator * @param bytes the array of bytes to split http://git-wip-us.apache.org/repos/asf/hadoop/blob/bd3dcf46/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java index c8f36e1..eb910d4 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java @@ -727,18 +727,8 @@ public abstract class INode implements INodeAttributes, Diff.Element { */ @VisibleForTesting public static byte[][] getPathComponents(String path) { -return getPathComponents(getPathNames(path)); - } - - /** Convert strings to byte arrays for path components. */ - static byte[][] getPathComponents(String[] strings) { -if (strings.length == 0) { - return new byte[][]{null}; -} -byte[][] bytes = new byte[strings.length][]; -for (int i = 0; i < strings.length; i++) - bytes[i] = DFSUtil.string2Bytes(strings[i]); -return bytes; +checkAbsolutePath(path); +return DFSUtil.getPathComponents(path); } /** @@ -747,11 +737,15 @@ public abstract class INode implements INodeAttributes, Diff.Element { * @return array of path components. */ public static String[] getPathNames(String path) { +checkAbsolutePath(path); +return StringUtils.split(path, Path.SEPARATOR_CHAR); + } + + private static void checkAbsolutePath(final String path) { if (path == null || !path.startsWith(Path.SEPARATOR)) { throw new AssertionError("Absolute path required, but got '" + path + "'"); } -return StringUtils.split(path, Path.SEPARATOR_CHAR); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/bd3dcf46/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java index e416e00..45c65ef 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java @@ -138,8 +138,7 @@ public class TestSnapshotPathINodes { @Test (timeout=15000) public void testNonSnapshotPathINodes() throws Exception { // Get
[34/50] [abbrv] hadoop git commit: HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp.
HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/bd3dcf46 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/bd3dcf46 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/bd3dcf46 Branch: refs/heads/YARN-4757 Commit: bd3dcf46e263b6e6aa3fca6a5d9936cc49e3280f Parents: 557a245 Author: Jing ZhaoAuthored: Thu Jul 21 11:14:39 2016 -0700 Committer: Jing Zhao Committed: Thu Jul 21 11:14:39 2016 -0700 -- .../java/org/apache/hadoop/hdfs/DFSUtil.java| 9 ++ .../hadoop/hdfs/server/namenode/INode.java | 20 + .../server/namenode/TestSnapshotPathINodes.java | 30 +++- 3 files changed, 26 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/bd3dcf46/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java index f1a6de7..0ba80d9 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java @@ -320,6 +320,15 @@ public class DFSUtil { } /** + * Convert a UTF8 string to an array of byte arrays. + */ + public static byte[][] getPathComponents(String path) { +// avoid intermediate split to String[] +final byte[] bytes = string2Bytes(path); +return bytes2byteArray(bytes, bytes.length, (byte)Path.SEPARATOR_CHAR); + } + + /** * Splits the array of bytes into array of arrays of bytes * on byte separator * @param bytes the array of bytes to split http://git-wip-us.apache.org/repos/asf/hadoop/blob/bd3dcf46/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java index c8f36e1..eb910d4 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java @@ -727,18 +727,8 @@ public abstract class INode implements INodeAttributes, Diff.Element { */ @VisibleForTesting public static byte[][] getPathComponents(String path) { -return getPathComponents(getPathNames(path)); - } - - /** Convert strings to byte arrays for path components. */ - static byte[][] getPathComponents(String[] strings) { -if (strings.length == 0) { - return new byte[][]{null}; -} -byte[][] bytes = new byte[strings.length][]; -for (int i = 0; i < strings.length; i++) - bytes[i] = DFSUtil.string2Bytes(strings[i]); -return bytes; +checkAbsolutePath(path); +return DFSUtil.getPathComponents(path); } /** @@ -747,11 +737,15 @@ public abstract class INode implements INodeAttributes, Diff.Element { * @return array of path components. */ public static String[] getPathNames(String path) { +checkAbsolutePath(path); +return StringUtils.split(path, Path.SEPARATOR_CHAR); + } + + private static void checkAbsolutePath(final String path) { if (path == null || !path.startsWith(Path.SEPARATOR)) { throw new AssertionError("Absolute path required, but got '" + path + "'"); } -return StringUtils.split(path, Path.SEPARATOR_CHAR); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/bd3dcf46/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java index e416e00..45c65ef 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java @@ -138,8 +138,7 @@ public class TestSnapshotPathINodes { @Test (timeout=15000) public void testNonSnapshotPathINodes() throws Exception { // Get
hadoop git commit: HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp.
Repository: hadoop Updated Branches: refs/heads/branch-2.6 2f546755c -> b9d4144c2 HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp. (cherry picked from commit bd3dcf46e263b6e6aa3fca6a5d9936cc49e3280f) (cherry picked from commit 6a7fe835f19141cc633824cd5d21f1e30f014bce) (cherry picked from commit 2a5b8e5b3a7ac716253f68ccd25f95ae189bc3ea) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/b9d4144c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/b9d4144c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/b9d4144c Branch: refs/heads/branch-2.6 Commit: b9d4144c2b40bf29663c21633fb4008a1c1aeb8b Parents: 2f54675 Author: Jing ZhaoAuthored: Thu Jul 21 11:14:39 2016 -0700 Committer: Zhe Zhang Committed: Fri Jul 22 08:47:17 2016 -0700 -- .../java/org/apache/hadoop/hdfs/DFSUtil.java| 9 ++ .../hdfs/server/namenode/FSNamesystem.java | 9 +++--- .../hadoop/hdfs/server/namenode/INode.java | 20 + .../server/namenode/TestSnapshotPathINodes.java | 30 +++- 4 files changed, 31 insertions(+), 37 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/b9d4144c/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java index 031896a..67880cd 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java @@ -417,6 +417,15 @@ public class DFSUtil { } /** + * Convert a UTF8 string to an array of byte arrays. + */ + public static byte[][] getPathComponents(String path) { +// avoid intermediate split to String[] +final byte[] bytes = string2Bytes(path); +return bytes2byteArray(bytes, bytes.length, (byte)Path.SEPARATOR_CHAR); + } + + /** * Splits the array of bytes into array of arrays of bytes * on byte separator * @param bytes the array of bytes to split http://git-wip-us.apache.org/repos/asf/hadoop/blob/b9d4144c/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java index bd4f555..4a70ac0 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java @@ -4327,8 +4327,7 @@ public class FSNamesystem implements Namesystem, FSClusterStats, UnresolvedLinkException, SnapshotAccessControlException, AclException { src = FSDirectory.normalizePath(src); -String[] names = INode.getPathNames(src); -byte[][] components = INode.getPathComponents(names); +byte[][] components = INode.getPathComponents(src); final int lastInodeIndex = components.length - 1; dir.writeLock(); @@ -4344,7 +4343,8 @@ public class FSNamesystem implements Namesystem, FSClusterStats, StringBuilder pathbuilder = new StringBuilder(); int i = 1; for(; i < inodes.length && inodes[i] != null; i++) { -pathbuilder.append(Path.SEPARATOR).append(names[i]); +pathbuilder.append(Path.SEPARATOR). +append(DFSUtil.bytes2String(components[i])); if (!inodes[i].isDirectory()) { throw new FileAlreadyExistsException( "Parent path is not a directory: " @@ -4386,7 +4386,8 @@ public class FSNamesystem implements Namesystem, FSClusterStats, // create directories beginning from the first null index for(; i < inodes.length; i++) { -pathbuilder.append(Path.SEPARATOR).append(names[i]); +pathbuilder.append(Path.SEPARATOR). +append(DFSUtil.bytes2String(components[i])); dir.unprotectedMkdir(allocateNewInodeId(), iip, i, components[i], (i < lastInodeIndex) ? parentPermissions : permissions, null, now); http://git-wip-us.apache.org/repos/asf/hadoop/blob/b9d4144c/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java -- diff --git
hadoop git commit: HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp.
Repository: hadoop Updated Branches: refs/heads/branch-2.7 993801026 -> 2a5b8e5b3 HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp. (cherry picked from commit bd3dcf46e263b6e6aa3fca6a5d9936cc49e3280f) (cherry picked from commit 6a7fe835f19141cc633824cd5d21f1e30f014bce) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2a5b8e5b Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2a5b8e5b Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2a5b8e5b Branch: refs/heads/branch-2.7 Commit: 2a5b8e5b3a7ac716253f68ccd25f95ae189bc3ea Parents: 9938010 Author: Jing ZhaoAuthored: Thu Jul 21 11:14:39 2016 -0700 Committer: Zhe Zhang Committed: Thu Jul 21 11:30:06 2016 -0700 -- .../java/org/apache/hadoop/hdfs/DFSUtil.java| 9 ++ .../hadoop/hdfs/server/namenode/INode.java | 20 + .../server/namenode/TestSnapshotPathINodes.java | 30 +++- 3 files changed, 26 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/2a5b8e5b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java index faa658a..338c215 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java @@ -426,6 +426,15 @@ public class DFSUtil { } /** + * Convert a UTF8 string to an array of byte arrays. + */ + public static byte[][] getPathComponents(String path) { +// avoid intermediate split to String[] +final byte[] bytes = string2Bytes(path); +return bytes2byteArray(bytes, bytes.length, (byte)Path.SEPARATOR_CHAR); + } + + /** * Splits the array of bytes into array of arrays of bytes * on byte separator * @param bytes the array of bytes to split http://git-wip-us.apache.org/repos/asf/hadoop/blob/2a5b8e5b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java index e629441..3a4516e 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java @@ -737,18 +737,8 @@ public abstract class INode implements INodeAttributes, Diff.Element { */ @VisibleForTesting public static byte[][] getPathComponents(String path) { -return getPathComponents(getPathNames(path)); - } - - /** Convert strings to byte arrays for path components. */ - static byte[][] getPathComponents(String[] strings) { -if (strings.length == 0) { - return new byte[][]{null}; -} -byte[][] bytes = new byte[strings.length][]; -for (int i = 0; i < strings.length; i++) - bytes[i] = DFSUtil.string2Bytes(strings[i]); -return bytes; +checkAbsolutePath(path); +return DFSUtil.getPathComponents(path); } /** @@ -757,10 +747,14 @@ public abstract class INode implements INodeAttributes, Diff.Element { * @return array of path components. */ public static String[] getPathNames(String path) { +checkAbsolutePath(path); +return StringUtils.split(path, Path.SEPARATOR_CHAR); + } + + private static void checkAbsolutePath(final String path) { if (path == null || !path.startsWith(Path.SEPARATOR)) { throw new AssertionError("Absolute path required"); } -return StringUtils.split(path, Path.SEPARATOR_CHAR); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/2a5b8e5b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java index e416e00..45c65ef 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java +++
hadoop git commit: HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp.
Repository: hadoop Updated Branches: refs/heads/branch-2.8 2f14d585c -> 6a7fe835f HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp. (cherry picked from commit bd3dcf46e263b6e6aa3fca6a5d9936cc49e3280f) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/6a7fe835 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/6a7fe835 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/6a7fe835 Branch: refs/heads/branch-2.8 Commit: 6a7fe835f19141cc633824cd5d21f1e30f014bce Parents: 2f14d58 Author: Jing ZhaoAuthored: Thu Jul 21 11:14:39 2016 -0700 Committer: Zhe Zhang Committed: Thu Jul 21 11:29:27 2016 -0700 -- .../java/org/apache/hadoop/hdfs/DFSUtil.java| 9 ++ .../hadoop/hdfs/server/namenode/INode.java | 20 + .../server/namenode/TestSnapshotPathINodes.java | 30 +++- 3 files changed, 26 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/6a7fe835/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java index 0848521..da7d26a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java @@ -321,6 +321,15 @@ public class DFSUtil { } /** + * Convert a UTF8 string to an array of byte arrays. + */ + public static byte[][] getPathComponents(String path) { +// avoid intermediate split to String[] +final byte[] bytes = string2Bytes(path); +return bytes2byteArray(bytes, bytes.length, (byte)Path.SEPARATOR_CHAR); + } + + /** * Splits the array of bytes into array of arrays of bytes * on byte separator * @param bytes the array of bytes to split http://git-wip-us.apache.org/repos/asf/hadoop/blob/6a7fe835/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java index 9d04fbb..b548763 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java @@ -727,18 +727,8 @@ public abstract class INode implements INodeAttributes, Diff.Element { */ @VisibleForTesting public static byte[][] getPathComponents(String path) { -return getPathComponents(getPathNames(path)); - } - - /** Convert strings to byte arrays for path components. */ - static byte[][] getPathComponents(String[] strings) { -if (strings.length == 0) { - return new byte[][]{null}; -} -byte[][] bytes = new byte[strings.length][]; -for (int i = 0; i < strings.length; i++) - bytes[i] = DFSUtil.string2Bytes(strings[i]); -return bytes; +checkAbsolutePath(path); +return DFSUtil.getPathComponents(path); } /** @@ -747,11 +737,15 @@ public abstract class INode implements INodeAttributes, Diff.Element { * @return array of path components. */ public static String[] getPathNames(String path) { +checkAbsolutePath(path); +return StringUtils.split(path, Path.SEPARATOR_CHAR); + } + + private static void checkAbsolutePath(final String path) { if (path == null || !path.startsWith(Path.SEPARATOR)) { throw new AssertionError("Absolute path required, but got '" + path + "'"); } -return StringUtils.split(path, Path.SEPARATOR_CHAR); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/6a7fe835/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java index e416e00..45c65ef 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java @@
hadoop git commit: HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp.
Repository: hadoop Updated Branches: refs/heads/branch-2 eff65463d -> 419d6ce19 HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp. (cherry picked from commit bd3dcf46e263b6e6aa3fca6a5d9936cc49e3280f) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/419d6ce1 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/419d6ce1 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/419d6ce1 Branch: refs/heads/branch-2 Commit: 419d6ce19cea0654b32d220af93fe230f94a Parents: eff6546 Author: Jing ZhaoAuthored: Thu Jul 21 11:14:39 2016 -0700 Committer: Jing Zhao Committed: Thu Jul 21 11:15:30 2016 -0700 -- .../java/org/apache/hadoop/hdfs/DFSUtil.java| 9 ++ .../hadoop/hdfs/server/namenode/INode.java | 20 + .../server/namenode/TestSnapshotPathINodes.java | 30 +++- 3 files changed, 26 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/419d6ce1/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java index 0848521..da7d26a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java @@ -321,6 +321,15 @@ public class DFSUtil { } /** + * Convert a UTF8 string to an array of byte arrays. + */ + public static byte[][] getPathComponents(String path) { +// avoid intermediate split to String[] +final byte[] bytes = string2Bytes(path); +return bytes2byteArray(bytes, bytes.length, (byte)Path.SEPARATOR_CHAR); + } + + /** * Splits the array of bytes into array of arrays of bytes * on byte separator * @param bytes the array of bytes to split http://git-wip-us.apache.org/repos/asf/hadoop/blob/419d6ce1/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java index c8f36e1..eb910d4 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java @@ -727,18 +727,8 @@ public abstract class INode implements INodeAttributes, Diff.Element { */ @VisibleForTesting public static byte[][] getPathComponents(String path) { -return getPathComponents(getPathNames(path)); - } - - /** Convert strings to byte arrays for path components. */ - static byte[][] getPathComponents(String[] strings) { -if (strings.length == 0) { - return new byte[][]{null}; -} -byte[][] bytes = new byte[strings.length][]; -for (int i = 0; i < strings.length; i++) - bytes[i] = DFSUtil.string2Bytes(strings[i]); -return bytes; +checkAbsolutePath(path); +return DFSUtil.getPathComponents(path); } /** @@ -747,11 +737,15 @@ public abstract class INode implements INodeAttributes, Diff.Element { * @return array of path components. */ public static String[] getPathNames(String path) { +checkAbsolutePath(path); +return StringUtils.split(path, Path.SEPARATOR_CHAR); + } + + private static void checkAbsolutePath(final String path) { if (path == null || !path.startsWith(Path.SEPARATOR)) { throw new AssertionError("Absolute path required, but got '" + path + "'"); } -return StringUtils.split(path, Path.SEPARATOR_CHAR); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/419d6ce1/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java index e416e00..45c65ef 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java @@
hadoop git commit: HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp.
Repository: hadoop Updated Branches: refs/heads/trunk 557a245d8 -> bd3dcf46e HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/bd3dcf46 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/bd3dcf46 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/bd3dcf46 Branch: refs/heads/trunk Commit: bd3dcf46e263b6e6aa3fca6a5d9936cc49e3280f Parents: 557a245 Author: Jing ZhaoAuthored: Thu Jul 21 11:14:39 2016 -0700 Committer: Jing Zhao Committed: Thu Jul 21 11:14:39 2016 -0700 -- .../java/org/apache/hadoop/hdfs/DFSUtil.java| 9 ++ .../hadoop/hdfs/server/namenode/INode.java | 20 + .../server/namenode/TestSnapshotPathINodes.java | 30 +++- 3 files changed, 26 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/bd3dcf46/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java index f1a6de7..0ba80d9 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSUtil.java @@ -320,6 +320,15 @@ public class DFSUtil { } /** + * Convert a UTF8 string to an array of byte arrays. + */ + public static byte[][] getPathComponents(String path) { +// avoid intermediate split to String[] +final byte[] bytes = string2Bytes(path); +return bytes2byteArray(bytes, bytes.length, (byte)Path.SEPARATOR_CHAR); + } + + /** * Splits the array of bytes into array of arrays of bytes * on byte separator * @param bytes the array of bytes to split http://git-wip-us.apache.org/repos/asf/hadoop/blob/bd3dcf46/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java index c8f36e1..eb910d4 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java @@ -727,18 +727,8 @@ public abstract class INode implements INodeAttributes, Diff.Element { */ @VisibleForTesting public static byte[][] getPathComponents(String path) { -return getPathComponents(getPathNames(path)); - } - - /** Convert strings to byte arrays for path components. */ - static byte[][] getPathComponents(String[] strings) { -if (strings.length == 0) { - return new byte[][]{null}; -} -byte[][] bytes = new byte[strings.length][]; -for (int i = 0; i < strings.length; i++) - bytes[i] = DFSUtil.string2Bytes(strings[i]); -return bytes; +checkAbsolutePath(path); +return DFSUtil.getPathComponents(path); } /** @@ -747,11 +737,15 @@ public abstract class INode implements INodeAttributes, Diff.Element { * @return array of path components. */ public static String[] getPathNames(String path) { +checkAbsolutePath(path); +return StringUtils.split(path, Path.SEPARATOR_CHAR); + } + + private static void checkAbsolutePath(final String path) { if (path == null || !path.startsWith(Path.SEPARATOR)) { throw new AssertionError("Absolute path required, but got '" + path + "'"); } -return StringUtils.split(path, Path.SEPARATOR_CHAR); } @Override http://git-wip-us.apache.org/repos/asf/hadoop/blob/bd3dcf46/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java index e416e00..45c65ef 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestSnapshotPathINodes.java @@ -138,8 +138,7 @@ public class TestSnapshotPathINodes { @Test