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)) + ")");
}