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