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/10/11 04:06:42 UTC

svn commit: r1181416 - in /hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase: io/hfile/HFile.java regionserver/Store.java regionserver/StoreFile.java

Author: nspiegelberg
Date: Tue Oct 11 02:06:42 2011
New Revision: 1181416

URL: http://svn.apache.org/viewvc?rev=1181416&view=rev
Log:
additional instrumentation for debugging IllegalArgumentException in scanner

Summary:
additional instrumentation for debugging IllegalArgumentException in scanner

Reviewed By:aravind

Test Plan:push to dev cluster and ran compaction tests.

Modified:
    hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java
    hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
    hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java

Modified: hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java?rev=1181416&r1=1181415&r2=1181416&view=diff
==============================================================================
--- hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java (original)
+++ hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java Tue Oct 11 02:06:42 2011
@@ -1291,7 +1291,17 @@ public class HFile {
         if (block == null) {
           throw new IOException("Next called on non-seeked scanner");
         }
-        block.position(block.position() + currKeyLen + currValueLen);
+        try {
+          block.position(block.position() + currKeyLen + currValueLen);
+        } catch (IllegalArgumentException e) {
+          LOG.error("Current pos = " + block.position() +
+                    "; currKeyLen = " + currKeyLen +
+                    "; currValLen = " + currValueLen +
+                    "; block limit = " + block.limit() +
+                    "; HFile name = " + reader.getName() +
+                    "; currBlock id = " + this.currBlock);
+          throw e;
+        }
         if (block.remaining() <= 0) {
           // LOG.debug("Fetch next block");
           currBlock++;

Modified: hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java?rev=1181416&r1=1181415&r2=1181416&view=diff
==============================================================================
--- hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java (original)
+++ hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java Tue Oct 11 02:06:42 2011
@@ -797,10 +797,13 @@ public class Store implements HeapSize {
       if (r != null) {
         // NOTE: getFilterEntries could cause under-sized blooms if the user
         //       switches bloom type (e.g. from ROW to ROWCOL)
-        maxKeyCount += (r.getBloomFilterType() == family.getBloomFilterType())
-          ? r.getFilterEntries() : r.getEntries();
+        int keyCount = (r.getBloomFilterType() == family.getBloomFilterType())
+            ? r.getFilterEntries() : r.getEntries();
+        maxKeyCount += keyCount;
+        LOG.info("Compacting: " + file + "; keyCount = " + keyCount + "; Bloom Type = " + r.getBloomFilterType().toString());
       }
     }
+    LOG.info("Estimated total keyCount for output of compaction = " + maxKeyCount);
 
     // For each file, obtain a scanner:
     List<StoreFileScanner> scanners = StoreFileScanner

Modified: hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java?rev=1181416&r1=1181415&r2=1181416&view=diff
==============================================================================
--- hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java (original)
+++ hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java Tue Oct 11 02:06:42 2011
@@ -854,7 +854,8 @@ public class StoreFile {
           int b = this.bloomFilter.getByteSize();
           int k = this.bloomFilter.getKeyCount();
           int m = this.bloomFilter.getMaxKeys();
-          StoreFile.LOG.info("Bloom added to HFile.  " + b + "B, " +
+          StoreFile.LOG.info("Bloom added to HFile ("
+              + getPath() + "): " + b + "B, " +
               k + "/" + m + " (" + NumberFormat.getPercentInstance().format(
                 ((double)k) / ((double)m)) + ")");
         }