Repository: hbase
Updated Branches:
  refs/heads/branch-1 3de347f6e -> e8e0e86b4


HBASE-14778 Make block cache hit percentages not integer in the metrics system


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/e8e0e86b
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/e8e0e86b
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/e8e0e86b

Branch: refs/heads/branch-1
Commit: e8e0e86b49c3a034f9c75d115c3e191d4fff07bb
Parents: 3de347f
Author: Elliott Clark <[email protected]>
Authored: Fri Nov 6 10:21:36 2015 -0800
Committer: Elliott Clark <[email protected]>
Committed: Tue Nov 10 12:28:24 2015 -0800

----------------------------------------------------------------------
 .../MetricsRegionServerWrapper.java             |  8 ++---
 .../MetricsRegionServerWrapperImpl.java         | 38 ++++++++++++--------
 .../MetricsRegionServerWrapperStub.java         |  6 ++--
 3 files changed, 31 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/e8e0e86b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
----------------------------------------------------------------------
diff --git 
a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
 
b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
index 885d3a6..5ea81a3 100644
--- 
a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
+++ 
b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
@@ -151,12 +151,12 @@ public interface MetricsRegionServerWrapper {
   /**
    * Get the percent of HFiles' that are local.
    */
-  int getPercentFileLocal();
+  double getPercentFileLocal();
 
   /**
    * Get the percent of HFiles' that are local for secondary region replicas.
    */
-  int getPercentFileLocalSecondaryRegions();
+  double getPercentFileLocalSecondaryRegions();
 
   /**
    * Get the size of the split queue
@@ -231,7 +231,7 @@ public interface MetricsRegionServerWrapper {
   /**
    * Get the percent of requests with the block cache turned on that hit the 
block cache.
    */
-  int getBlockCacheHitCachingPercent();
+  double getBlockCacheHitCachingPercent();
 
   /**
    * Force a re-computation of the metrics.
@@ -276,5 +276,5 @@ public interface MetricsRegionServerWrapper {
   /**
    * @return Count of requests blocked because the memstore size is larger 
than blockingMemStoreSize
    */
-  public long getBlockedRequestsCount();
+  long getBlockedRequestsCount();
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/e8e0e86b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
index efad74c..d593f12 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
@@ -68,8 +68,8 @@ class MetricsRegionServerWrapperImpl
   private volatile long totalStaticBloomSize = 0;
   private volatile long numMutationsWithoutWAL = 0;
   private volatile long dataInMemoryWithoutWAL = 0;
-  private volatile int percentFileLocal = 0;
-  private volatile int percentFileLocalSecondaryRegions = 0;
+  private volatile double percentFileLocal = 0;
+  private volatile double percentFileLocalSecondaryRegions = 0;
   private volatile long flushedCellsCount = 0;
   private volatile long compactedCellsCount = 0;
   private volatile long majorCompactedCellsCount = 0;
@@ -289,15 +289,25 @@ class MetricsRegionServerWrapperImpl
     if (this.cacheStats == null) {
       return 0;
     }
-    return (int) (this.cacheStats.getHitRatio() * 100);
+    double ratio = this.cacheStats.getHitRatio();
+    if (Double.isNaN(ratio)) {
+      ratio = 0;
+    }
+    return (ratio * 100);
   }
 
   @Override
-  public int getBlockCacheHitCachingPercent() {
+  public double getBlockCacheHitCachingPercent() {
     if (this.cacheStats == null) {
       return 0;
     }
-    return (int) (this.cacheStats.getHitCachingRatio() * 100);
+
+    double ratio = this.cacheStats.getHitCachingRatio();
+
+    if (Double.isNaN(ratio)) {
+      ratio = 0;
+    }
+    return (ratio * 100);
   }
 
   @Override public void forceRecompute() {
@@ -384,12 +394,12 @@ class MetricsRegionServerWrapperImpl
   }
 
   @Override
-  public int getPercentFileLocal() {
+  public double getPercentFileLocal() {
     return percentFileLocal;
   }
 
   @Override
-  public int getPercentFileLocalSecondaryRegions() {
+  public double getPercentFileLocalSecondaryRegions() {
     return percentFileLocalSecondaryRegions;
   }
 
@@ -464,8 +474,8 @@ class MetricsRegionServerWrapperImpl
       long tempTotalStaticBloomSize = 0;
       long tempNumMutationsWithoutWAL = 0;
       long tempDataInMemoryWithoutWAL = 0;
-      int tempPercentFileLocal = 0;
-      int tempPercentFileLocalSecondaryRegions = 0;
+      double tempPercentFileLocal = 0;
+      double tempPercentFileLocalSecondaryRegions = 0;
       long tempFlushedCellsCount = 0;
       long tempCompactedCellsCount = 0;
       long tempMajorCompactedCellsCount = 0;
@@ -508,13 +518,14 @@ class MetricsRegionServerWrapperImpl
 
       float localityIndex = hdfsBlocksDistribution.getBlockLocalityIndex(
           regionServer.getServerName().getHostname());
-      tempPercentFileLocal = (int) (localityIndex * 100);
+      tempPercentFileLocal = Double.isNaN(tempBlockedRequestsCount) ? 0 : 
(localityIndex * 100);
 
       float localityIndexSecondaryRegions = 
hdfsBlocksDistributionSecondaryRegions
           .getBlockLocalityIndex(regionServer.getServerName().getHostname());
-      tempPercentFileLocalSecondaryRegions = (int) 
(localityIndexSecondaryRegions * 100);
+      tempPercentFileLocalSecondaryRegions =
+          Double.isNaN(localityIndexSecondaryRegions) ? 0 : 
(localityIndexSecondaryRegions * 100);
 
-      //Compute the number of requests per second
+      // Compute the number of requests per second
       long currentTime = EnvironmentEdgeManager.currentTime();
 
       // assume that it took PERIOD seconds to start the executor.
@@ -523,7 +534,6 @@ class MetricsRegionServerWrapperImpl
         lastRan = currentTime - period;
       }
 
-
       //If we've time traveled keep the last requests per second.
       if ((currentTime - lastRan) > 0) {
         long currentRequestCount = getTotalRequestCount();
@@ -539,7 +549,7 @@ class MetricsRegionServerWrapperImpl
           (metaProvider == null ? 0 : metaProvider.getNumLogFiles());
       walFileSize = (provider == null ? 0 : provider.getLogFileSize()) +
           (provider == null ? 0 : provider.getLogFileSize());
-      //Copy over computed values so that no thread sees half computed values.
+      // Copy over computed values so that no thread sees half computed values.
       numStores = tempNumStores;
       numStoreFiles = tempNumStoreFiles;
       memstoreSize = tempMemstoreSize;

http://git-wip-us.apache.org/repos/asf/hbase/blob/e8e0e86b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
index 33fa5c3..65e4ebd 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
@@ -126,12 +126,12 @@ public class MetricsRegionServerWrapperStub implements 
MetricsRegionServerWrappe
   }
 
   @Override
-  public int getPercentFileLocal() {
+  public double getPercentFileLocal() {
     return 99;
   }
 
   @Override
-  public int getPercentFileLocalSecondaryRegions() {
+  public double getPercentFileLocalSecondaryRegions() {
     return 99;
   }
 
@@ -206,7 +206,7 @@ public class MetricsRegionServerWrapperStub implements 
MetricsRegionServerWrappe
   }
 
   @Override
-  public int getBlockCacheHitCachingPercent() {
+  public double getBlockCacheHitCachingPercent() {
     return 97;
   }
 

Reply via email to