You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jd...@apache.org on 2009/03/06 16:43:29 UTC

svn commit: r750943 - in /hadoop/hbase/branches/0.19: CHANGES.txt src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java

Author: jdcryans
Date: Fri Mar  6 15:43:29 2009
New Revision: 750943

URL: http://svn.apache.org/viewvc?rev=750943&view=rev
Log:
HBASE-1238  Under upload, region servers are unable 
            to compact when loaded with hundreds of regions
This is a hack, compactions may run prematurely.

Modified:
    hadoop/hbase/branches/0.19/CHANGES.txt
    hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java

Modified: hadoop/hbase/branches/0.19/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/CHANGES.txt?rev=750943&r1=750942&r2=750943&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.19/CHANGES.txt Fri Mar  6 15:43:29 2009
@@ -18,6 +18,8 @@
    HBASE-1233  Transactional fixes: Overly conservative scan read-set,
                potential CME (Clint Morgan via Stack)
    HBASE-1185  wrong request/sec in the gui reporting wrong
+   HBASE-1238  Under upload, region servers are unable 
+               to compact when loaded with hundreds of regions
 
   IMPROVEMENTS
    HBASE-845   HCM.isTableEnabled doesn't really tell if it is, or not

Modified: hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java?rev=750943&r1=750942&r2=750943&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java (original)
+++ hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java Fri Mar  6 15:43:29 2009
@@ -21,6 +21,7 @@
 
 import java.io.IOException;
 import java.lang.management.ManagementFactory;
+import java.util.ArrayList;
 import java.util.ConcurrentModificationException;
 import java.util.HashSet;
 import java.util.SortedMap;
@@ -268,6 +269,7 @@
   private synchronized void flushSomeRegions() {
     // keep flushing until we hit the low water mark
     long globalMemcacheSize = -1;
+    ArrayList<HRegion> regionsToCompact = new ArrayList();
     for (SortedMap<Long, HRegion> m =
         this.server.getCopyOfOnlineRegionsSortedBySize();
       (globalMemcacheSize = server.getGlobalMemcacheSize()) >=
@@ -292,6 +294,10 @@
         LOG.warn("Flush failed");
         break;
       }
+      regionsToCompact.add(biggestMemcacheRegion);
+    }
+    for (HRegion region : regionsToCompact) {
+      server.compactSplitThread.compactionRequested(region, getName());
     }
   }
 }