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