You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ns...@apache.org on 2011/12/28 20:40:41 UTC
svn commit: r1225317 - in
/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver:
HRegion.java StoreScanner.java metrics/SchemaMetrics.java
Author: nspiegelberg
Date: Wed Dec 28 19:40:41 2011
New Revision: 1225317
URL: http://svn.apache.org/viewvc?rev=1225317&view=rev
Log:
[master] upgrade the INCREMENT and GET SIZE metrics as schema metrics
Summary:
The INCREMENT and GET SIZE metrics are still using the old style of per column
family metrics. So upgrade these 2 metrics as schema metrics.
Tag this diff as [master] since this problem has been solved in open source
trunk.
Test Plan:
Run all the unit tests. The following 4 unit tests are failed with and without
this change.
TestScanner
TestZKBasedReopenRegion
TestHeapSize
TestRegionStateOnMasterFailure
Reviewers: kannan, mbautin
Reviewed By: kannan
CC: hbase-eng@lists, nspiegelberg, kannan
Differential Revision: 377941
Modified:
hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/SchemaMetrics.java
Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=1225317&r1=1225316&r2=1225317&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Wed Dec 28 19:40:41 2011
@@ -293,20 +293,6 @@ public class HRegion implements HeapSize
new ConcurrentHashMap<String,
Pair<AtomicLong, AtomicInteger>>();
- /**
- * Method to transform a single column family in byte[] format into a
- * signature for printing out in metrics. Used as overloading so as to not
- * create an extra Set. Could have gone further and imposed restriction on the
- * Set version to be used for length > 1, but that puts strain on method user.
- *
- * @param family
- * the family to convert
- * @return the string to print out in metrics
- */
- public static String createMutationSignature(byte[] family) {
- return SchemaMetrics.CF_PREFIX + Bytes.toString(family);
- }
-
public static void incrNumericMetric(String key, long amount) {
AtomicLong oldVal = numericMetrics.get(key);
if (oldVal == null) {
@@ -3543,7 +3529,8 @@ public class HRegion implements HeapSize
// do after lock
long after = EnvironmentEdgeManager.currentTimeMillis();
- String signature = HRegion.createMutationSignature(family);
+ String signature = SchemaMetrics.generateSchemaMetricsPrefix(
+ this.getTableDesc().getNameAsString(), family.toString());
HRegion.incrTimeVaryingMetric(signature + ".increment_", after - before);
if (flush) {
Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java?rev=1225317&r1=1225316&r2=1225317&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java Wed Dec 28 19:40:41 2011
@@ -29,6 +29,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Scan;
+import org.apache.hadoop.hbase.regionserver.metrics.SchemaMetrics;
import org.apache.hadoop.hbase.util.Bytes;
/**
@@ -183,13 +184,15 @@ class StoreScanner extends NonLazyKeyVal
* To be called after the store variable has been initialized!
*/
private void initializeMetricNames() {
- byte[] family;
- if (null != this.store) {
- family = this.store.getFamily().getName();
- } else {
- family = Bytes.toBytes("__unknown");
+ String tableName = SchemaMetrics.UNKNOWN;
+ String family = SchemaMetrics.UNKNOWN;
+ if (store != null) {
+ tableName = store.getTableName();
+ family = Bytes.toString(store.getFamily().getName());
}
- String mutationSignature = HRegion.createMutationSignature(family);
+
+ String mutationSignature = SchemaMetrics.generateSchemaMetricsPrefix(
+ tableName, family);
this.metricNameGetsize = mutationSignature + ".getsize";
}
Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/SchemaMetrics.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/SchemaMetrics.java?rev=1225317&r1=1225316&r2=1225317&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/SchemaMetrics.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/SchemaMetrics.java Wed Dec 28 19:40:41 2011
@@ -514,7 +514,7 @@ public class SchemaMetrics {
* @param cfName the column family name
* @return schemaMetricsPrefix
*/
- private static String generateSchemaMetricsPrefix(final String tableName,
+ public static String generateSchemaMetricsPrefix(final String tableName,
final String cfName){
String schemaMetricPrefix =
tableName.equals(TOTAL_KEY) ? "" : TABLE_PREFIX + tableName + ".";