You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2009/04/29 00:35:08 UTC
svn commit: r769577 - in /hadoop/hbase/trunk: CHANGES.txt
src/java/org/apache/hadoop/hbase/HColumnDescriptor.java
src/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java
src/java/org/apache/hadoop/hbase/regionserver/Store.java
Author: stack
Date: Tue Apr 28 22:35:07 2009
New Revision: 769577
URL: http://svn.apache.org/viewvc?rev=769577&view=rev
Log:
HBASE-1355 [performance] Cache family maxversions; we were calculating on each access
Modified:
hadoop/hbase/trunk/CHANGES.txt
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HColumnDescriptor.java
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java
Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=769577&r1=769576&r2=769577&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Tue Apr 28 22:35:07 2009
@@ -90,6 +90,8 @@
HBASE-1287 Partitioner class not used in TableMapReduceUtil.initTableReduceJob()
(Lars George and Billy Pearson via Stack)
HBASE-1320 hbase-1234 broke filter tests
+ HBASE-1355 [performance] Cache family maxversions; we were calculating on
+ each access
IMPROVEMENTS
HBASE-1089 Add count of regions on filesystem to master UI; add percentage
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HColumnDescriptor.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HColumnDescriptor.java?rev=769577&r1=769576&r2=769577&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HColumnDescriptor.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HColumnDescriptor.java Tue Apr 28 22:35:07 2009
@@ -145,6 +145,11 @@
protected Map<ImmutableBytesWritable,ImmutableBytesWritable> values =
new HashMap<ImmutableBytesWritable,ImmutableBytesWritable>();
+ /*
+ * Cache the max versions rather than calculate it every time.
+ */
+ private int cachedMaxVersions = -1;
+
/**
* Default constructor. Must be present for Writable.
*/
@@ -370,11 +375,13 @@
/** @return maximum number of versions */
@TOJSON
- public int getMaxVersions() {
- String value = getValue(HConstants.VERSIONS);
- if (value != null)
- return Integer.valueOf(value).intValue();
- return DEFAULT_VERSIONS;
+ public synchronized int getMaxVersions() {
+ if (this.cachedMaxVersions == -1) {
+ String value = getValue(HConstants.VERSIONS);
+ this.cachedMaxVersions = (value != null)?
+ Integer.valueOf(value).intValue(): DEFAULT_VERSIONS;
+ }
+ return this.cachedMaxVersions;
}
/**
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java?rev=769577&r1=769576&r2=769577&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java Tue Apr 28 22:35:07 2009
@@ -632,11 +632,13 @@
Object value = method.invoke(instance, call.getParameters());
int processingTime = (int) (System.currentTimeMillis() - startTime);
int qTime = (int) (startTime-receivedTime);
- LOG.debug("Served: " + call.getMethodName() +
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Served: " + call.getMethodName() +
" queueTime= " + qTime +
" procesingTime= " + processingTime);
- rpcMetrics.rpcQueueTime.inc(qTime);
- rpcMetrics.rpcProcessingTime.inc(processingTime);
+ rpcMetrics.rpcQueueTime.inc(qTime);
+ rpcMetrics.rpcProcessingTime.inc(processingTime);
+ }
MetricsTimeVaryingRate m = rpcMetrics.metricsList.get(call.getMethodName());
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java?rev=769577&r1=769576&r2=769577&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java Tue Apr 28 22:35:07 2009
@@ -1139,9 +1139,9 @@
throw new IllegalArgumentException("Number of versions must be > 0");
}
// Make sure we do not return more than maximum versions for this store.
- return wantedVersions > this.family.getMaxVersions() &&
- wantedVersions != HConstants.ALL_VERSIONS?
- this.family.getMaxVersions(): wantedVersions;
+ int maxVersions = this.family.getMaxVersions();
+ return wantedVersions > maxVersions &&
+ wantedVersions != HConstants.ALL_VERSIONS? maxVersions: wantedVersions;
}
/**