From 00e9496f3b9b5ed8943d7bdaa198f24b3260eb45 Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Wed, 25 Apr 2018 11:59:12 -0700 Subject: [PATCH] HBASE-20490 Add main to UnsafeAvailChecker so can test for Unsafe --- .../src/main/java/org/apache/hadoop/hbase/util/Bytes.java | 1 + .../java/org/apache/hadoop/hbase/util/UnsafeAvailChecker.java | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java index 6eb09c11df..1be49bef7f 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java @@ -1433,6 +1433,7 @@ public class Bytes implements Comparable { @VisibleForTesting static Comparer lexicographicalComparerJavaImpl() { + LOG.info("UNSAFE comparator NOT available! Performance will lag."); return LexicographicalComparerHolder.PureJavaComparer.INSTANCE; } diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/UnsafeAvailChecker.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/UnsafeAvailChecker.java index 88dd524296..c3517d97f4 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/UnsafeAvailChecker.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/UnsafeAvailChecker.java @@ -26,6 +26,10 @@ import org.apache.yetus.audience.InterfaceAudience; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** + * Class to check if Unsafe is present and if platform supports unaligned access. + * Has a main so can run check in your context apart from hbase. + */ @InterfaceAudience.Private public class UnsafeAvailChecker { @@ -89,4 +93,9 @@ public class UnsafeAvailChecker { private UnsafeAvailChecker() { // private constructor to avoid instantiation } + + public static void main(String [] args) { + System.out.println("Available=" + UnsafeAvailChecker.isAvailable() + ", " + + "Unaligned=" + UnsafeAvailChecker.unaligned()); + } } -- 2.16.3