You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by db...@apache.org on 2013/01/17 06:34:25 UTC
git commit: Expose droppable tombstone ratio stats over JMX patch by
meriksson reviewed by dbrosius for CASSANDRA-5159
Updated Branches:
refs/heads/cassandra-1.2 4024605ef -> 205a9939c
Expose droppable tombstone ratio stats over JMX
patch by meriksson reviewed by dbrosius for CASSANDRA-5159
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/205a9939
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/205a9939
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/205a9939
Branch: refs/heads/cassandra-1.2
Commit: 205a9939c19b5fe10b59589c41c37f04543c8ad8
Parents: 4024605
Author: Dave Brosius <db...@apache.org>
Authored: Thu Jan 17 00:32:09 2013 -0500
Committer: Dave Brosius <db...@apache.org>
Committed: Thu Jan 17 00:32:09 2013 -0500
----------------------------------------------------------------------
CHANGES.txt | 2 +
.../org/apache/cassandra/db/ColumnFamilyStore.java | 5 ++++
.../cassandra/db/ColumnFamilyStoreMBean.java | 6 +++++
src/java/org/apache/cassandra/db/DataTracker.java | 18 +++++++++++++++
.../cassandra/io/sstable/SSTableMetadata.java | 12 +++++++++-
.../apache/cassandra/io/sstable/SSTableReader.java | 5 ++++
6 files changed, 47 insertions(+), 1 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/205a9939/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index d71fd28..f684d6b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -50,6 +50,8 @@ Merged from 1.1:
* better handling for amid compaction failure (CASSANDRA-5137)
* calculate pending ranges asynchronously (CASSANDRA-5135)
* convert default marshallers list to map for better readability (CASSANDRA-5109)
+ * Expose droppable tombstone ratio stats over JMX (CASSANDRA-5159)
+
1.2.0
http://git-wip-us.apache.org/repos/asf/cassandra/blob/205a9939/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 7072921..cb12792 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -2043,4 +2043,9 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
markCompacted(truncatedSSTables, OperationType.UNKNOWN);
return ReplayPosition.getReplayPosition(truncatedSSTables);
}
+
+ public double getDroppableTombstoneRatio()
+ {
+ return getDataTracker().getDroppableTombstoneRatio();
+ }
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/205a9939/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java b/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java
index 0a6b077..554c204 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java
@@ -333,4 +333,10 @@ public interface ColumnFamilyStoreMBean
* array index corresponds to level(int[0] is for level 0, ...).
*/
public int[] getSSTableCountPerLevel();
+
+ /**
+ * Get the ratio of droppable tombstones to real columns (and non-droppable tombstones)
+ * @return ratio
+ */
+ public double getDroppableTombstoneRatio();
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/205a9939/src/java/org/apache/cassandra/db/DataTracker.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java b/src/java/org/apache/cassandra/db/DataTracker.java
index 7e8887f..749b64e 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -389,6 +389,24 @@ public class DataTracker
return count > 0 ? (int) (sum / count) : 0;
}
+ public double getDroppableTombstoneRatio()
+ {
+ double allDroppable = 0;
+ long allColumns = 0;
+ int localTime = (int)(System.currentTimeMillis()/1000);
+
+ for (SSTableReader sstable : getSSTables())
+ {
+ allDroppable += sstable.getDroppableTombstonesBefore(localTime - sstable.metadata.getGcGraceSeconds());
+ allColumns += sstable.getEstimatedColumnCount().mean() * sstable.getEstimatedColumnCount().count();
+ }
+ if (allColumns > 0)
+ {
+ return allDroppable / allColumns;
+ }
+ return 0;
+ }
+
public void notifySSTablesChanged(Iterable<SSTableReader> removed, Iterable<SSTableReader> added, OperationType compactionType)
{
for (INotificationConsumer subscriber : subscribers)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/205a9939/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java b/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
index e53fdf9..8bd9e35 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
@@ -121,12 +121,22 @@ public class SSTableMetadata
long estimatedColumnCount = this.estimatedColumnCount.mean() * this.estimatedColumnCount.count();
if (estimatedColumnCount > 0)
{
- double droppable = estimatedTombstoneDropTime.sum(gcBefore);
+ double droppable = getDroppableTombstonesBefore(gcBefore);
return droppable / estimatedColumnCount;
}
return 0.0f;
}
+ /**
+ * Get the amount of droppable tombstones
+ * @param gcBefore the gc time
+ * @return amount of droppable tombstones
+ */
+ public double getDroppableTombstonesBefore(int gcBefore)
+ {
+ return estimatedTombstoneDropTime.sum(gcBefore);
+ }
+
public static class Collector
{
protected EstimatedHistogram estimatedRowSize = defaultRowSizeHistogram();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/205a9939/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
index 42b4ae6..d0ef5d8 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
@@ -1086,6 +1086,11 @@ public class SSTableReader extends SSTable
return sstableMetadata.getEstimatedDroppableTombstoneRatio(gcBefore);
}
+ public double getDroppableTombstonesBefore(int gcBefore)
+ {
+ return sstableMetadata.getDroppableTombstonesBefore(gcBefore);
+ }
+
public double getCompressionRatio()
{
return sstableMetadata.compressionRatio;