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);
+    }
 }


Reply via email to