From 1bb2dd906c1da04be602aa1cec988c4e15bf1ffc Mon Sep 17 00:00:00 2001 From: blerer Date: Fri, 21 Nov 2014 14:54:47 -0600 Subject: [PATCH] Fix size calculations for prepared statements Patch by Benjamin Lerer; reviewed by Dave Brosius for CASSANDRA-8231 --- CHANGES.txt | 1 + bin/cassandra.bat | 2 +- bin/cassandra.in.sh | 2 +- build.xml | 10 +- conf/cassandra-env.ps1 | 2 +- conf/cassandra-env.sh | 2 +- debian/cassandra.in.sh | 2 +- lib/jamm-0.2.8.jar | Bin 13684 -> 0 bytes lib/licenses/jamm-0.2.8.txt | 202 ------------------ .../apache/cassandra/config/CFMetaData.java | 2 + .../cql3/MeasurableForPreparedCache.java | 26 --- .../apache/cassandra/cql3/QueryProcessor.java | 35 +-- .../cassandra/cql3/functions/Function.java | 2 + .../cql3/statements/BatchStatement.java | 14 +- .../statements/ModificationStatement.java | 14 +- .../cql3/statements/SelectStatement.java | 18 +- .../cassandra/db/marshal/AbstractType.java | 2 + 17 files changed, 43 insertions(+), 293 deletions(-) delete mode 100644 lib/jamm-0.2.8.jar delete mode 100644 lib/licenses/jamm-0.2.8.txt delete mode 100644 src/java/org/apache/cassandra/cql3/MeasurableForPreparedCache.java diff --git a/CHANGES.txt b/CHANGES.txt index e008ab9a56..96da1bdfc0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.3 + * Fix high size calculations for prepared statements (CASSANDRA-8231) * Centralize shared executors (CASSANDRA-8055) * Fix filtering for CONTAINS (KEY) relations on frozen collection clustering columns when the query is restricted to a single diff --git a/bin/cassandra.bat b/bin/cassandra.bat index 5169c44951..99b291ad77 100644 --- a/bin/cassandra.bat +++ b/bin/cassandra.bat @@ -54,7 +54,7 @@ if NOT DEFINED JAVA_HOME goto :err REM ----------------------------------------------------------------------------- REM JVM Opts we'll use in legacy run or installation set JAVA_OPTS=-ea^ - -javaagent:"%CASSANDRA_HOME%\lib\jamm-0.2.8.jar"^ + -javaagent:"%CASSANDRA_HOME%\lib\jamm-0.3.0.jar"^ -Xms2G^ -Xmx2G^ -XX:+HeapDumpOnOutOfMemoryError^ diff --git a/bin/cassandra.in.sh b/bin/cassandra.in.sh index 5b4ee0f06b..b6a53f3347 100644 --- a/bin/cassandra.in.sh +++ b/bin/cassandra.in.sh @@ -48,5 +48,5 @@ done if [ "$JVM_VENDOR" != "OpenJDK" -o "$JVM_VERSION" \> "1.6.0" ] \ || [ "$JVM_VERSION" = "1.6.0" -a "$JVM_PATCH_VERSION" -ge 23 ] then - JAVA_AGENT="$JAVA_AGENT -javaagent:$CASSANDRA_HOME/lib/jamm-0.2.8.jar" + JAVA_AGENT="$JAVA_AGENT -javaagent:$CASSANDRA_HOME/lib/jamm-0.3.0.jar" fi diff --git a/build.xml b/build.xml index 43fa531850..2e5d0ac041 100644 --- a/build.xml +++ b/build.xml @@ -369,7 +369,7 @@ - + @@ -688,7 +688,7 @@ - + @@ -1107,7 +1107,7 @@ - + @@ -1266,7 +1266,7 @@ - + @@ -1309,7 +1309,7 @@ - + diff --git a/conf/cassandra-env.ps1 b/conf/cassandra-env.ps1 index 0595cf6f26..5450ac8370 100644 --- a/conf/cassandra-env.ps1 +++ b/conf/cassandra-env.ps1 @@ -301,7 +301,7 @@ Function SetCassandraEnvironment if (($env:JVM_VENDOR -ne "OpenJDK") -or ($env:JVM_VERSION.CompareTo("1.6.0") -eq 1) -or (($env:JVM_VERSION -eq "1.6.0") -and ($env:JVM_PATCH_VERSION.CompareTo("22") -eq 1))) { - $env:JVM_OPTS = "$env:JVM_OPTS -javaagent:""$env:CASSANDRA_HOME\lib\jamm-0.2.8.jar""" + $env:JVM_OPTS = "$env:JVM_OPTS -javaagent:""$env:CASSANDRA_HOME\lib\jamm-0.3.0.jar""" } # enable assertions. disabling this in production will give a modest diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh index f5669bb8d1..191fb7ea6d 100644 --- a/conf/cassandra-env.sh +++ b/conf/cassandra-env.sh @@ -173,7 +173,7 @@ JMX_PORT="7199" JVM_OPTS="$JVM_OPTS -ea" # add the jamm javaagent -JVM_OPTS="$JVM_OPTS -javaagent:$CASSANDRA_HOME/lib/jamm-0.2.8.jar" +JVM_OPTS="$JVM_OPTS -javaagent:$CASSANDRA_HOME/lib/jamm-0.3.0.jar" # some JVMs will fill up their heap when accessed via JMX, see CASSANDRA-6541 JVM_OPTS="$JVM_OPTS -XX:+CMSClassUnloadingEnabled" diff --git a/debian/cassandra.in.sh b/debian/cassandra.in.sh index bf76cf710a..9f69ac9490 100644 --- a/debian/cassandra.in.sh +++ b/debian/cassandra.in.sh @@ -26,5 +26,5 @@ CLASSPATH="$CLASSPATH:$EXTRA_CLASSPATH" if [ "$JVM_VENDOR" != "OpenJDK" -o "$JVM_VERSION" \> "1.6.0" ] \ || [ "$JVM_VERSION" = "1.6.0" -a "$JVM_PATCH_VERSION" -ge 23 ] then - JAVA_AGENT="$JAVA_AGENT -javaagent:$CASSANDRA_HOME/lib/jamm-0.2.8.jar" + JAVA_AGENT="$JAVA_AGENT -javaagent:$CASSANDRA_HOME/lib/jamm-0.3.0.jar" fi diff --git a/lib/jamm-0.2.8.jar b/lib/jamm-0.2.8.jar deleted file mode 100644 index e1cb6690ac1c93da03b269d57ca8df3f493438a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13684 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 statement parsed from a CQL query. * */ -public class BatchStatement implements CQLStatement, MeasurableForPreparedCache +public class BatchStatement implements CQLStatement { public static enum Type { @@ -76,17 +75,6 @@ public class BatchStatement implements CQLStatement, MeasurableForPreparedCache this.hasConditions = hasConditions; } - public long measureForPreparedCache(MemoryMeter meter) - { - long size = meter.measure(this) - + meter.measureDeep(type) - + meter.measure(statements) - + meter.measureDeep(attrs); - for (ModificationStatement stmt : statements) - size += stmt.measureForPreparedCache(meter); - return size; - } - public int getBoundTerms() { return boundTerms; diff --git a/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java b/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java index c32430aec6..60558b43cd 100644 --- a/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java @@ -22,8 +22,6 @@ import java.util.*; import com.google.common.base.Function; import com.google.common.collect.Iterables; -import org.apache.cassandra.db.marshal.AbstractType; -import org.github.jamm.MemoryMeter; import org.apache.cassandra.auth.Permission; import org.apache.cassandra.config.CFMetaData; @@ -46,7 +44,7 @@ import org.apache.cassandra.utils.Pair; /* * Abstract parent class of individual modifications, i.e. INSERT, UPDATE and DELETE. */ -public abstract class ModificationStatement implements CQLStatement, MeasurableForPreparedCache +public abstract class ModificationStatement implements CQLStatement { private static final ColumnIdentifier CAS_RESULT_COLUMN = new ColumnIdentifier("[applied]", false); @@ -87,16 +85,6 @@ public abstract class ModificationStatement implements CQLStatement, MeasurableF this.attrs = attrs; } - public long measureForPreparedCache(MemoryMeter meter) - { - return meter.measure(this) - + meter.measureDeep(attrs) - + meter.measureDeep(processedKeys) - + meter.measureDeep(columnOperations) - + (columnConditions == null ? 0 : meter.measureDeep(columnConditions)) - + (staticConditions == null ? 0 : meter.measureDeep(staticConditions)); - } - public abstract boolean requireFullClusteringKey(); public abstract void addUpdateForKey(ColumnFamily updates, ByteBuffer key, Composite prefix, UpdateParameters params) throws InvalidRequestException; diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index de3d67cdc5..6d7bdbb200 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -27,8 +27,6 @@ import com.google.common.collect.AbstractIterator; import com.google.common.collect.Iterables; import com.google.common.collect.Iterators; -import org.github.jamm.MemoryMeter; - import org.apache.cassandra.auth.Permission; import org.apache.cassandra.cql3.*; import org.apache.cassandra.cql3.statements.SingleColumnRestriction.Contains; @@ -61,7 +59,7 @@ import org.slf4j.LoggerFactory; * column family, expression, result count, and ordering clause. * */ -public class SelectStatement implements CQLStatement, MeasurableForPreparedCache +public class SelectStatement implements CQLStatement { private static final Logger logger = LoggerFactory.getLogger(SelectStatement.class); @@ -162,20 +160,6 @@ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache : selection.getResultMetadata(); } - public long measureForPreparedCache(MemoryMeter meter) - { - return meter.measure(this) - + meter.measureDeep(parameters) - + meter.measureDeep(selection) - + (limit == null ? 0 : meter.measureDeep(limit)) - + meter.measureDeep(keyRestrictions) - + meter.measureDeep(columnRestrictions) - + meter.measureDeep(metadataRestrictions) - + meter.measureDeep(restrictedColumns) - + (sliceRestriction == null ? 0 : meter.measureDeep(sliceRestriction)) - + (orderingIndexes == null ? 0 : meter.measureDeep(orderingIndexes)); - } - public int getBoundTerms() { return boundTerms; diff --git a/src/java/org/apache/cassandra/db/marshal/AbstractType.java b/src/java/org/apache/cassandra/db/marshal/AbstractType.java index 8dd2ff36b1..863cd47f6e 100644 --- a/src/java/org/apache/cassandra/db/marshal/AbstractType.java +++ b/src/java/org/apache/cassandra/db/marshal/AbstractType.java @@ -28,6 +28,7 @@ import org.apache.cassandra.cql3.CQL3Type; import org.apache.cassandra.exceptions.SyntaxException; import org.apache.cassandra.serializers.TypeSerializer; import org.apache.cassandra.serializers.MarshalException; +import org.github.jamm.Unmetered; /** * Specifies a Comparator for a specific type of ByteBuffer. @@ -37,6 +38,7 @@ import org.apache.cassandra.serializers.MarshalException; * should always handle those values even if they normally do not * represent a valid ByteBuffer for the type being compared. */ +@Unmetered public abstract class AbstractType implements Comparator { public final Comparator reverseComparator;