Index: src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java (revision 1182081) +++ src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java (working copy) @@ -355,10 +355,12 @@ // Note: We don't impose blockingStoreFiles constraint on meta regions LOG.warn("Region " + region.getRegionNameAsString() + " has too many " + "store files; delaying flush up to " + this.blockingWaitTime + "ms"); + if (!this.server.compactSplitThread.requestSplit(region)) { + this.server.compactSplitThread.requestCompaction(region, getName(), + CompactSplitThread.PRIORITY_TOO_MANY_STORE_FILES); + } } - if (!this.server.compactSplitThread.requestSplit(region)) { - this.server.compactSplitThread.requestCompaction(region, getName()); - } + // Put back on the queue. Have it come back out of the queue // after a delay of this.blockingWaitTime / 100 ms. this.flushQueue.add(fqe.requeue(this.blockingWaitTime / 100)); Index: src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java (revision 1182081) +++ src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java (working copy) @@ -52,6 +52,7 @@ /* The default priority for user-specified compaction requests. * The user gets top priority unless we have blocking compactions. (Pri <= 0) */ + public static final int PRIORITY_TOO_MANY_STORE_FILES = 2; public static final int PRIORITY_USER = 1; public static final int NO_PRIORITY = Integer.MIN_VALUE; Index: src/main/java/org/apache/hadoop/hbase/regionserver/Store.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/Store.java (revision 1182081) +++ src/main/java/org/apache/hadoop/hbase/regionserver/Store.java (working copy) @@ -1002,7 +1002,8 @@ } if (filesToCompact.isEmpty()) { - LOG.debug(this.storeNameStr + ": no store files to compact"); + LOG.debug(this.getHRegionInfo().getEncodedName() + " - " + + this.storeNameStr + ": no store files to compact"); return filesToCompact; }