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;