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 2008/11/24 23:58:36 UTC
svn commit: r720325 - in /hadoop/hbase/trunk: CHANGES.txt
src/java/org/apache/hadoop/hbase/regionserver/MemcacheFlusher.java
Author: stack
Date: Mon Nov 24 14:58:36 2008
New Revision: 720325
URL: http://svn.apache.org/viewvc?rev=720325&view=rev
Log:
HBASE-1023 Check global flusher
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=720325&r1=720324&r2=720325&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Mon Nov 24 14:58:36 2008
@@ -82,6 +82,7 @@
HBASE-1009 Master stuck in loop wanting to assign but regions are closing
HBASE-1016 Fix example in javadoc overvie
HBASE-1021 hbase metrics FileContext not working
+ HBASE-1023 Check global flusher
IMPROVEMENTS
HBASE-901 Add a limit to key length, check key and value length on client side
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=720325&r1=720324&r2=720325&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 Mon Nov 24 14:58:36 2008
@@ -220,17 +220,23 @@
*/
private synchronized void flushSomeRegions() {
// keep flushing until we hit the low water mark
+ long globalMemcacheSize = -1;
for (SortedMap<Long, HRegion> m =
this.server.getCopyOfOnlineRegionsSortedBySize();
- server.getGlobalMemcacheSize() >= globalMemcacheLimitLowMark;) {
+ (globalMemcacheSize = server.getGlobalMemcacheSize()) >=
+ this.globalMemcacheLimitLowMark;) {
// flush the region with the biggest memcache
if (m.size() <= 0) {
LOG.info("No online regions to flush though we've been asked flush " +
- "some; globalMemcacheSize=" + this.server.getGlobalMemcacheSize() +
+ "some; globalMemcacheSize=" + globalMemcacheSize +
", globalMemcacheLimitLowMark=" + this.globalMemcacheLimitLowMark);
break;
}
HRegion biggestMemcacheRegion = m.remove(m.firstKey());
+ LOG.info("Forced flushing of " + biggestMemcacheRegion.toString() +
+ " because global memcache limit of " + this.globalMemcacheLimit +
+ " exceeded; currenly " + globalMemcacheSize + " and flushing till " +
+ this.globalMemcacheLimitLowMark);
if (!flushRegion(biggestMemcacheRegion, true)) {
// Something bad happened - give up.
break;