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/08/25 22:35:15 UTC

svn commit: r989352 - in /cassandra/trunk: CHANGES.txt src/java/org/apache/cassandra/io/sstable/SSTable.java src/java/org/apache/cassandra/utils/EstimatedHistogram.java test/unit/org/apache/cassandra/utils/EstimatedHistogramTest.java

Author: jbellis
Date: Wed Aug 25 20:35:15 2010
New Revision: 989352

URL: http://svn.apache.org/viewvc?rev=989352&view=rev
Log:
fix EH.max.  patch by jbellis and brandonwilliams for CASSANDRA-1413

Modified:
    cassandra/trunk/CHANGES.txt
    cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java
    cassandra/trunk/src/java/org/apache/cassandra/utils/EstimatedHistogram.java
    cassandra/trunk/test/unit/org/apache/cassandra/utils/EstimatedHistogramTest.java

Modified: cassandra/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=989352&r1=989351&r2=989352&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Wed Aug 25 20:35:15 2010
@@ -35,6 +35,7 @@ dev
  * fix using DynamicEndpointSnitch with NetworkTopologyStrategy
    (CASSANDRA-1429)
  * Add CfDef.default_validation_class (CASSANDRA-891)
+ * fix EstimatedHistogram.max (CASSANDRA-1413)
 
 
 0.7-beta1

Modified: cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java?rev=989352&r1=989351&r2=989352&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java Wed Aug 25 20:35:15 2010
@@ -64,8 +64,8 @@ public abstract class SSTable
     public static final String TEMPFILE_MARKER = "tmp";
 
     public static List<String> components = Collections.unmodifiableList(Arrays.asList(COMPONENT_FILTER, COMPONENT_INDEX, COMPONENT_DATA));
-    protected EstimatedHistogram estimatedRowSize = new EstimatedHistogram(130);
-    protected EstimatedHistogram estimatedColumnCount = new EstimatedHistogram(112);
+    protected EstimatedHistogram estimatedRowSize = new EstimatedHistogram(150);
+    protected EstimatedHistogram estimatedColumnCount = new EstimatedHistogram(114);
 
     protected SSTable(String filename, CFMetaData metadata, IPartitioner partitioner)
     {

Modified: cassandra/trunk/src/java/org/apache/cassandra/utils/EstimatedHistogram.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/utils/EstimatedHistogram.java?rev=989352&r1=989351&r2=989352&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/utils/EstimatedHistogram.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/utils/EstimatedHistogram.java Wed Aug 25 20:35:15 2010
@@ -40,8 +40,7 @@ public class EstimatedHistogram
 
     public EstimatedHistogram()
     {
-        makeOffsets(90);
-        buckets = new AtomicLongArray(numBuckets);
+        this(90);
     }
 
     public EstimatedHistogram(int bucketCount)
@@ -118,10 +117,14 @@ public class EstimatedHistogram
 
     public long max()
     {
-        for (int i = numBuckets - 1; i >= 0; i--)
+        int lastBucket = numBuckets - 1;
+        if (buckets.get(lastBucket) > 0)
+            throw new IllegalStateException("Unable to compute ceiling for max when all buckets are full");
+
+        for (int i = lastBucket - 1; i >= 0; i--)
         {
             if (buckets.get(i) > 0)
-                return bucketOffsets[i == 0 ? 0 : i - 1];
+                return bucketOffsets[i];
         }
         return 0;
     }

Modified: cassandra/trunk/test/unit/org/apache/cassandra/utils/EstimatedHistogramTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/utils/EstimatedHistogramTest.java?rev=989352&r1=989351&r2=989352&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/utils/EstimatedHistogramTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/utils/EstimatedHistogramTest.java Wed Aug 25 20:35:15 2010
@@ -33,8 +33,8 @@ public class EstimatedHistogramTest
         histogram.add(0L);
         assertEquals(1, histogram.get(false)[0]);
 
-        histogram.add(33282687);
-        assertEquals(1, histogram.get(false)[histogram.buckets.length()-1]);
+        histogram.add(23282687);
+        assertEquals(1, histogram.get(false)[histogram.buckets.length() - 2]);
 
         histogram.add(1);
         assertEquals(1, histogram.get(false)[1]);