You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by cm...@apache.org on 2015/01/22 01:33:27 UTC
hadoop git commit: HADOOP-11466. FastByteComparisons: do not use
UNSAFE_COMPARER on the SPARC architecture because it is slower there (Suman
Somasundar via Colin P. McCabe)
Repository: hadoop
Updated Branches:
refs/heads/trunk a0521bc83 -> ee7d22e90
HADOOP-11466. FastByteComparisons: do not use UNSAFE_COMPARER on the SPARC architecture because it is slower there (Suman Somasundar via Colin P. McCabe)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/ee7d22e9
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/ee7d22e9
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/ee7d22e9
Branch: refs/heads/trunk
Commit: ee7d22e90ce67de3e7ee92f309c048a1d4be0bbe
Parents: a0521bc
Author: Colin Patrick Mccabe <cm...@cloudera.com>
Authored: Wed Jan 21 16:33:02 2015 -0800
Committer: Colin Patrick Mccabe <cm...@cloudera.com>
Committed: Wed Jan 21 16:33:02 2015 -0800
----------------------------------------------------------------------
hadoop-common-project/hadoop-common/CHANGES.txt | 4 ++++
.../apache/hadoop/io/FastByteComparisons.java | 21 +++++++++++++++++++-
2 files changed, 24 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/ee7d22e9/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 66fd138..abe699a 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -737,6 +737,10 @@ Release 2.7.0 - UNRELEASED
HADOOP-11327. BloomFilter#not() omits the last bit, resulting in an
incorrect filter (Eric Payne via jlowe)
+ HADOOP-11466. FastByteComparisons: do not use UNSAFE_COMPARER on the SPARC
+ architecture because it is slower there (Suman Somasundar via Colin P.
+ McCabe)
+
Release 2.6.0 - 2014-11-18
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/ee7d22e9/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/FastByteComparisons.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/FastByteComparisons.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/FastByteComparisons.java
index 3f5881b..a3fea31 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/FastByteComparisons.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/FastByteComparisons.java
@@ -24,6 +24,9 @@ import java.security.PrivilegedAction;
import sun.misc.Unsafe;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
import com.google.common.primitives.Longs;
import com.google.common.primitives.UnsignedBytes;
@@ -33,6 +36,7 @@ import com.google.common.primitives.UnsignedBytes;
* class to be able to compare arrays that start at non-zero offsets.
*/
abstract class FastByteComparisons {
+ static final Log LOG = LogFactory.getLog(FastByteComparisons.class);
/**
* Lexicographically compare two byte arrays.
@@ -71,6 +75,13 @@ abstract class FastByteComparisons {
* implementation if unable to do so.
*/
static Comparer<byte[]> getBestComparer() {
+ if (System.getProperty("os.arch").equals("sparc")) {
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Lexicographical comparer selected for "
+ + "byte aligned system architecture");
+ }
+ return lexicographicalComparerJavaImpl();
+ }
try {
Class<?> theClass = Class.forName(UNSAFE_COMPARER_NAME);
@@ -78,8 +89,16 @@ abstract class FastByteComparisons {
@SuppressWarnings("unchecked")
Comparer<byte[]> comparer =
(Comparer<byte[]>) theClass.getEnumConstants()[0];
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Unsafe comparer selected for "
+ + "byte unaligned system architecture");
+ }
return comparer;
} catch (Throwable t) { // ensure we really catch *everything*
+ if (LOG.isTraceEnabled()) {
+ LOG.trace(t.getMessage());
+ LOG.trace("Lexicographical comparer selected");
+ }
return lexicographicalComparerJavaImpl();
}
}
@@ -234,4 +253,4 @@ abstract class FastByteComparisons {
}
}
}
-}
\ No newline at end of file
+}