You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2012/10/26 19:29:13 UTC

svn commit: r1402588 - in /hbase/branches/0.94/src: main/java/org/apache/hadoop/hbase/io/hfile/ main/java/org/apache/hadoop/hbase/regionserver/metrics/ test/java/org/apache/hadoop/hbase/regionserver/metrics/

Author: larsh
Date: Fri Oct 26 17:29:12 2012
New Revision: 1402588

URL: http://svn.apache.org/viewvc?rev=1402588&view=rev
Log:
HBASE-6852 REVERT due to test failures.

Modified:
    hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV1.java
    hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java
    hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/SchemaMetrics.java
    hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/metrics/TestSchemaMetrics.java

Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV1.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV1.java?rev=1402588&r1=1402587&r2=1402588&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV1.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV1.java Fri Oct 26 17:29:12 2012
@@ -391,8 +391,6 @@ public class HFileReaderV1 extends Abstr
       this.istream.close();
       this.istream = null;
     }
-    
-    getSchemaMetrics().flushMetrics();
   }
 
   protected abstract static class AbstractScannerV1

Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java?rev=1402588&r1=1402587&r2=1402588&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java Fri Oct 26 17:29:12 2012
@@ -424,8 +424,6 @@ public class HFileReaderV2 extends Abstr
         istream = null;
       }
     }
-    
-    getSchemaMetrics().flushMetrics();
   }
 
   protected abstract static class AbstractScannerV2

Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/SchemaMetrics.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/SchemaMetrics.java?rev=1402588&r1=1402587&r2=1402588&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/SchemaMetrics.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/SchemaMetrics.java Fri Oct 26 17:29:12 2012
@@ -29,7 +29,6 @@ import java.util.Set;
 import java.util.TreeMap;
 import java.util.TreeSet;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicLongArray;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -39,6 +38,7 @@ import org.apache.commons.logging.LogFac
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory;
+import org.apache.hadoop.hbase.regionserver.HRegion;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.Pair;
 
