You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by se...@apache.org on 2013/06/24 22:48:13 UTC

svn commit: r1496215 - in /hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase: io/HalfStoreFileReader.java regionserver/compactions/CompactionProgress.java regionserver/compactions/Compactor.java

Author: sershe
Date: Mon Jun 24 20:48:12 2013
New Revision: 1496215

URL: http://svn.apache.org/r1496215
Log:
HBASE-8060 Num compacting KVs diverges from num compacted KVs over time

Modified:
    hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java
    hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/CompactionProgress.java
    hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/Compactor.java

Modified: hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java?rev=1496215&r1=1496214&r2=1496215&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java (original)
+++ hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java Mon Jun 24 20:48:12 2013
@@ -323,4 +323,16 @@ public class HalfStoreFileReader extends
     }
     return this.firstKey;
   }
+
+  @Override
+  public long getEntries() {
+    // Estimate the number of entries as half the original file; this may be wildly inaccurate.
+    return super.getEntries() / 2;
+  }
+
+  @Override
+  public long getFilterEntries() {
+    // Estimate the number of entries as half the original file; this may be wildly inaccurate.
+    return super.getFilterEntries() / 2;
+  }
 }

Modified: hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/CompactionProgress.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/CompactionProgress.java?rev=1496215&r1=1496214&r2=1496215&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/CompactionProgress.java (original)
+++ hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/CompactionProgress.java Mon Jun 24 20:48:12 2013
@@ -51,4 +51,19 @@ public class CompactionProgress {
   public float getProgressPct() {
     return (float)currentCompactedKVs / totalCompactingKVs;
   }
+
+  /**
+   * Cancels the compaction progress, setting things to 0.
+   */
+  public void cancel() {
+    this.currentCompactedKVs = this.totalCompactingKVs = 0;
+  }
+
+  /**
+   * Marks the compaction as complete by setting total to current KV count;
+   * Total KV count is an estimate, so there might be a discrepancy otherwise.
+   */
+  public void complete() {
+    this.totalCompactingKVs = this.currentCompactedKVs;
+  }
 }

Modified: hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/Compactor.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/Compactor.java?rev=1496215&r1=1496214&r2=1496215&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/Compactor.java (original)
+++ hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/Compactor.java Mon Jun 24 20:48:12 2013
@@ -209,7 +209,6 @@ public abstract class Compactor {
           kv.setMemstoreTS(0);
         }
         writer.append(kv);
-        // update progress per key
         ++progress.currentCompactedKVs;
 
         // check periodically to see if a system stop is requested
@@ -217,12 +216,16 @@ public abstract class Compactor {
           bytesWritten += kv.getLength();
           if (bytesWritten > closeCheckInterval) {
             bytesWritten = 0;
-            if (!store.areWritesEnabled()) return false;
+            if (!store.areWritesEnabled()) {
+              progress.cancel();
+              return false;
+            }
           }
         }
       }
       kvs.clear();
     } while (hasMore);
+    progress.complete();
     return true;
   }