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 2010/10/19 00:28:31 UTC
svn commit: r1024047 - in /cassandra/trunk: CHANGES.txt
src/java/org/apache/cassandra/db/ColumnFamilyStore.java
src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java
Author: jbellis
Date: Mon Oct 18 22:28:30 2010
New Revision: 1024047
URL: http://svn.apache.org/viewvc?rev=1024047&view=rev
Log:
add jmx histogram of sstables accessed per read.
patch by Stu Hood; reviewed by jbellis for CASSANDRA-1624
Modified:
cassandra/trunk/CHANGES.txt
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java
Modified: cassandra/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1024047&r1=1024046&r2=1024047&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Mon Oct 18 22:28:30 2010
@@ -44,6 +44,7 @@ dev
* fix building SSTable statistics post-stream (CASSANDRA-1620)
* fix potential infinite loop in 2ary index queries (CASSANDRA-1623)
* allow creating NTS keyspaces with no replicas configured (CASSANDRA-1626)
+ * add jmx histogram of sstables accessed per read (CASSANDRA-1624)
0.7-beta2
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1024047&r1=1024046&r2=1024047&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Mon Oct 18 22:28:30 2010
@@ -56,6 +56,7 @@ import org.apache.cassandra.service.Stor
import org.apache.cassandra.thrift.IndexClause;
import org.apache.cassandra.thrift.IndexExpression;
import org.apache.cassandra.thrift.IndexOperator;
+import org.apache.cassandra.utils.EstimatedHistogram;
import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.LatencyTracker;
import org.apache.cassandra.utils.Pair;
@@ -127,6 +128,10 @@ public class ColumnFamilyStore implement
private LatencyTracker readStats = new LatencyTracker();
private LatencyTracker writeStats = new LatencyTracker();
+ // counts of sstables accessed by reads
+ private final EstimatedHistogram recentSSTablesPerRead = new EstimatedHistogram(35);
+ private final EstimatedHistogram sstablesPerRead = new EstimatedHistogram(35);
+
public final CFMetaData metadata;
/* These are locally held copies to be changed from the config during runtime */
@@ -914,6 +919,16 @@ public class ColumnFamilyStore implement
return ssTables.getSSTables();
}
+ public long[] getRecentSSTablesPerReadHistogram()
+ {
+ return recentSSTablesPerRead.get(true);
+ }
+
+ public long[] getSSTablesPerReadHistogram()
+ {
+ return sstablesPerRead.get(false);
+ }
+
public long getReadCount()
{
return readStats.getOpCount();
@@ -1115,6 +1130,7 @@ public class ColumnFamilyStore implement
}
/* add the SSTables on disk */
+ int sstablesToIterate = 0;
for (SSTableReader sstable : ssTables)
{
iter = filter.getSSTableColumnIterator(sstable);
@@ -1122,8 +1138,11 @@ public class ColumnFamilyStore implement
{
returnCF.delete(iter.getColumnFamily());
iterators.add(iter);
+ sstablesToIterate++;
}
}
+ recentSSTablesPerRead.add(sstablesToIterate);
+ sstablesPerRead.add(sstablesToIterate);
Comparator<IColumn> comparator = filter.filter.getColumnComparator(getComparator());
Iterator collated = IteratorUtils.collatedIterator(comparator, iterators);
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java?rev=1024047&r1=1024046&r2=1024047&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java Mon Oct 18 22:28:30 2010
@@ -62,6 +62,16 @@ public interface ColumnFamilyStoreMBean
public Object forceFlush() throws IOException;
/**
+ * @return a histogram of the number of sstable data files accessed per read: reading this property resets it
+ */
+ public long[] getRecentSSTablesPerReadHistogram();
+
+ /**
+ * @return a histogram of the number of sstable data files accessed per read
+ */
+ public long[] getSSTablesPerReadHistogram();
+
+ /**
* @return the number of read operations on this column family
*/
public long getReadCount();