You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2012/03/23 21:00:46 UTC

[5/5] git commit: Report lifetime bytes compacted and number of compactions. Patch by brandonwilliams, reviewed by Nick Bailey for CASSANDRA-4067

Report lifetime bytes compacted and number of compactions.
Patch by brandonwilliams, reviewed by Nick Bailey for CASSANDRA-4067


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f11e4f2a
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f11e4f2a
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f11e4f2a

Branch: refs/heads/cassandra-1.1
Commit: f11e4f2a1c3387083637efc85bcfa7a9d0c3248a
Parents: 5697c39
Author: Brandon Williams <br...@apache.org>
Authored: Fri Mar 23 14:57:46 2012 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Fri Mar 23 14:57:46 2012 -0500

----------------------------------------------------------------------
 .../cassandra/db/compaction/CompactionManager.java |   27 +++++++++++++++
 .../db/compaction/CompactionManagerMBean.java      |   10 +++++
 2 files changed, 37 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f11e4f2a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 2900c85..9ddc3c3 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -982,6 +982,8 @@ public class CompactionManager implements CompactionManagerMBean
     {
         // a synchronized identity set of running tasks to their compaction info
         private static final Set<CompactionInfo.Holder> compactions = Collections.synchronizedSet(Collections.newSetFromMap(new IdentityHashMap<CompactionInfo.Holder, Boolean>()));
+        private volatile long totalBytesCompacted = 0L;
+        private volatile long totalCompactionsCompleted = 0L;
 
         protected CompactionExecutor(int minThreads, int maxThreads, String name, BlockingQueue<Runnable> queue)
         {
@@ -1007,6 +1009,8 @@ public class CompactionManager implements CompactionManagerMBean
         public void finishCompaction(CompactionInfo.Holder ci)
         {
             compactions.remove(ci);
+            totalBytesCompacted += ci.getCompactionInfo().getTotalBytes();
+            totalCompactionsCompleted += 1;
         }
 
         public static List<CompactionInfo.Holder> getCompactions()
@@ -1014,6 +1018,19 @@ public class CompactionManager implements CompactionManagerMBean
             return new ArrayList<CompactionInfo.Holder>(compactions);
         }
 
+        public long getTotalBytesCompacted()
+        {
+            long bytesCompletedInProgress = 0L;
+            for (CompactionInfo.Holder ci : compactions)
+                bytesCompletedInProgress += ci.getCompactionInfo().getBytesComplete();
+            return bytesCompletedInProgress + totalBytesCompacted;
+        }
+
+        public long getTotalCompactionsCompleted()
+        {
+            return totalCompactionsCompleted;
+        }
+
         // modified from DebuggableThreadPoolExecutor so that CompactionInterruptedExceptions are not logged
         @Override
         public void afterExecute(Runnable r, Throwable t)
@@ -1068,6 +1085,16 @@ public class CompactionManager implements CompactionManagerMBean
         return out;
     }
 
+    public long getTotalBytesCompacted()
+    {
+        return executor.getTotalBytesCompacted() + validationExecutor.getTotalBytesCompacted();
+    }
+
+    public long getTotalCompactionsCompleted()
+    {
+        return executor.getTotalCompactionsCompleted() + validationExecutor.getTotalCompactionsCompleted();
+    }
+
     public int getPendingTasks()
     {
         int n = 0;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f11e4f2a/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java b/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java
index 3fa9176..7e1c04f 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java
@@ -40,6 +40,16 @@ public interface CompactionManagerMBean
     public long getCompletedTasks();
 
     /**
+     * @return total number of bytes compacted since server [re]start
+     */
+    public long getTotalBytesCompacted();
+
+    /**
+     * @return total number of compactions since server [re]start
+     */
+    public long getTotalCompactionsCompleted();
+
+    /**
      * Triggers the compaction of user specified sstables.
      *
      * @param ksname the keyspace for the sstables to compact