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;
}