Author: stack
Date: Fri Jun 24 14:22:42 2011
New Revision: 1139320

URL: http://svn.apache.org/viewvc?rev=1139320&view=rev
Log:
HBASE-3969 Outdated data can not be cleaned in time

Modified:
    hbase/branches/0.90/CHANGES.txt
    
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java

Modified: hbase/branches/0.90/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hbase/branches/0.90/CHANGES.txt?rev=1139320&r1=1139319&r2=1139320&view=diff
==============================================================================
--- hbase/branches/0.90/CHANGES.txt (original)
+++ hbase/branches/0.90/CHANGES.txt Fri Jun 24 14:22:42 2011
@@ -44,6 +44,7 @@ Release 0.90.4 - Unreleased
    HBASE-2077  NullPointerException with an open scanner that expired causing
                an immediate region server shutdown -- part 2.
    HBASE-4005  close_region bugs
+   HBASE-3969  Outdated data can not be cleaned in time (zhoushuaifeng)
 
 
   IMPROVEMENT

Modified: 
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: 
http://svn.apache.org/viewvc/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=1139320&r1=1139319&r2=1139320&view=diff
==============================================================================
--- 
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
 (original)
+++ 
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
 Fri Jun 24 14:22:42 2011
@@ -1032,12 +1032,23 @@ public class HRegionServer implements HR
    */
   private static class MajorCompactionChecker extends Chore {
     private final HRegionServer instance;
+    private int majorCompactPriority;
+    private final static int DEFAULT_PRIORITY = Integer.MAX_VALUE;
+
 
     MajorCompactionChecker(final HRegionServer h, final int sleepTime,
         final Stoppable stopper) {
       super("MajorCompactionChecker", sleepTime, h);
       this.instance = h;
       LOG.info("Runs every " + sleepTime + "ms");
+
+      /*
+       * MajorCompactPriority is configurable.
+       * If not set, the compaction will use default priority.
+       */
+      majorCompactPriority = this.instance.conf.getInt(
+        "hbase.regionserver.compactionChecker.majorCompactPriority",
+        DEFAULT_PRIORITY);
     }
 
     @Override
@@ -1046,8 +1057,15 @@ public class HRegionServer implements HR
         try {
           if (r != null && r.isMajorCompaction()) {
             // Queue a compaction. Will recognize if major is needed.
-            this.instance.compactSplitThread.requestCompaction(r, getName()
-              + " requests major compaction");
+               if(majorCompactPriority == DEFAULT_PRIORITY || 
+                   majorCompactPriority > r.getCompactPriority()){
+              this.instance.compactSplitThread.requestCompaction(r, getName()
+                + " requests major compaction use default priority");
+               } else {
+                 this.instance.compactSplitThread.requestCompaction(r, 
getName()
+                + " requests major compaction use configured priority",
+                this.majorCompactPriority);
+               }
           }
         } catch (IOException e) {
           LOG.warn("Failed major compaction check on " + r, e);


Reply via email to