@@ -236,9 +236,6 @@ public class SchemaMetrics {
   public static final SchemaMetrics ALL_SCHEMA_METRICS =
     getInstance(TOTAL_KEY, TOTAL_KEY);
 
-  /** Threshold for flush the metrics, currently used only for "on cache hit" */
-  private static final long THRESHOLD_METRICS_FLUSH = 100l;
-
   /**
    * Whether to include table name in metric names. If this is null, it has not
    * been initialized. This is a global instance, but we also have a copy of it
@@ -257,8 +254,6 @@ public class SchemaMetrics {
   private final String[] bloomMetricNames = new String[2];
   private final String[] storeMetricNames = new String[NUM_STORE_METRIC_TYPES];
   private final String[] storeMetricNamesMax = new String[NUM_STORE_METRIC_TYPES];
-  private final AtomicLongArray onHitCacheMetrics= 
-      new AtomicLongArray(NUM_BLOCK_CATEGORIES * BOOL_VALUES.length);
 
   private SchemaMetrics(final String tableName, final String cfName) {
     String metricPrefix = SchemaMetrics.generateSchemaMetricsPrefix(
@@ -266,9 +261,6 @@ public class SchemaMetrics {
 
     for (BlockCategory blockCategory : BlockCategory.values()) {
       for (boolean isCompaction : BOOL_VALUES) {
-        // initialize the cache metrics
-        onHitCacheMetrics.set(getCacheHitMetricIndex(blockCategory, isCompaction), 0);
-        
         for (BlockMetricType metricType : BlockMetricType.values()) {
           if (!metricType.compactionAware && isCompaction) {
             continue;
@@ -344,11 +336,6 @@ public class SchemaMetrics {
     return existingMetrics != null ? existingMetrics : schemaMetrics;
   }
 
-  private static final int getCacheHitMetricIndex (BlockCategory blockCategory,
-      boolean isCompaction) {
-    return blockCategory.ordinal() * BOOL_VALUES.length + (isCompaction ? 1 : 0);
-  }
-  
   private static final int getBlockMetricIndex(BlockCategory blockCategory,
       boolean isCompaction, BlockMetricType metricType) {
     int i = 0;
@@ -378,20 +365,11 @@ public class SchemaMetrics {
    */
   private void incrNumericMetric(BlockCategory blockCategory,
       boolean isCompaction, BlockMetricType metricType) {
-    incrNumericMetric (blockCategory, isCompaction, metricType, 1);
-  }
-  
-  /**
-   * Increments the given metric, both per-CF and aggregate, for both the given
-   * category and all categories in aggregate (four counters total).
-   */
-  private void incrNumericMetric(BlockCategory blockCategory,
-      boolean isCompaction, BlockMetricType metricType, long amount) {
     if (blockCategory == null) {
       blockCategory = BlockCategory.UNKNOWN;  // So that we see this in stats.
     }
     RegionMetricsStorage.incrNumericMetric(getBlockMetricName(blockCategory,
-        isCompaction, metricType), amount);
+        isCompaction, metricType), 1);
 
     if (blockCategory != BlockCategory.ALL_CATEGORIES) {
       incrNumericMetric(BlockCategory.ALL_CATEGORIES, isCompaction,
@@ -467,59 +445,14 @@ public class SchemaMetrics {
    */
   public void updateOnCacheHit(BlockCategory blockCategory,
       boolean isCompaction) {
-    updateOnCacheHit (blockCategory, isCompaction, 1);
-  }
-  
-  /**
-   * Updates the number of hits and the total number of block reads on a block
-   * cache hit.
-   */
-  public void updateOnCacheHit(BlockCategory blockCategory,
-      boolean isCompaction, long count) {
     blockCategory.expectSpecific();
-    int idx = getCacheHitMetricIndex(blockCategory, isCompaction);
-    
-    if (this.onHitCacheMetrics.addAndGet(idx, count) > THRESHOLD_METRICS_FLUSH) {
-      flushCertainOnCacheHitMetrics(blockCategory, isCompaction);
-    }
-  }
-  
-  private void flushCertainOnCacheHitMetrics(BlockCategory blockCategory, boolean isCompaction) {
-    int idx = getCacheHitMetricIndex(blockCategory, isCompaction);
-    long tempCount = this.onHitCacheMetrics.getAndSet(idx, 0);
-    
-    if (tempCount > 0) {
-      incrNumericMetric(blockCategory, isCompaction, BlockMetricType.CACHE_HIT, tempCount);
-      incrNumericMetric(blockCategory, isCompaction, BlockMetricType.READ_COUNT, tempCount);
-      if (this != ALL_SCHEMA_METRICS) {
-        ALL_SCHEMA_METRICS.updateOnCacheHit(blockCategory, isCompaction, tempCount);
-      }
-    }
-  }
-  
-  /**
-   * Flush the on cache hit metrics;
-   */
-  private void flushOnCacheHitMetrics() {
-    for (BlockCategory blockCategory : BlockCategory.values()) {
-      for (boolean isCompaction : BOOL_VALUES) {
-        flushCertainOnCacheHitMetrics (blockCategory, isCompaction);
-      }
-    }
-  }
-
-  /**
-   * Notify the SchemaMetrics to flush all of the the metrics
-   */
-  public void flushMetrics() {
-    // currently only for "on cache hit metrics"
-    flushOnCacheHitMetrics();
-    
+    incrNumericMetric(blockCategory, isCompaction, BlockMetricType.CACHE_HIT);
+    incrNumericMetric(blockCategory, isCompaction, BlockMetricType.READ_COUNT);
     if (this != ALL_SCHEMA_METRICS) {
-      ALL_SCHEMA_METRICS.flushMetrics();
+      ALL_SCHEMA_METRICS.updateOnCacheHit(blockCategory, isCompaction);
     }
   }
-  
+
   /**
    * Updates read time, the number of misses, and the total number of block
    * reads on a block cache miss.

Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/metrics/TestSchemaMetrics.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/metrics/TestSchemaMetrics.java?rev=1402588&r1=1402587&r2=1402588&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/metrics/TestSchemaMetrics.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/metrics/TestSchemaMetrics.java Fri Oct 26 17:29:12 2012
@@ -201,10 +201,8 @@ public class TestSchemaMetrics {
 
           for (boolean isCompaction : BOOL_VALUES) {
             sm.updateOnCacheHit(blockCat, isCompaction);
-            sm.flushMetrics();
             checkMetrics();
             sm.updateOnCacheMiss(blockCat, isCompaction, rand.nextInt());
-            sm.flushMetrics();
             checkMetrics();
           }