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 2008/10/28 00:22:29 UTC

svn commit: r708376 - in /hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase: HColumnDescriptor.java regionserver/HRegionServer.java

Author: stack
Date: Mon Oct 27 16:22:29 2008
New Revision: 708376

URL: http://svn.apache.org/viewvc?rev=708376&view=rev
Log:
HBASE-967 [Optimization] Cache cell maximum length (HCD.getMaxValueLength); its used checking batch size

Modified:
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HColumnDescriptor.java
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java

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=708376&r1=708375&r2=708376&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 Mon Oct 27 16:22:29 2008
@@ -86,6 +86,14 @@
    * Default maximum cell length.
    */
   public static final int DEFAULT_LENGTH = Integer.MAX_VALUE;
+  public static final Integer DEFAULT_LENGTH_INTEGER =
+    Integer.valueOf(DEFAULT_LENGTH);
+  
+  /*
+   * Cache here the HCD value.
+   * Question: its OK to cache since when we're reenable, we create a new HCD?
+   */
+  private volatile Integer maxValueLength = null;
 
   /**
    * Default setting for whether to serve from memory or not.
@@ -322,7 +330,7 @@
   public int getMaxVersions() {
     String value = getValue(HConstants.VERSIONS);
     if (value != null)
-      return Integer.valueOf(value);
+      return Integer.valueOf(value).intValue();
     return DEFAULT_VERSIONS;
   }
 
@@ -359,7 +367,7 @@
   public boolean isInMemory() {
     String value = getValue(HConstants.IN_MEMORY);
     if (value != null)
-      return Boolean.valueOf(value);
+      return Boolean.valueOf(value).booleanValue();
     return DEFAULT_IN_MEMORY;
   }
   
@@ -374,11 +382,13 @@
   /**
    * @return Maximum value length.
    */
-  public int getMaxValueLength() {
-    String value = getValue(LENGTH);
-    if (value != null)
-      return Integer.valueOf(value);
-    return DEFAULT_LENGTH;
+  public synchronized int getMaxValueLength() {
+    if (this.maxValueLength == null) {
+      String value = getValue(LENGTH);
+      this.maxValueLength = (value != null)?
+        Integer.decode(value): DEFAULT_LENGTH_INTEGER;
+    }
+    return this.maxValueLength.intValue();
   }
 
   /**
@@ -386,6 +396,7 @@
    */
   public void setMaxValueLength(int maxLength) {
     setValue(LENGTH, Integer.toString(maxLength));
+    this.maxValueLength = null;
   }
 
   /**
@@ -426,7 +437,7 @@
   public boolean isBloomfilter() {
     String value = getValue(BLOOMFILTER);
     if (value != null)
-      return Boolean.valueOf(value);
+      return Boolean.valueOf(value).booleanValue();
     return DEFAULT_BLOOMFILTER;
   }
 
@@ -444,7 +455,7 @@
   public int getMapFileIndexInterval() {
     String value = getValue(MAPFILE_INDEX_INTERVAL);
     if (value != null)
-      return Integer.valueOf(value);
+      return Integer.valueOf(value).intValue();
     return DEFAULT_MAPFILE_INDEX_INTERVAL;
   }
 

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=708376&r1=708375&r2=708376&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Mon Oct 27 16:22:29 2008
@@ -1208,7 +1208,6 @@
     HTableDescriptor desc = region.getTableDesc();
     for (Iterator<BatchOperation> iter = 
       batchUpdate.iterator(); iter.hasNext();) {
-      
       BatchOperation operation = iter.next();
       if (operation.getValue() != null) {
         HColumnDescriptor fam =