Index: src/main/java/org/apache/hadoop/hbase/regionserver/PriorityCompactionQueue.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/PriorityCompactionQueue.java (revision 1167482) +++ src/main/java/org/apache/hadoop/hbase/regionserver/PriorityCompactionQueue.java (working copy) @@ -26,8 +26,10 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.PriorityBlockingQueue; import java.util.concurrent.TimeUnit; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; /** * This class delegates to the BlockingQueue but wraps all HRegions in @@ -47,21 +49,17 @@ private class CompactionRequest implements Comparable { private final HRegion r; private final int p; - private final Date date; + private final long date; public CompactionRequest(HRegion r, int p) { - this(r, p, null); + this(r, p, EnvironmentEdgeManager.currentTimeMillis()); } - public CompactionRequest(HRegion r, int p, Date d) { + public CompactionRequest(HRegion r, int p, long d) { if (r == null) { throw new NullPointerException("HRegion cannot be null"); } - if (d == null) { - d = new Date(); - } - this.r = r; this.p = p; this.date = d; @@ -91,11 +89,13 @@ return compareVal; } - compareVal = date.compareTo(request.date); - if (compareVal != 0) { - return compareVal; + if (date < request.date) { + return -1; } - + if (date > request.date) { + return 1; + } + //break the tie arbitrarily return -1; }