You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2013/05/21 07:37:48 UTC
svn commit: r1484663 - in
/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver:
HRegion.java HRegionServer.java
Author: larsh
Date: Tue May 21 05:37:48 2013
New Revision: 1484663
URL: http://svn.apache.org/r1484663
Log:
HBASE-8282 User triggered flushes does not allow compaction to get triggered even if compaction criteria is met (Ram)
Modified:
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=1484663&r1=1484662&r2=1484663&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Tue May 21 05:37:48 2013
@@ -1405,7 +1405,7 @@ public class HRegion implements HeapSize
* <p>This method may block for some time, so it should not be called from a
* time-sensitive thread.
*
- * @return true if cache was flushed
+ * @return true if the region needs compaction
*
* @throws IOException general io exceptions
* @throws DroppedSnapshotException Thrown when replay of hlog is required
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=1484663&r1=1484662&r2=1484663&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Tue May 21 05:37:48 2013
@@ -2449,7 +2449,10 @@ public class HRegionServer implements HR
throw new IllegalArgumentException("No region : " + new String(regionName)
+ " available");
}
- region.flushcache();
+ boolean needsCompaction = region.flushcache();
+ if (needsCompaction) {
+ this.compactSplitThread.requestCompaction(region, "Compaction through user triggered flush");
+ }
}
/**
@@ -2462,7 +2465,13 @@ public class HRegionServer implements HR
throw new IllegalArgumentException("No region : " + new String(regionName)
+ " available");
}
- if (region.getLastFlushTime() < ifOlderThanTS) region.flushcache();
+ if (region.getLastFlushTime() < ifOlderThanTS) {
+ boolean needsCompaction = region.flushcache();
+ if (needsCompaction) {
+ this.compactSplitThread
+ .requestCompaction(region, "Compaction through user triggered flush");
+ }
+ }
}
/**
@@ -3247,7 +3256,10 @@ public class HRegionServer implements HR
checkOpen();
LOG.info("Flushing " + regionInfo.getRegionNameAsString());
HRegion region = getRegion(regionInfo.getRegionName());
- region.flushcache();
+ boolean needsCompaction = region.flushcache();
+ if (needsCompaction) {
+ this.compactSplitThread.requestCompaction(region, "Compaction through user triggered flush");
+ }
}
@Override