You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2012/12/27 16:43:13 UTC
[1/3] git commit: improve compaction result logging
improve compaction result logging
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/26a9ab1f
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/26a9ab1f
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/26a9ab1f
Branch: refs/heads/cassandra-1.2
Commit: 26a9ab1f07a4ed20fb9e02fcb757793754a3d150
Parents: 0888a0c
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Dec 27 10:42:53 2012 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Dec 27 10:42:53 2012 -0500
----------------------------------------------------------------------
.../cassandra/db/compaction/CompactionTask.java | 23 +++++++++++---
.../apache/cassandra/io/sstable/Descriptor.java | 2 +-
2 files changed, 19 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/26a9ab1f/src/java/org/apache/cassandra/db/compaction/CompactionTask.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionTask.java b/src/java/org/apache/cassandra/db/compaction/CompactionTask.java
index 3f6901a..e4e15bc 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionTask.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionTask.java
@@ -21,9 +21,13 @@ import java.io.File;
import java.io.IOException;
import java.util.*;
+import javax.print.attribute.IntegerSyntax;
+
import com.google.common.base.Predicates;
import com.google.common.base.Throwables;
+import com.google.common.collect.Iterables;
import com.google.common.collect.Iterators;
+import com.google.common.primitives.Longs;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -229,20 +233,29 @@ public class CompactionTask extends AbstractCompactionTask
key.cacheKey(entry.getKey(), entry.getValue());
}
+ // log a bunch of statistics about the result
long dTime = System.currentTimeMillis() - startTime;
long startsize = SSTable.getTotalBytes(toCompact);
long endsize = SSTable.getTotalBytes(sstables);
double ratio = (double)endsize / (double)startsize;
StringBuilder builder = new StringBuilder();
- builder.append("[");
for (SSTableReader reader : sstables)
- builder.append(reader.getFilename()).append(",");
- builder.append("]");
+ builder.append(reader.descriptor.baseFilename()).append(",");
double mbps = dTime > 0 ? (double)endsize/(1024*1024)/((double)dTime/1000) : 0;
- logger.info(String.format("Compacted to %s. %,d to %,d (~%d%% of original) bytes for %,d keys at %fMB/s. Time: %,dms. Compaction merge counts: %s.",
- builder.toString(), startsize, endsize, (int) (ratio * 100), totalkeysWritten, mbps, dTime, Arrays.toString(ci.getMergedRowCounts())));
+ long totalSourceRows = 0;
+ String mergeSummary = "";
+ for (int i = 0; i < ci.getMergedRowCounts().length; i++)
+ {
+ int rows = i + 1;
+ int count = ci.getMergedRowCounts()[i];
+ totalSourceRows += rows * count;
+ mergeSummary += String.format("%d:%d, ", rows, count);
+ }
+
+ logger.info(String.format("Compacted %d sstables to [%s]. %,d bytes to %,d (~%d%% of original) in %,dms = %fMB/s. %,d total rows, %,d unique. Row merge counts were {%s}",
+ toCompact.size(), builder.toString(), startsize, endsize, (int) (ratio * 100), dTime, mbps, totalSourceRows, totalkeysWritten, mergeSummary));
logger.debug(String.format("CF Total Bytes Compacted: %,d", CompactionTask.addToTotalBytesCompacted(endsize)));
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/26a9ab1f/src/java/org/apache/cassandra/io/sstable/Descriptor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/Descriptor.java b/src/java/org/apache/cassandra/io/sstable/Descriptor.java
index a3bce13..18c8a41 100644
--- a/src/java/org/apache/cassandra/io/sstable/Descriptor.java
+++ b/src/java/org/apache/cassandra/io/sstable/Descriptor.java
@@ -207,7 +207,7 @@ public class Descriptor
return filenameFor(component.name());
}
- private String baseFilename()
+ public String baseFilename()
{
StringBuilder buff = new StringBuilder();
buff.append(directory).append(File.separatorChar);