Author: jbellis Date: Thu Sep 15 03:37:36 2011 New Revision: 1170944 URL: http://svn.apache.org/viewvc?rev=1170944&view=rev Log: merge from 1.0
Modified: cassandra/trunk/ (props changed) cassandra/trunk/CHANGES.txt cassandra/trunk/build.xml cassandra/trunk/conf/cassandra-env.sh cassandra/trunk/contrib/ (props changed) cassandra/trunk/debian/changelog 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/config/CFMetaData.java cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/Session.java Propchange: cassandra/trunk/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Sep 15 03:37:36 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1170335 /cassandra/branches/cassandra-0.8.0:1125021-1130369 /cassandra/branches/cassandra-0.8.1:1101014-1125018 -/cassandra/branches/cassandra-1.0:1167085-1170609,1170645,1170685 -/cassandra/branches/cassandra-1.0.0:1167104-1167229,1167232-1170608,1170641,1170682 +/cassandra/branches/cassandra-1.0:1167085-1170894 +/cassandra/branches/cassandra-1.0.0:1167104-1167229,1167232-1170893 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689 /cassandra/tags/cassandra-0.8.0-rc1:1102511-1125020 /incubator/cassandra/branches/cassandra-0.3:774578-796573 Modified: cassandra/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1170944&r1=1170943&r2=1170944&view=diff ============================================================================== --- cassandra/trunk/CHANGES.txt (original) +++ cassandra/trunk/CHANGES.txt Thu Sep 15 03:37:36 2011 @@ -2,6 +2,10 @@ * describe_ring should include datacenter/topology information (CASSANDRA-2882) +1.0.0-rc1 + * Fix counting CFMetadata towards Memtable liveRatio (CASSANDRA-3023) + + 1.0.0-beta1 * removed binarymemtable (CASSANDRA-2692) * add commitlog_total_space_in_mb to prevent fragmented logs (CASSANDRA-2427) @@ -78,6 +82,8 @@ * Fix backwards compatibilty for CQL memtable properties (CASSANDRA-3190) * Add five-minute delay before starting compactions on a restarted server (CASSANDRA-3181) + * Reduce copies done for intra-host messages (CASSANDRA-1788, 3144) + * support of compaction strategy option for stress.java (CASSANDRA-3204) 0.8.6 Modified: cassandra/trunk/build.xml URL: http://svn.apache.org/viewvc/cassandra/trunk/build.xml?rev=1170944&r1=1170943&r2=1170944&view=diff ============================================================================== --- cassandra/trunk/build.xml (original) +++ cassandra/trunk/build.xml Thu Sep 15 03:37:36 2011 @@ -369,7 +369,7 @@ url=${svn.entry.url}?pathrev=${svn.entry </dependency> <dependency groupId="com.googlecode.json-simple" artifactId="json-simple" version="1.1"/> <dependency groupId="com.github.stephenc.high-scale-lib" artifactId="high-scale-lib" version="1.1.2"/> - <dependency groupId="com.github.stephenc" artifactId="jamm" version="0.2.4"/> + <dependency groupId="com.github.stephenc" artifactId="jamm" version="0.2.5"/> <dependency groupId="org.yaml" artifactId="snakeyaml" version="1.6"/> <dependency groupId="org.apache.cassandra.deps" artifactId="avro" version="1.4.0-cassandra-1"> <exclusion groupId="org.jboss.netty" artifactId="netty"/> @@ -1047,7 +1047,7 @@ url=${svn.entry.url}?pathrev=${svn.entry <jvmarg value="-Dstorage-config=${test.conf}"/> <jvmarg value="-Daccess.properties=${test.conf}/access.properties"/> <jvmarg value="-Dlog4j.configuration=log4j-junit.properties" /> - <jvmarg value="-javaagent:${basedir}/lib/jamm-0.2.4.jar" /> + <jvmarg value="-javaagent:${basedir}/lib/jamm-0.2.5.jar" /> <jvmarg value="-ea"/> <optjvmargs/> <classpath> Modified: cassandra/trunk/conf/cassandra-env.sh URL: http://svn.apache.org/viewvc/cassandra/trunk/conf/cassandra-env.sh?rev=1170944&r1=1170943&r2=1170944&view=diff ============================================================================== --- cassandra/trunk/conf/cassandra-env.sh (original) +++ cassandra/trunk/conf/cassandra-env.sh Thu Sep 15 03:37:36 2011 @@ -100,7 +100,7 @@ JVM_OPTS="$JVM_OPTS -ea" check_openjdk=`"${JAVA:-java}" -version 2>&1 | awk '{if (NR == 2) {print $1}}'` if [ "$check_openjdk" != "OpenJDK" ] then - JVM_OPTS="$JVM_OPTS -javaagent:$CASSANDRA_HOME/lib/jamm-0.2.4.jar" + JVM_OPTS="$JVM_OPTS -javaagent:$CASSANDRA_HOME/lib/jamm-0.2.5.jar" fi # enable thread priorities, primarily so we can give periodic tasks Propchange: cassandra/trunk/contrib/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Sep 15 03:37:36 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1170335 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369 /cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018 -/cassandra/branches/cassandra-1.0/contrib:1167085-1170609,1170645,1170685 -/cassandra/branches/cassandra-1.0.0/contrib:1167104-1167229,1167232-1170608,1170641,1170682 +/cassandra/branches/cassandra-1.0/contrib:1167085-1170894 +/cassandra/branches/cassandra-1.0.0/contrib:1167104-1167229,1167232-1170893 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689 /cassandra/tags/cassandra-0.8.0-rc1/contrib:1102511-1125020 /incubator/cassandra/branches/cassandra-0.3/contrib:774578-796573 Modified: cassandra/trunk/debian/changelog URL: http://svn.apache.org/viewvc/cassandra/trunk/debian/changelog?rev=1170944&r1=1170943&r2=1170944&view=diff ============================================================================== --- cassandra/trunk/debian/changelog (original) +++ cassandra/trunk/debian/changelog Thu Sep 15 03:37:36 2011 @@ -1,4 +1,4 @@ -cassandra (1.0.0-beta1) unstable; urgency=low +cassandra (1.0.0~beta1) unstable; urgency=low * New beta release Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Sep 15 03:37:36 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1170335 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1101014-1125018 -/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167085-1170609,1170645,1170685 -/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167104-1167229,1167232-1170608,1170641,1170682 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167085-1170894 +/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167104-1167229,1167232-1170893 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689 /cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1102511-1125020 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Sep 15 03:37:36 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1170335 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1125021-1130369 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1101014-1125018 -/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167085-1170609,1170645,1170685 -/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167104-1167229,1167232-1170608,1170641,1170682 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167085-1170894 +/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167104-1167229,1167232-1170893 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689 /cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1102511-1125020 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Sep 15 03:37:36 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1170335 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1125021-1130369 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1101014-1125018 -/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167085-1170609,1170645,1170685 -/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167104-1167229,1167232-1170608,1170641,1170682 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167085-1170894 +/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167104-1167229,1167232-1170893 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689 /cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1102511-1125020 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Sep 15 03:37:36 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1170335 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1125021-1130369 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1101014-1125018 -/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167085-1170609,1170645,1170685 -/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167104-1167229,1167232-1170608,1170641,1170682 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167085-1170894 +/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167104-1167229,1167232-1170893 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689 /cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1102511-1125020 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Sep 15 03:37:36 2011 @@ -4,8 +4,8 @@ /cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1170335 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1125021-1130369 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1101014-1125018 -/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167085-1170609,1170645,1170685 -/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167104-1167229,1167232-1170608,1170641,1170682 +/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167085-1170894 +/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167104-1167229,1167232-1170893 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689 /cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1102511-1125020 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198 Modified: cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java?rev=1170944&r1=1170943&r2=1170944&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java Thu Sep 15 03:37:36 2011 @@ -776,7 +776,7 @@ public final class CFMetaData logger.debug("application result is {}", this); } - private static Class<? extends AbstractCompactionStrategy> createCompactionSrategy(String className) throws ConfigurationException + public static Class<? extends AbstractCompactionStrategy> createCompactionSrategy(String className) throws ConfigurationException { className = className.contains(".") ? className : "org.apache.cassandra.db.compaction." + className; try Modified: cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java?rev=1170944&r1=1170943&r2=1170944&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java Thu Sep 15 03:37:36 2011 @@ -21,10 +21,7 @@ package org.apache.cassandra.db; import java.io.File; import java.io.IOException; import java.nio.ByteBuffer; -import java.util.Collection; -import java.util.Comparator; -import java.util.Iterator; -import java.util.Map; +import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicLong; @@ -55,7 +52,6 @@ public class Memtable private static final double MIN_SANE_LIVE_RATIO = 1.0; // max liveratio seen w/ 1-byte columns on a 64-bit jvm was 19. If it gets higher than 64 something is probably broken. private static final double MAX_SANE_LIVE_RATIO = 64.0; - private static final MemoryMeter meter = new MemoryMeter().omitSharedBufferOverhead(); // we're careful to only allow one count to run at a time because counting is slow // (can be minutes, for a large memtable and a busy server), so we could keep memtables @@ -70,6 +66,8 @@ public class Memtable } }; + private final MemoryMeter meter; + volatile static Memtable activelyMeasuring; private volatile boolean isFrozen; @@ -84,6 +82,18 @@ public class Memtable public Memtable(ColumnFamilyStore cfs) { this.cfs = cfs; + + Callable<Set<Object>> provider = new Callable<Set<Object>>() + { + public Set<Object> call() throws Exception + { + // avoid counting this once for each row + Set<Object> set = Collections.newSetFromMap(new IdentityHashMap<Object, Boolean>()); + set.add(Memtable.this.cfs.metadata); + return set; + } + }; + meter = new MemoryMeter().omitSharedBufferOverhead().withTrackerProvider(provider); } public long getLiveSize() Modified: cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/Session.java URL: http://svn.apache.org/viewvc/cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/Session.java?rev=1170944&r1=1170943&r2=1170944&view=diff ============================================================================== --- cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/Session.java (original) +++ cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/Session.java Thu Sep 15 03:37:36 2011 @@ -25,7 +25,9 @@ import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; +import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.ConfigurationException; +import org.apache.cassandra.db.compaction.AbstractCompactionStrategy; import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.db.marshal.TypeParser; import org.apache.commons.cli.*; @@ -86,6 +88,7 @@ public class Session implements Serializ availableOptions.addOption("T", "send-to", true, "Send this as a request to the stress daemon at specified address."); availableOptions.addOption("I", "compression", true, "Specify the compression to use for sstable, default:no compression"); availableOptions.addOption("Q", "query-names", true, "Comma-separated list of column names to retrieve from each row."); + availableOptions.addOption("Z", "compaction-strategy", true, "CompactionStrategy to use."); } private int numKeys = 1000 * 1000; @@ -102,6 +105,7 @@ public class Session implements Serializ private int port = 9160; private int superColumns = 1; private String compression = null; + private String compactionStrategy = null; private int progressInterval = 10; private int keysPerCall = 1000; @@ -301,6 +305,22 @@ public class Session implements Serializ { columnNames = null; } + + if (cmd.hasOption("Z")) + { + compactionStrategy = cmd.getOptionValue("Z"); + + try + { + // validate compaction strategy class + CFMetaData.createCompactionSrategy(compactionStrategy); + } + catch (ConfigurationException e) + { + System.err.println(e.getMessage()); + System.exit(1); + } + } } catch (ParseException e) { @@ -483,6 +503,14 @@ public class Session implements Serializ keyspace.setStrategy_options(replicationStrategyOptions); } + if (compactionStrategy != null) + { + standardCfDef.setCompaction_strategy(compactionStrategy); + superCfDef.setCompaction_strategy(compactionStrategy); + counterCfDef.setCompaction_strategy(compactionStrategy); + counterSuperCfDef.setCompaction_strategy(compactionStrategy); + } + keyspace.setCf_defs(new ArrayList<CfDef>(Arrays.asList(standardCfDef, superCfDef, counterCfDef, counterSuperCfDef))); Cassandra.Client client = getClient(false);