Author: jbellis
Date: Thu Apr 29 01:55:30 2010
New Revision: 939171
URL: http://svn.apache.org/viewvc?rev=939171&view=rev
Log:
merge from 0.6
Added:
cassandra/trunk/src/java/org/apache/cassandra/utils/EstimatedHistogram.java
- copied unchanged from r939169,
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/utils/EstimatedHistogram.java
cassandra/trunk/test/unit/org/apache/cassandra/utils/EstimatedHistogramTest.java
- copied unchanged from r939169,
cassandra/branches/cassandra-0.6/test/unit/org/apache/cassandra/utils/EstimatedHistogramTest.java
Modified:
cassandra/trunk/ (props changed)
cassandra/trunk/CHANGES.txt
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
(props changed)
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java
cassandra/trunk/src/java/org/apache/cassandra/utils/LatencyTracker.java
Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Apr 29 01:55:30 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6:922689-939102
+/cassandra/branches/cassandra-0.6:922689-939169
/incubator/cassandra/branches/cassandra-0.3:774578-796573
/incubator/cassandra/branches/cassandra-0.4:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5:888872-915439
Modified: cassandra/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=939171&r1=939170&r2=939171&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Thu Apr 29 01:55:30 2010
@@ -26,6 +26,7 @@ dev
* fix contrib/word_count build. (CASSANDRA-992)
* split CommitLogExecutorService into BatchCommitLogExecutorService and
PeriodicCommitLogExecutorService (CASSANDRA-1014)
+ * add latency histograms to CFSMBean (CASSANDRA-1024)
0.6.1
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Apr 29 01:55:30 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-939102
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-939169
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Cassandra.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Cassandra.java:888872-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Apr 29 01:55:30 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-939102
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-939169
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Column.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Column.java:888872-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Apr 29 01:55:30 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-939102
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-939169
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:888872-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Apr 29 01:55:30 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-939102
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-939169
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:888872-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Apr 29 01:55:30 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-939102
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-939169
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:888872-903502
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=939171&r1=939170&r2=939171&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Thu
Apr 29 01:55:30 2010
@@ -662,6 +662,16 @@ public class ColumnFamilyStore implement
return readStats_.getRecentLatencyMicros();
}
+ public long[] getLifetimeReadLatencyHistogramMicros()
+ {
+ return readStats_.getTotalLatencyHistogramMicros();
+ }
+
+ public long[] getRecentReadLatencyHistogramMicros()
+ {
+ return readStats_.getRecentLatencyHistogramMicros();
+ }
+
public long getTotalReadLatencyMicros()
{
return readStats_.getTotalLatencyMicros();
@@ -688,6 +698,16 @@ public class ColumnFamilyStore implement
return writeStats_.getRecentLatencyMicros();
}
+ public long[] getLifetimeWriteLatencyHistogramMicros()
+ {
+ return writeStats_.getTotalLatencyHistogramMicros();
+ }
+
+ public long[] getRecentWriteLatencyHistogramMicros()
+ {
+ return writeStats_.getRecentLatencyHistogramMicros();
+ }
+
public ColumnFamily getColumnFamily(DecoratedKey key, QueryPath path,
byte[] start, byte[] finish, List<byte[]> bitmasks, boolean reversed, int limit)
{
return getColumnFamily(QueryFilter.getSliceFilter(key, path, start,
finish, bitmasks, reversed, limit));
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=939171&r1=939170&r2=939171&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java
Thu Apr 29 01:55:30 2010
@@ -20,6 +20,7 @@ package org.apache.cassandra.db;
import java.util.concurrent.Future;
import java.io.IOException;
+import java.util.concurrent.atomic.AtomicLongArray;
/**
* The MBean interface for ColumnFamilyStore
@@ -70,6 +71,16 @@ public interface ColumnFamilyStoreMBean
public long getTotalReadLatencyMicros();
/**
+ * @return an array representing the latency histogram
+ */
+ public long[] getLifetimeReadLatencyHistogramMicros();
+
+ /**
+ * @return an array representing the latency histogram
+ */
+ public long[] getRecentReadLatencyHistogramMicros();
+
+ /**
* @return average latency per read operation since the last call
*/
public double getRecentReadLatencyMicros();
@@ -85,6 +96,16 @@ public interface ColumnFamilyStoreMBean
public long getTotalWriteLatencyMicros();
/**
+ * @return an array representing the latency histogram
+ */
+ public long[] getLifetimeWriteLatencyHistogramMicros();
+
+ /**
+ * @return an array representing the latency histogram
+ */
+ public long[] getRecentWriteLatencyHistogramMicros();
+
+ /**
* @return average latency per write operation since the last call
*/
public double getRecentWriteLatencyMicros();
Modified:
cassandra/trunk/src/java/org/apache/cassandra/utils/LatencyTracker.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/utils/LatencyTracker.java?rev=939171&r1=939170&r2=939171&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/utils/LatencyTracker.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/utils/LatencyTracker.java Thu
Apr 29 01:55:30 2010
@@ -22,6 +22,7 @@ package org.apache.cassandra.utils;
import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.atomic.AtomicLongArray;
public class LatencyTracker
{
@@ -29,6 +30,8 @@ public class LatencyTracker
private final AtomicLong totalLatency = new AtomicLong(0);
private long lastLatency = 0;
private long lastOpCount = 0;
+ private EstimatedHistogram totalHistogram = new EstimatedHistogram();
+ private EstimatedHistogram recentHistogram = new EstimatedHistogram();
/** takes nanoseconds **/
public void addNano(long nanos)
@@ -41,6 +44,8 @@ public class LatencyTracker
{
opCount.incrementAndGet();
totalLatency.addAndGet(micros);
+ totalHistogram.add(micros);
+ recentHistogram.add(micros);
}
public long getOpCount()
@@ -69,4 +74,14 @@ public class LatencyTracker
lastOpCount = ops;
}
}
+
+ public long[] getTotalLatencyHistogramMicros()
+ {
+ return totalHistogram.get(false);
+ }
+
+ public long[] getRecentLatencyHistogramMicros()
+ {
+ return recentHistogram.get(true);
+ }
}