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 2010/04/15 00:40:04 UTC

svn commit: r934231 - in /hadoop/hbase/trunk: CHANGES.txt core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java core/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java

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());