Author: jdcryans
Date: Fri Mar 6 18:26:00 2009
New Revision: 751023
URL: http://svn.apache.org/viewvc?rev=751023&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/trunk/CHANGES.txt
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java
Modified: hadoop/hbase/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=751023&r1=751022&r2=751023&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Fri Mar 6 18:26:00 2009
@@ -35,6 +35,8 @@
buffer each iteration-1185 wrong request/sec in the gui
reporting wrong (Brian Beggs via Stack)
HBASE-1245 hfile meta block handling bugs (Ryan Rawson via Stack)
+ HBASE-1238 Under upload, region servers are unable
+ to compact when loaded with hundreds of regions
IMPROVEMENTS
HBASE-1089 Add count of regions on filesystem to master UI; add percentage
Modified:
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java
URL:
http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java?rev=751023&r1=751022&r2=751023&view=diff
==============================================================================
---
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java
(original)
+++
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java
Fri Mar 6 18:26:00 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());
}
}
}