Author: slebresne Date: Fri Nov 4 08:15:27 2011 New Revision: 1197420 URL: http://svn.apache.org/viewvc?rev=1197420&view=rev Log: Fix estimated row size histogram regression patch by jbellis; reviewed by slebresne for CASSANDRA-3451
Modified: cassandra/branches/cassandra-1.0/CHANGES.txt cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java Modified: cassandra/branches/cassandra-1.0/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/CHANGES.txt?rev=1197420&r1=1197419&r2=1197420&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/CHANGES.txt (original) +++ cassandra/branches/cassandra-1.0/CHANGES.txt Fri Nov 4 08:15:27 2011 @@ -9,7 +9,8 @@ * fix bug that caused first column in per row indexes to be ignored (CASSANDRA-3441) * add JMX call to clean (failed) repair sessions (CASSANDRA-3316) - * Fix sstableloader reference acquisition bug (CASSANDRA-3438) + * fix sstableloader reference acquisition bug (CASSANDRA-3438) + * fix estimated row size regression (CASSANDRA-3451) Merged from 0.8: * acquire compactionlock during truncate (CASSANDRA-3399) * fix displaying cfdef entries for super columnfamilies (CASSANDRA-3415) Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java?rev=1197420&r1=1197419&r2=1197420&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java Fri Nov 4 08:15:27 2011 @@ -57,7 +57,7 @@ public class SSTableMetadata private SSTableMetadata() { - this(defaultRowHistogram(), defaultColumnHistogram(), ReplayPosition.NONE); + this(defaultRowSizeHistogram(), defaultColumnCountHistogram(), ReplayPosition.NONE); } // when there is no max timestamp recorded, default to max long @@ -104,13 +104,15 @@ public class SSTableMetadata return maxTimestamp; } - static EstimatedHistogram defaultColumnHistogram() + static EstimatedHistogram defaultColumnCountHistogram() { + // EH of 114 can track a max value of 2395318855, i.e., > 2B columns return new EstimatedHistogram(114); } - static EstimatedHistogram defaultRowHistogram() + static EstimatedHistogram defaultRowSizeHistogram() { + // EH of 150 can track a max value of 1697806495183, i.e., > 1.5PB return new EstimatedHistogram(150); } @@ -123,8 +125,8 @@ public class SSTableMetadata private Collector() { - this.estimatedRowSize = defaultColumnHistogram(); - this.estimatedColumnCount = defaultRowHistogram(); + this.estimatedRowSize = defaultRowSizeHistogram(); + this.estimatedColumnCount = defaultColumnCountHistogram(); this.replayPosition = ReplayPosition.NONE; this.maxTimestamp = Long.MIN_VALUE; }