Index: src/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java =================================================================== --- src/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java (revision 5724) +++ src/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java (working copy) @@ -228,7 +228,10 @@ // queue if there's too many files. if (removeFromQueue) { checkStoreFileCount(region); - } else if (isTooManyStoreFiles(region)) { + } else if ((!region.getRegionInfo().isMetaRegion()) && + isTooManyStoreFiles(region)) { + // Note: We don't impose blockingStoreFiles constraint on meta regions + LOG.warn("Region " + region.getRegionNameAsString() + " has too many " + "store files, putting it back at the end of the flush queue."); server.compactSplitThread.compactionRequested(region, getName()); Index: src/java/org/apache/hadoop/hbase/regionserver/HRegion.java =================================================================== --- src/java/org/apache/hadoop/hbase/regionserver/HRegion.java (revision 5724) +++ src/java/org/apache/hadoop/hbase/regionserver/HRegion.java (working copy) @@ -1492,6 +1492,10 @@ * the notify. */ private void checkResources() { + + // If catalog region, do not impose resource constraints or block updates. + if (this.getRegionInfo().isMetaRegion()) return; + boolean blocked = false; while (this.memstoreSize.get() > this.blockingMemStoreSize) { requestFlush(); Index: src/java/org/apache/hadoop/hbase/HTableDescriptor.java =================================================================== --- src/java/org/apache/hadoop/hbase/HTableDescriptor.java (revision 5718) +++ src/java/org/apache/hadoop/hbase/HTableDescriptor.java (working copy) @@ -114,7 +114,6 @@ for(HColumnDescriptor descriptor : families) { this.families.put(descriptor.getName(), descriptor); } - setMemStoreFlushSize(16 * 1024); } /**