Author: stack Date: Wed Apr 14 22:40:04 2010 New Revision: 934231 URL: http://svn.apache.org/viewvc?rev=934231&view=rev Log: HBASE-2439 HBase can get stuck if updates to META are blocked
Modified: hadoop/hbase/trunk/CHANGES.txt hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java Modified: hadoop/hbase/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=934231&r1=934230&r2=934231&view=diff ============================================================================== --- hadoop/hbase/trunk/CHANGES.txt (original) +++ hadoop/hbase/trunk/CHANGES.txt Wed Apr 14 22:40:04 2010 @@ -269,6 +269,8 @@ Release 0.21.0 - Unreleased HBASE-2346 Usage of FilterList slows down scans HBASE-2341 ZK settings for initLimit/syncLimit should not have been removed from hbase-default.xml + HBASE-2439 HBase can get stuck if updates to META are blocked + (Kannan Muthukkaruppan via Stack) IMPROVEMENTS HBASE-1760 Cleanup TODOs in HTable Modified: hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=934231&r1=934230&r2=934231&view=diff ============================================================================== --- hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original) +++ hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Wed Apr 14 22:40:04 2010 @@ -1444,6 +1444,10 @@ public class HRegion implements HConstan * 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(); Modified: hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java?rev=934231&r1=934230&r2=934231&view=diff ============================================================================== --- hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java (original) +++ hadoop/hbase/trunk/core/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java Wed Apr 14 22:40:04 2010 @@ -221,7 +221,10 @@ class MemStoreFlusher extends Thread imp // 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());