[28/50] [abbrv] hadoop git commit: HDFS-10653. Optimize conversion from path string to components. Contributed by Daryn Sharp.

2016-07-25 Thread vvasudev
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 Zhao 
Authored: 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.

2016-07-25 Thread vvasudev
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 Zhao 
Authored: 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.

2016-07-22 Thread zhz
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 Zhao 
Authored: 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.

2016-07-21 Thread zhz
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 Zhao 
Authored: 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.

2016-07-21 Thread zhz
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 Zhao 
Authored: 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.

2016-07-21 Thread jing9
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 Zhao 
Authored: 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.

2016-07-21 Thread jing9
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 Zhao 
Authored: 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