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/12/03 23:39:38 UTC

svn commit: r723109 - in /hadoop/hbase/trunk: CHANGES.txt src/java/org/apache/hadoop/hbase/io/BloomFilterMapFile.java src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java src/java/org/onelab/filter/Filter.java

Author: stack
Date: Wed Dec  3 14:39:37 2008
New Revision: 723109

URL: http://svn.apache.org/viewvc?rev=723109&view=rev
Log:
HBASE-1039 Compaction fails if bloomfilters are enabled

Modified:
    hadoop/hbase/trunk/CHANGES.txt
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/BloomFilterMapFile.java
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java
    hadoop/hbase/trunk/src/java/org/onelab/filter/Filter.java

Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=723109&r1=723108&r2=723109&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Wed Dec  3 14:39:37 2008
@@ -94,6 +94,7 @@
                (Ryan Smith via Jim Kellerman)
    HBASE-927   We don't recover if HRS hosting -ROOT-/.META. goes down -
                (fix bug in createTable which caused tests to fail)
+   HBASE-1039  Compaction fails if bloomfilters are enabled
 
       
   IMPROVEMENTS

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/BloomFilterMapFile.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/BloomFilterMapFile.java?rev=723109&r1=723108&r2=723109&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/BloomFilterMapFile.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/io/BloomFilterMapFile.java Wed Dec  3 14:39:37 2008
@@ -75,8 +75,8 @@
     throws IOException {
       Path filterFile = new Path(dirName, BLOOMFILTER_FILE_NAME);
       if(!fs.exists(filterFile)) {
-        throw new FileNotFoundException("Could not find bloom filter: " +
-            filterFile);
+        LOG.warn("FileNotFound: " + filterFile + "; proceeding without");
+        return null;
       }
       BloomFilter filter = new BloomFilter();
       FSDataInputStream in = fs.open(filterFile);
@@ -180,13 +180,19 @@
          * If we fix the number of hash functions and know the number of
          * entries, then the optimal vector size m = (k * n) / ln(2)
          */
-        this.bloomFilter = new BloomFilter(
+        BloomFilter f = null;
+        try {
+          f  = new BloomFilter(
             (int) Math.ceil(
                 (DEFAULT_NUMBER_OF_HASH_FUNCTIONS * (1.0 * nrows)) /
                 Math.log(2.0)),
             (int) DEFAULT_NUMBER_OF_HASH_FUNCTIONS,
             Hash.getHashType(conf)
-        );
+          );
+        } catch (IllegalArgumentException e) {
+          LOG.warn("Failed creating bloomfilter; proceeding without", e);
+        }
+        this.bloomFilter = f;
       } else {
         this.bloomFilter = null;
       }

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java?rev=723109&r1=723108&r2=723109&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java Wed Dec  3 14:39:37 2008
@@ -62,7 +62,8 @@
    * @param conf
    * @param server
    */
-  public MemcacheFlusher(final HBaseConfiguration conf, final HRegionServer server) {
+  public MemcacheFlusher(final HBaseConfiguration conf,
+      final HRegionServer server) {
     super();
     this.server = server;
     threadWakeFrequency = conf.getLong(
@@ -235,10 +236,10 @@
       HRegion biggestMemcacheRegion = m.remove(m.firstKey());
       LOG.info("Forced flushing of " +  biggestMemcacheRegion.toString() +
         " because global memcache limit of " + this.globalMemcacheLimit +
-        " exceeded; currenly " + globalMemcacheSize + " and flushing till " +
+        " exceeded; currently " + globalMemcacheSize + " and flushing till " +
         this.globalMemcacheLimitLowMark);
       if (!flushRegion(biggestMemcacheRegion, true)) {
-        // Something bad happened - give up.
+        LOG.warn("Flush failed");
         break;
       }
     }

Modified: hadoop/hbase/trunk/src/java/org/onelab/filter/Filter.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/onelab/filter/Filter.java?rev=723109&r1=723108&r2=723109&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/onelab/filter/Filter.java (original)
+++ hadoop/hbase/trunk/src/java/org/onelab/filter/Filter.java Wed Dec  3 14:39:37 2008
@@ -98,7 +98,7 @@
    * @param nbHash The number of hash functions to consider.
    * @param hashType type of the hashing function (see {@link Hash}).
    */
-  protected Filter(int vectorSize, int nbHash, int hashType){
+  protected Filter(int vectorSize, int nbHash, int hashType) {
     this.vectorSize = vectorSize;
     this.nbHash = nbHash;
     this.hashType = hashType;