You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ee...@apache.org on 2011/06/09 17:46:20 UTC
svn commit: r1133951 - in /cassandra/trunk: ./ contrib/ drivers/
interface/thrift/gen-java/org/apache/cassandra/thrift/
src/java/org/apache/cassandra/cql/ src/java/org/apache/cassandra/db/
src/java/org/apache/cassandra/locator/ src/java/org/apache/cass...
Author: eevans
Date: Thu Jun 9 15:46:19 2011
New Revision: 1133951
URL: http://svn.apache.org/viewvc?rev=1133951&view=rev
Log:
merge w/ 0.8 branch
Added:
cassandra/trunk/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java
- copied unchanged from r1133945, cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/locator/EC2SnitchTest.java
Removed:
cassandra/trunk/drivers/
Modified:
cassandra/trunk/ (props changed)
cassandra/trunk/CHANGES.txt
cassandra/trunk/build.xml
cassandra/trunk/contrib/ (props changed)
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/cql/Cql.g
cassandra/trunk/src/java/org/apache/cassandra/db/Table.java
cassandra/trunk/src/java/org/apache/cassandra/locator/Ec2Snitch.java
cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java
cassandra/trunk/src/java/org/apache/cassandra/service/AntiEntropyService.java
cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamIn.java
cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamOut.java
cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamRequestMessage.java
cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamRequestVerbHandler.java
cassandra/trunk/test/system/test_cql.py
cassandra/trunk/test/unit/org/apache/cassandra/streaming/SerializationsTest.java
cassandra/trunk/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java
Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jun 9 15:46:19 2011
@@ -1,7 +1,7 @@
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7:1026516-1131292
+/cassandra/branches/cassandra-0.7:1026516-1133391
/cassandra/branches/cassandra-0.7.0:1053690-1055654
-/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1132428
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1133945
/cassandra/branches/cassandra-0.8.0:1125021-1130369
/cassandra/branches/cassandra-0.8.1:1101014-1125018
/cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689
Modified: cassandra/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Thu Jun 9 15:46:19 2011
@@ -6,7 +6,7 @@
- TTL support (CASSANDRA-2476)
- counter support (CASSANDRA-2473)
- improve JDBC spec compliance (CASSANDRA-2720)
- - ALTER TABLE (CASSANDRA-1709)
+ - ALTER COLUMNFAMILY (CASSANDRA-1709)
- DROP INDEX (CASSANDRA-2617)
* add support for comparator parameters and a generic ReverseType
(CASSANDRA-2355)
@@ -36,9 +36,15 @@
* close scrub file handles (CASSANDRA-2669)
* throttle migration replay (CASSANDRA-2714)
* optimize column serializer creation (CASSANDRA-2716)
+ * Added support for making bootstrap retry if nodes flap (CASSANDRA-2644)
+ * Added statusthrift to nodetool to report if thrift server is running
+ (CASSANDRA-2722)
+ * Fixed rows being cached if they do not exist (CASSANDRA-2723)
* fix truncate/compaction race (CASSANDRA-2673)
* workaround large resultsets causing large allocation retention
by nio sockets (CASSANDRA-2654)
+ * restrict repair streaming to specific columnfamilies (CASSANDRA-2280)
+ * fix nodetool ring use with Ec2Snitch (CASSANDRA-2733)
0.8.0-final
Modified: cassandra/trunk/build.xml
URL: http://svn.apache.org/viewvc/cassandra/trunk/build.xml?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/build.xml (original)
+++ cassandra/trunk/build.xml Thu Jun 9 15:46:19 2011
@@ -36,7 +36,6 @@
<property name="build.src" value="${basedir}/src"/>
<property name="build.src.java" value="${basedir}/src/java"/>
<property name="build.src.resources" value="${basedir}/src/resources"/>
- <property name="build.src.driver" value="${basedir}/drivers/java/src" />
<property name="avro.src" value="${basedir}/src/avro"/>
<property name="build.src.gen-java" value="${basedir}/src/gen-java"/>
<property name="build.lib" value="${basedir}/lib"/>
@@ -46,7 +45,6 @@
<property name="build.classes" value="${build.dir}/classes"/>
<property name="build.classes.main" value="${build.classes}/main" />
<property name="build.classes.thrift" value="${build.classes}/thrift" />
- <property name="build.classes.cql" value="${build.classes}/cql" />
<property name="javadoc.dir" value="${build.dir}/javadoc"/>
<property name="javadoc.jars.dir" value="${build.dir}/javadocs"/>
<property name="interface.dir" value="${basedir}/interface"/>
@@ -60,11 +58,9 @@
<property name="test.data" value="${test.dir}/data"/>
<property name="test.name" value="*Test"/>
<property name="test.unit.src" value="${test.dir}/unit"/>
- <property name="test.src.driver" value="${basedir}/drivers/java/test"/>
<property name="test.long.src" value="${test.dir}/long"/>
<property name="test.distributed.src" value="${test.dir}/distributed"/>
<property name="dist.dir" value="${build.dir}/dist"/>
- <property name="cql.driver.version" value="1.0.3" />
<condition property="version" value="${base.version}">
<isset property="release"/>
</condition>
@@ -161,7 +157,6 @@
message="Not a source artifact, stopping here." />
<mkdir dir="${build.classes.main}"/>
<mkdir dir="${build.classes.thrift}"/>
- <mkdir dir="${build.classes.cql}"/>
<mkdir dir="${test.lib}"/>
<mkdir dir="${test.classes}"/>
<mkdir dir="${build.src.gen-java}"/>
@@ -399,7 +394,6 @@ url=${svn.entry.url}?pathrev=${svn.entry
<dependency groupId="log4j" artifactId="log4j" version="1.2.16" />
<dependency groupId="org.apache.cassandra" artifactId="cassandra-all" version="${version}" />
<dependency groupId="org.apache.cassandra" artifactId="cassandra-thrift" version="${version}" />
- <dependency groupId="org.apache.cassandra" artifactId="cassandra-cql" version="${version}" />
</dependencyManagement>
<developer id="alakshman" name="Avinash Lakshman"/>
<developer id="antelder" name="Anthony Elder"/>
@@ -509,22 +503,6 @@ url=${svn.entry.url}?pathrev=${svn.entry
<dependency groupId="org.slf4j" artifactId="slf4j-api"/>
<dependency groupId="org.apache.thrift" artifactId="libthrift"/>
</artifact:pom>
- <artifact:pom id="cql-pom"
- artifactId="cassandra-cql"
- url="http://cassandra.apache.org"
- name="Apache Cassandra">
- <parent groupId="org.apache.cassandra"
- artifactId="cassandra-parent"
- version="${version}"/>
- <scm connection="${scm.connection}" developerConnection="${scm.developerConnection}" url="${scm.url}"/>
- <dependency groupId="com.google.guava" artifactId="guava"/>
- <dependency groupId="org.slf4j" artifactId="slf4j-api"/>
- <dependency groupId="org.apache.thrift" artifactId="libthrift"/>
- <dependency groupId="org.apache.cassandra" artifactId="cassandra-thrift"/>
- <dependency groupId="org.apache.cassandra" artifactId="cassandra-all"/>
- <!-- because cassandra-all uses log4j, and we need cassandra-all, consumers must use log4j, so force log4j version of slf4j -->
- <dependency groupId="org.slf4j" artifactId="slf4j-log4j12" scope="runtime"/>
- </artifact:pom>
<artifact:pom id="dist-pom"
artifactId="apache-cassandra"
@@ -695,11 +673,6 @@ url=${svn.entry.url}?pathrev=${svn.entry
<src path="${build.src.gen-java}"/>
<classpath refid="cassandra.classpath"/>
</javac>
- <javac debug="true" debuglevel="${debuglevel}"
- destdir="${build.classes.cql}" includeantruntime="false">
- <src path="${build.src.driver}" />
- <classpath refid="cassandra.classpath"/>
- </javac>
<copy todir="${build.classes.main}">
<fileset dir="${build.src.resources}" />
</copy>
@@ -757,20 +730,6 @@ url=${svn.entry.url}?pathrev=${svn.entry
<!-- </section> -->
</manifest>
</jar>
-
- <!-- CQL driver Jar -->
- <artifact:writepom pomRefId="cql-pom"
- file="${build.dir}/${ant.project.name}-cql-${cql.driver.version}.pom"/>
- <jar jarfile="${build.dir}/${ant.project.name}-cql-${cql.driver.version}.jar"
- basedir="${build.classes.cql}">
- <manifest>
- <attribute name="Implementation-Title" value="Cassandra"/>
- <attribute name="Implementation-Version" value="${version}"/>
- <attribute name="Implementation-Vendor" value="Apache"/>
- <attribute name="Class-Path"
- value="${ant.project.name}-thrift-${version}.jar" />
- </manifest>
- </jar>
</target>
<!--
@@ -796,23 +755,11 @@ url=${svn.entry.url}?pathrev=${svn.entry
<fileset dir="${build.src.gen-java}" defaultexcludes="yes">
<include name="org/apache/**/*.java"/>
</fileset>
- <fileset dir="${build.src.driver}" defaultexcludes="yes">
- <include name="org/apache/**/*.java"/>
- </fileset>
</filesets>
</create-javadoc>
<jar jarfile="${build.dir}/${final.name}-javadoc.jar"
basedir="${javadoc.jars.dir}/main"/>
- <create-javadoc destdir="${javadoc.jars.dir}/cql">
- <filesets>
- <fileset dir="${build.src.driver}" defaultexcludes="yes">
- <include name="org/apache/**/*.java"/>
- </fileset>
- </filesets>
- </create-javadoc>
- <jar jarfile="${build.dir}/${ant.project.name}-cql-${cql.driver.version}-javadoc.jar"
- basedir="${javadoc.jars.dir}/cql"/>
<!-- javadoc task always rebuilds so might as well remove the generated docs to prevent
being pulled into the distribution by accident -->
<delete quiet="true" dir="${javadoc.jars.dir}"/>
@@ -834,19 +781,11 @@ url=${svn.entry.url}?pathrev=${svn.entry
<fileset dir="${build.src.gen-java}" defaultexcludes="yes">
<include name="org/apache/**/*.java"/>
</fileset>
- <fileset dir="${build.src.driver}" defaultexcludes="yes">
- <include name="org/apache/**/*.java"/>
- </fileset>
- </jar>
- <jar jarfile="${build.dir}/${ant.project.name}-cql-${cql.driver.version}-sources.jar">
- <fileset dir="${build.src.driver}" defaultexcludes="yes">
- <include name="org/apache/**/*.java"/>
- </fileset>
</jar>
</target>
<!-- creates release tarballs -->
- <target name="artifacts" depends="jar,javadoc,py-cql-driver,tx-cql-driver"
+ <target name="artifacts" depends="jar,javadoc"
description="Create Cassandra release artifacts">
<mkdir dir="${dist.dir}"/>
<copy todir="${dist.dir}/lib">
@@ -936,14 +875,12 @@ url=${svn.entry.url}?pathrev=${svn.entry
algorithm="MD5">
<fileset dir="${build.dir}">
<include name="*.tar.gz" />
- <include name="${ant.project.name}-cql-${cql.driver.version}.jar" />
</fileset>
</checksum>
<checksum forceOverwrite="yes" todir="${build.dir}" fileext=".sha"
algorithm="SHA">
<fileset dir="${build.dir}">
<include name="*.tar.gz" />
- <include name="${ant.project.name}-cql-${cql.driver.version}.jar" />
</fileset>
</checksum>
@@ -973,11 +910,9 @@ url=${svn.entry.url}?pathrev=${svn.entry
destdir="${test.classes}">
<classpath>
<path refid="cassandra.classpath"/>
- <pathelement location="${build.classes.cql}"/>
</classpath>
<src path="${test.unit.src}"/>
<src path="${test.long.src}"/>
- <src path="${test.src.driver}"/>
</javac>
<!-- Non-java resources needed by the test suite -->
@@ -1026,7 +961,6 @@ url=${svn.entry.url}?pathrev=${svn.entry
<classpath>
<path refid="cassandra.classpath" />
<pathelement location="${test.classes}"/>
- <pathelement location="${build.classes.cql}"/>
<path refid="cobertura.classpath"/>
<pathelement location="${test.conf}"/>
<fileset dir="${test.lib}">
@@ -1055,9 +989,6 @@ url=${svn.entry.url}?pathrev=${svn.entry
<jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
<jvmarg value="-Dcorrupt-sstable-root=${test.data}/corrupt-sstables"/>
</testmacro>
- <testmacro suitename="driverunit" inputdir="${test.src.driver}" timeout="60000">
- <jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
- </testmacro>
</target>
<target name="msg-ser-gen-test" depends="build-test" description="Generates message serializations">
@@ -1283,28 +1214,6 @@ url=${svn.entry.url}?pathrev=${svn.entry
<delete dir="build/eclipse-classes" />
</target>
- <target name="py-cql-driver"
- description="Generate Python CQL driver artifact">
- <echo>Creating Python CQL driver artifact...</echo>
- <exec executable="python" dir="${basedir}/drivers/py" failonerror="true">
- <arg line="setup.py" />
- <arg line="sdist" />
- <arg line="--dist-dir" />
- <arg line="${build.dir}" />
- </exec>
- </target>
-
- <target name="tx-cql-driver"
- description="Generate Twisted CQL driver artifact">
- <echo>Creating Twisted CQL driver artifact...</echo>
- <exec executable="python" dir="${basedir}/drivers/txpy" failonerror="true">
- <arg line="setup.py" />
- <arg line="sdist" />
- <arg line="--dist-dir" />
- <arg line="${build.dir}" />
- </exec>
- </target>
-
<!-- Publish artifacts to Maven repositories -->
<target name="mvn-install"
depends="maven-declare-dependencies,artifacts,jar,sources-jar,javadoc-jar"
@@ -1347,16 +1256,6 @@ url=${svn.entry.url}?pathrev=${svn.entry
<install pomFile="${build.dir}/${final.name}.pom"
file="${build.dir}/${final.name}-javadoc.jar"
classifier="javadoc"/>
-
- <!-- the cassandra-cql jar -->
- <install pomFile="${build.dir}/${ant.project.name}-cql-${cql.driver.version}.pom"
- file="${build.dir}/${ant.project.name}-cql-${cql.driver.version}.jar"/>
- <install pomFile="${build.dir}/${ant.project.name}-cql-${cql.driver.version}.pom"
- file="${build.dir}/${ant.project.name}-cql-${cql.driver.version}-sources.jar"
- classifier="sources"/>
- <install pomFile="${build.dir}/${ant.project.name}-cql-${cql.driver.version}.pom"
- file="${build.dir}/${ant.project.name}-cql-${cql.driver.version}-javadoc.jar"
- classifier="javadoc"/>
</target>
<target name="publish"
@@ -1401,16 +1300,6 @@ url=${svn.entry.url}?pathrev=${svn.entry
<deploy pomFile="${build.dir}/${final.name}.pom"
file="${build.dir}/${final.name}-javadoc.jar"
classifier="javadoc"/>
-
- <!-- the cassandra-cql jar -->
- <deploy pomFile="${build.dir}/${ant.project.name}-cql-${cql.driver.version}.pom"
- file="${build.dir}/${ant.project.name}-cql-${cql.driver.version}.jar"/>
- <deploy pomFile="${build.dir}/${ant.project.name}-cql-${cql.driver.version}.pom"
- file="${build.dir}/${ant.project.name}-cql-${cql.driver.version}-sources.jar"
- classifier="sources"/>
- <deploy pomFile="${build.dir}/${ant.project.name}-cql-${cql.driver.version}.pom"
- file="${build.dir}/${ant.project.name}-cql-${cql.driver.version}-javadoc.jar"
- classifier="javadoc"/>
</target>
</project>
Propchange: cassandra/trunk/contrib/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jun 9 15:46:19 2011
@@ -1,7 +1,7 @@
/cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
-/cassandra/branches/cassandra-0.7/contrib:1026516-1131292
+/cassandra/branches/cassandra-0.7/contrib:1026516-1133391
/cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
-/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1132428
+/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1133945
/cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369
/cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018
/cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jun 9 15:46:19 2011
@@ -1,7 +1,7 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1131292
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1133391
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1132428
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1133945
/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/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jun 9 15:46:19 2011
@@ -1,7 +1,7 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1131292
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1133391
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1132428
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1133945
/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/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jun 9 15:46:19 2011
@@ -1,7 +1,7 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1131292
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1133391
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1132428
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1133945
/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/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jun 9 15:46:19 2011
@@ -1,7 +1,7 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1131292
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1133391
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1132428
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1133945
/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/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jun 9 15:46:19 2011
@@ -1,7 +1,7 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1131292
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1133391
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1132428
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1133945
/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/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689
Modified: cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g Thu Jun 9 15:46:19 2011
@@ -406,7 +406,7 @@ alterTableStatement returns [AlterTableS
OperationType type = null;
String columnFamily = null, columnName = null, validator = null;
}
- K_ALTER K_TABLE name=( IDENT | STRING_LITERAL | INTEGER ) { columnFamily = $name.text; }
+ K_ALTER K_COLUMNFAMILY name=( IDENT | STRING_LITERAL | INTEGER ) { columnFamily = $name.text; }
( K_ALTER { type = OperationType.ALTER; }
(col=( IDENT | STRING_LITERAL | INTEGER ) { columnName = $col.text; })
K_TYPE alterValidator=comparatorType { validator = $alterValidator.text; }
@@ -509,7 +509,6 @@ K_VALUES: V A L U E S;
K_TIMESTAMP: T I M E S T A M P;
K_TTL: T T L;
K_ALTER: A L T E R;
-K_TABLE: T A B L E;
K_ADD: A D D;
K_TYPE: T Y P E;
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/Table.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/Table.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/Table.java Thu Jun 9 15:46:19 2011
@@ -252,7 +252,7 @@ public class Table
}
/**
- * @return A list of open SSTableReaders (TODO: ensure that the caller doesn't modify these).
+ * @return A list of open SSTableReaders
*/
public List<SSTableReader> getAllSSTables()
{
Modified: cassandra/trunk/src/java/org/apache/cassandra/locator/Ec2Snitch.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/locator/Ec2Snitch.java?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/locator/Ec2Snitch.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/locator/Ec2Snitch.java Thu Jun 9 15:46:19 2011
@@ -25,11 +25,13 @@ import java.net.HttpURLConnection;
import java.net.InetAddress;
import java.net.URL;
+import com.google.common.base.Charsets;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.cassandra.config.ConfigurationException;
import org.apache.cassandra.gms.ApplicationState;
+import org.apache.cassandra.gms.EndpointState;
import org.apache.cassandra.gms.Gossiper;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.FBUtilities;
@@ -41,47 +43,54 @@ import org.apache.cassandra.utils.FBUtil
public class Ec2Snitch extends AbstractNetworkTopologySnitch
{
protected static Logger logger = LoggerFactory.getLogger(Ec2Snitch.class);
+ protected static final String ZONE_NAME_QUERY_URL = "http://169.254.169.254/latest/meta-data/placement/availability-zone";
protected String ec2zone;
protected String ec2region;
public Ec2Snitch() throws IOException, ConfigurationException
{
- // Populate the region and zone by introspection, fail if 404 on metadata
- HttpURLConnection conn = (HttpURLConnection) new URL("http://169.254.169.254/latest/meta-data/placement/availability-zone").openConnection();
- conn.setRequestMethod("GET");
- if (conn.getResponseCode() != 200)
- {
- throw new ConfigurationException("Ec2Snitch was unable to find region/zone data. Not an ec2 node?");
- }
-
- // Read the information. I wish I could say (String) conn.getContent() here...
- int cl = conn.getContentLength();
- byte[] b = new byte[cl];
- DataInputStream d = new DataInputStream((FilterInputStream)conn.getContent());
- d.readFully(b);
-
// Split "us-east-1a" or "asia-1a" into "us-east"/"1a" and "asia"/"1a".
- String azone = new String(b ,"UTF-8");
- String[] splits = azone.split("-");
+ String[] splits = awsApiCall(ZONE_NAME_QUERY_URL).split("-");
ec2zone = splits[splits.length - 1];
- ec2region = splits.length < 3 ? splits[0] : splits[0]+"-"+splits[1];
+ ec2region = splits.length < 3 ? splits[0] : splits[0] + "-" + splits[1];
logger.info("EC2Snitch using region: " + ec2region + ", zone: " + ec2zone + ".");
}
+
+ String awsApiCall(String url) throws IOException, ConfigurationException
+ {
+ // Populate the region and zone by introspection, fail if 404 on metadata
+ HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
+ try
+ {
+ conn.setRequestMethod("GET");
+ if (conn.getResponseCode() != 200)
+ throw new ConfigurationException("Ec2Snitch was unable to execute the API call. Not an ec2 node?");
+
+ // Read the information. I wish I could say (String) conn.getContent() here...
+ int cl = conn.getContentLength();
+ byte[] b = new byte[cl];
+ DataInputStream d = new DataInputStream((FilterInputStream) conn.getContent());
+ d.readFully(b);
+ return new String(b, Charsets.UTF_8);
+ }
+ finally
+ {
+ conn.disconnect();
+ }
+ }
public String getRack(InetAddress endpoint)
{
- if (endpoint == FBUtilities.getLocalAddress())
+ if (endpoint.equals(FBUtilities.getLocalAddress()))
return ec2zone;
- else
- return Gossiper.instance.getEndpointStateForEndpoint(endpoint).getApplicationState(ApplicationState.RACK).value;
+ return Gossiper.instance.getEndpointStateForEndpoint(endpoint).getApplicationState(ApplicationState.RACK).value;
}
public String getDatacenter(InetAddress endpoint)
{
- if (endpoint == FBUtilities.getLocalAddress())
+ if (endpoint.equals(FBUtilities.getLocalAddress()))
return ec2region;
- else
- return Gossiper.instance.getEndpointStateForEndpoint(endpoint).getApplicationState(ApplicationState.DC).value;
+ return Gossiper.instance.getEndpointStateForEndpoint(endpoint).getApplicationState(ApplicationState.DC).value;
}
@Override
Modified: cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java Thu Jun 9 15:46:19 2011
@@ -58,7 +58,9 @@ import org.cliffc.high_scale_lib.NonBloc
public final class MessagingService implements MessagingServiceMBean
{
public static final int VERSION_07 = 1;
- public static final int version_ = 2;
+ public static final int VERSION_080 = 2;
+ public static final int version_ = 81;
+
//TODO: make this parameter dynamic somehow. Not sure if config is appropriate.
private SerializerType serializerType_ = SerializerType.BINARY;
Modified: cassandra/trunk/src/java/org/apache/cassandra/service/AntiEntropyService.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/AntiEntropyService.java?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/AntiEntropyService.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/AntiEntropyService.java Thu Jun 9 15:46:19 2011
@@ -492,7 +492,7 @@ public class AntiEntropyService
StreamOutSession outsession = StreamOutSession.create(request.cf.left, request.endpoint, callback);
StreamOut.transferSSTables(outsession, sstables, differences, OperationType.AES);
// request ranges from the remote node
- StreamIn.requestRanges(request.endpoint, request.cf.left, differences, callback, OperationType.AES);
+ StreamIn.requestRanges(request.endpoint, request.cf.left, Collections.singletonList(cfstore), differences, callback, OperationType.AES);
}
catch(Exception e)
{
Modified: cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java Thu Jun 9 15:46:19 2011
@@ -2322,7 +2322,7 @@ public class StorageService implements I
public void run()
{
// TODO each call to transferRanges re-flushes, this is potentially a lot of waste
- StreamOut.transferRanges(newEndpoint, table, Arrays.asList(range), callback, OperationType.UNBOOTSTRAP);
+ StreamOut.transferRanges(newEndpoint, Table.open(table), Arrays.asList(range), callback, OperationType.UNBOOTSTRAP);
}
});
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamIn.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamIn.java?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamIn.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamIn.java Thu Jun 9 15:46:19 2011
@@ -24,7 +24,11 @@ package org.apache.cassandra.streaming;
import java.io.IOException;
import java.net.InetAddress;
import java.util.Collection;
+import java.util.Collections;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.cassandra.db.ColumnFamily;
import org.apache.cassandra.gms.Gossiper;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
@@ -47,22 +51,29 @@ public class StreamIn
{
private static Logger logger = LoggerFactory.getLogger(StreamIn.class);
+ /** Request ranges for all column families in the given keyspace. */
+ public static void requestRanges(InetAddress source, String tableName, Collection<Range> ranges, Runnable callback, OperationType type)
+ {
+ requestRanges(source, tableName, Table.open(tableName).getColumnFamilyStores(), ranges, callback, type);
+ }
+
/**
- * Request ranges to be transferred from source to local node
+ * Request ranges to be transferred from specific CFs
*/
- public static void requestRanges(InetAddress source, String tableName, Collection<Range> ranges, Runnable callback, OperationType type)
+ public static void requestRanges(InetAddress source, String tableName, Collection<ColumnFamilyStore> columnFamilies, Collection<Range> ranges, Runnable callback, OperationType type)
{
assert ranges.size() > 0;
if (logger.isDebugEnabled())
logger.debug("Requesting from {} ranges {}", source, StringUtils.join(ranges, ", "));
StreamInSession session = StreamInSession.create(source, callback);
- Message message = new StreamRequestMessage(FBUtilities.getLocalAddress(),
- ranges,
- tableName,
- session.getSessionId(),
- type)
- .getMessage(Gossiper.instance.getVersion(source));
+ StreamRequestMessage srm = new StreamRequestMessage(FBUtilities.getLocalAddress(),
+ ranges,
+ tableName,
+ columnFamilies,
+ session.getSessionId(),
+ type);
+ Message message = srm.getMessage(Gossiper.instance.getVersion(source));
MessagingService.instance().sendOneWay(message, source);
}
@@ -78,5 +89,5 @@ public class StreamIn
Descriptor localdesc = Descriptor.fromFilename(cfStore.getFlushPath(remote.size, remote.desc.version));
return new PendingFile(localdesc, remote);
- }
+ }
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamOut.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamOut.java?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamOut.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamOut.java Thu Jun 9 15:46:19 2011
@@ -22,21 +22,21 @@ package org.apache.cassandra.streaming;
import java.io.IOError;
import java.io.IOException;
import java.net.InetAddress;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
+import java.util.*;
import java.util.concurrent.Future;
+import com.google.common.collect.Iterables;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.db.Table;
import org.apache.cassandra.dht.Range;
import org.apache.cassandra.io.sstable.Descriptor;
import org.apache.cassandra.io.sstable.SSTable;
import org.apache.cassandra.io.sstable.SSTableReader;
+import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.Pair;
/**
@@ -65,74 +65,48 @@ public class StreamOut
private static Logger logger = LoggerFactory.getLogger(StreamOut.class);
/**
- * Split out files for all tables on disk locally for each range and then stream them to the target endpoint.
+ * Stream the given ranges to the target endpoint from each CF in the given keyspace.
*/
- public static void transferRanges(InetAddress target, String tableName, Collection<Range> ranges, Runnable callback, OperationType type)
+ public static void transferRanges(InetAddress target, Table table, Collection<Range> ranges, Runnable callback, OperationType type)
{
- assert ranges.size() > 0;
-
- // this is so that this target shows up as a destination while anticompaction is happening.
- StreamOutSession session = StreamOutSession.create(tableName, target, callback);
-
- logger.info("Beginning transfer to {}", target);
- logger.debug("Ranges are {}", StringUtils.join(ranges, ","));
-
- try
- {
- Table table = flushSSTable(tableName);
- // send the matching portion of every sstable in the keyspace
- transferSSTables(session, table.getAllSSTables(), ranges, type);
- }
- catch (IOException e)
- {
- throw new IOError(e);
- }
+ StreamOutSession session = StreamOutSession.create(table.name, target, callback);
+ transferRanges(session, table.getColumnFamilyStores(), ranges, type);
}
/**
- * (1) dump all the memtables to disk.
- * (2) determine the minimal file sections we need to send for the given ranges
- * (3) transfer the data.
+ * Flushes matching column families from the given keyspace, or all columnFamilies
+ * if the cf list is empty.
*/
- private static Table flushSSTable(String tableName) throws IOException
+ private static void flushSSTables(Iterable<ColumnFamilyStore> stores) throws IOException
{
- Table table = Table.open(tableName);
- logger.info("Flushing memtables for {}...", tableName);
- for (Future<?> f : table.flush())
- {
- try
- {
- f.get();
- }
- catch (InterruptedException e)
- {
- throw new RuntimeException(e);
- }
- catch (ExecutionException e)
- {
- throw new RuntimeException(e);
- }
+ logger.info("Flushing memtables for {}...", stores);
+ List<Future<?>> flushes;
+ flushes = new ArrayList<Future<?>>();
+ for (ColumnFamilyStore cfstore : stores)
+ {
+ Future<?> flush = cfstore.forceFlush();
+ if (flush != null)
+ flushes.add(flush);
}
- return table;
+ FBUtilities.waitOnFutures(flushes);
}
/**
- * Split out files for all tables on disk locally for each range and then stream them to the target endpoint.
+ * Stream the given ranges to the target endpoint from each of the given CFs.
*/
- public static void transferRangesForRequest(StreamOutSession session, Collection<Range> ranges, OperationType type)
+ public static void transferRanges(StreamOutSession session, Iterable<ColumnFamilyStore> cfses, Collection<Range> ranges, OperationType type)
{
assert ranges.size() > 0;
logger.info("Beginning transfer to {}", session.getHost());
logger.debug("Ranges are {}", StringUtils.join(ranges, ","));
-
try
{
- Table table = flushSSTable(session.table);
- // send the matching portion of every sstable in the keyspace
- List<PendingFile> pending = createPendingFiles(table.getAllSSTables(), ranges, type);
- session.addFilesToStream(pending);
- session.begin();
+ flushSSTables(cfses);
+ Iterable<SSTableReader> sstables = Collections.emptyList();
+ for (ColumnFamilyStore cfStore : cfses)
+ sstables = Iterables.concat(sstables, cfStore.getSSTables());
+ transferSSTables(session, sstables, ranges, type);
}
catch (IOException e)
{
@@ -141,9 +115,10 @@ public class StreamOut
}
/**
- * Transfers matching portions of a group of sstables from a single table to the target endpoint.
+ * Low-level transfer of matching portions of a group of sstables from a single table to the target endpoint.
+ * You should probably call transferRanges instead.
*/
- public static void transferSSTables(StreamOutSession session, Collection<SSTableReader> sstables, Collection<Range> ranges, OperationType type) throws IOException
+ public static void transferSSTables(StreamOutSession session, Iterable<SSTableReader> sstables, Collection<Range> ranges, OperationType type) throws IOException
{
List<PendingFile> pending = createPendingFiles(sstables, ranges, type);
@@ -159,7 +134,7 @@ public class StreamOut
}
// called prior to sending anything.
- private static List<PendingFile> createPendingFiles(Collection<SSTableReader> sstables, Collection<Range> ranges, OperationType type)
+ private static List<PendingFile> createPendingFiles(Iterable<SSTableReader> sstables, Collection<Range> ranges, OperationType type)
{
List<PendingFile> pending = new ArrayList<PendingFile>();
for (SSTableReader sstable : sstables)
@@ -170,7 +145,7 @@ public class StreamOut
continue;
pending.add(new PendingFile(sstable, desc, SSTable.COMPONENT_DATA, sections, type));
}
- logger.info("Stream context metadata {}, {} sstables.", pending, sstables.size());
+ logger.info("Stream context metadata {}, {} sstables.", pending, Iterables.size(sstables));
return pending;
}
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamRequestMessage.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamRequestMessage.java?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamRequestMessage.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamRequestMessage.java Thu Jun 9 15:46:19 2011
@@ -23,10 +23,13 @@ package org.apache.cassandra.streaming;
import java.io.*;
import java.net.InetAddress;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
+import java.util.*;
+import com.google.common.collect.Iterables;
+
+import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.db.ColumnFamilyStore;
+import org.apache.cassandra.db.Table;
import org.apache.cassandra.dht.AbstractBounds;
import org.apache.cassandra.dht.Range;
import org.apache.cassandra.io.ICompactSerializer;
@@ -66,13 +69,15 @@ class StreamRequestMessage implements Me
// if these are specified, file shoud not be.
protected final Collection<Range> ranges;
protected final String table;
+ protected final Iterable<ColumnFamilyStore> columnFamilies;
protected final OperationType type;
- StreamRequestMessage(InetAddress target, Collection<Range> ranges, String table, long sessionId, OperationType type)
+ StreamRequestMessage(InetAddress target, Collection<Range> ranges, String table, Iterable<ColumnFamilyStore> columnFamilies, long sessionId, OperationType type)
{
this.target = target;
this.ranges = ranges;
this.table = table;
+ this.columnFamilies = columnFamilies;
this.sessionId = sessionId;
this.type = type;
file = null;
@@ -86,6 +91,7 @@ class StreamRequestMessage implements Me
this.type = file.type;
ranges = null;
table = null;
+ columnFamilies = null;
}
public Message getMessage(Integer version)
@@ -110,6 +116,8 @@ class StreamRequestMessage implements Me
{
sb.append(table);
sb.append("@");
+ sb.append(columnFamilies.toString());
+ sb.append("@");
sb.append(target);
sb.append("------->");
for ( Range range : ranges )
@@ -146,8 +154,16 @@ class StreamRequestMessage implements Me
{
AbstractBounds.serializer().serialize(range, dos);
}
+
if (version > MessagingService.VERSION_07)
dos.writeUTF(srm.type.name());
+
+ if (version > MessagingService.VERSION_080)
+ {
+ dos.writeInt(Iterables.size(srm.columnFamilies));
+ for (ColumnFamilyStore cfs : srm.columnFamilies)
+ dos.writeInt(cfs.metadata.cfId);
+ }
}
}
@@ -173,7 +189,16 @@ class StreamRequestMessage implements Me
OperationType type = OperationType.RESTORE_REPLICA_COUNT;
if (version > MessagingService.VERSION_07)
type = OperationType.valueOf(dis.readUTF());
- return new StreamRequestMessage(target, ranges, table, sessionId, type);
+
+ List<ColumnFamilyStore> stores = new ArrayList<ColumnFamilyStore>();
+ if (version > MessagingService.VERSION_080)
+ {
+ int cfsSize = dis.readInt();
+ for (int i = 0; i < cfsSize; ++i)
+ stores.add(Table.open(table).getColumnFamilyStore(dis.readInt()));
+ }
+
+ return new StreamRequestMessage(target, ranges, table, stores, sessionId, type);
}
}
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamRequestVerbHandler.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamRequestVerbHandler.java?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamRequestVerbHandler.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamRequestVerbHandler.java Thu Jun 9 15:46:19 2011
@@ -51,7 +51,7 @@ public class StreamRequestVerbHandler im
logger.debug(srm.toString());
StreamOutSession session = StreamOutSession.create(srm.table, message.getFrom(), srm.sessionId);
- StreamOut.transferRangesForRequest(session, srm.ranges, srm.type);
+ StreamOut.transferRanges(session, srm.columnFamilies, srm.ranges, srm.type);
}
catch (IOException ex)
{
Modified: cassandra/trunk/test/system/test_cql.py
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/system/test_cql.py?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/test/system/test_cql.py (original)
+++ cassandra/trunk/test/system/test_cql.py Thu Jun 9 15:46:19 2011
@@ -1039,7 +1039,7 @@ class TestCql(ThriftTester):
assert len(r) == 1, "expected 0 results, got %d" % len(r)
def test_alter_table_statement(self):
- "test ALTER TABLE statement"
+ "test ALTER statement"
cursor = init()
cursor.execute("""
CREATE KEYSPACE AlterTableKS WITH strategy_options:replication_factor = '1'
@@ -1060,7 +1060,7 @@ class TestCql(ThriftTester):
assert len(cfam.column_metadata) == 0
# testing "add a new column"
- cursor.execute("ALTER TABLE NewCf1 ADD name varchar")
+ cursor.execute("ALTER COLUMNFAMILY NewCf1 ADD name varchar")
ksdef = thrift_client.describe_keyspace("AlterTableKS")
assert len(ksdef.cf_defs) == 1, \
@@ -1072,7 +1072,7 @@ class TestCql(ThriftTester):
assert columns[0].validation_class == 'org.apache.cassandra.db.marshal.UTF8Type'
# testing "alter a column type"
- cursor.execute("ALTER TABLE NewCf1 ALTER name TYPE ascii")
+ cursor.execute("ALTER COLUMNFAMILY NewCf1 ALTER name TYPE ascii")
ksdef = thrift_client.describe_keyspace("AlterTableKS")
assert len(ksdef.cf_defs) == 1, \
@@ -1086,10 +1086,10 @@ class TestCql(ThriftTester):
# alter column with unknown validator
assert_raises(cql.ProgrammingError,
cursor.execute,
- "ALTER TABLE NewCf1 ADD name utf8")
+ "ALTER COLUMNFAMILY NewCf1 ADD name utf8")
# testing 'drop an existing column'
- cursor.execute("ALTER TABLE NewCf1 DROP name")
+ cursor.execute("ALTER COLUMNFAMILY NewCf1 DROP name")
ksdef = thrift_client.describe_keyspace("AlterTableKS")
assert len(ksdef.cf_defs) == 1, \
@@ -1101,17 +1101,17 @@ class TestCql(ThriftTester):
# add column with unknown validator
assert_raises(cql.ProgrammingError,
cursor.execute,
- "ALTER TABLE NewCf1 ADD name utf8")
+ "ALTER COLUMNFAMILY NewCf1 ADD name utf8")
# alter not existing column
assert_raises(cql.ProgrammingError,
cursor.execute,
- "ALTER TABLE NewCf1 ALTER name TYPE uuid")
+ "ALTER COLUMNFAMILY NewCf1 ALTER name TYPE uuid")
# drop not existing column
assert_raises(cql.ProgrammingError,
cursor.execute,
- "ALTER TABLE NewCf1 DROP name")
+ "ALTER COLUMNFAMILY NewCf1 DROP name")
def test_counter_column_support(self):
"update statement should be able to work with counter columns"
Modified: cassandra/trunk/test/unit/org/apache/cassandra/streaming/SerializationsTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/streaming/SerializationsTest.java?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/streaming/SerializationsTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/streaming/SerializationsTest.java Thu Jun 9 15:46:19 2011
@@ -22,6 +22,7 @@ package org.apache.cassandra.streaming;
import org.apache.cassandra.AbstractSerializationsTester;
+import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.db.RowMutation;
import org.apache.cassandra.db.Table;
import org.apache.cassandra.db.filter.QueryPath;
@@ -41,9 +42,7 @@ import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
+import java.util.*;
public class SerializationsTest extends AbstractSerializationsTester
{
@@ -146,7 +145,8 @@ public class SerializationsTest extends
Collection<Range> ranges = new ArrayList<Range>();
for (int i = 0; i < 5; i++)
ranges.add(new Range(new BytesToken(ByteBufferUtil.bytes(Integer.toString(10*i))), new BytesToken(ByteBufferUtil.bytes(Integer.toString(10*i+5)))));
- StreamRequestMessage msg0 = new StreamRequestMessage(FBUtilities.getLocalAddress(), ranges, "Keyspace1", 123L, OperationType.RESTORE_REPLICA_COUNT);
+ List<ColumnFamilyStore> stores = Collections.singletonList(Table.open("Keyspace1").getColumnFamilyStore("Standard1"));
+ StreamRequestMessage msg0 = new StreamRequestMessage(FBUtilities.getLocalAddress(), ranges, "Keyspace1", stores, 123L, OperationType.RESTORE_REPLICA_COUNT);
StreamRequestMessage msg1 = new StreamRequestMessage(FBUtilities.getLocalAddress(), makePendingFile(true, 100, OperationType.BOOTSTRAP), 124L);
StreamRequestMessage msg2 = new StreamRequestMessage(FBUtilities.getLocalAddress(), makePendingFile(false, 100, OperationType.BOOTSTRAP), 124L);
Modified: cassandra/trunk/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java?rev=1133951&r1=1133950&r2=1133951&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java Thu Jun 9 15:46:19 2011
@@ -23,12 +23,10 @@ import static junit.framework.Assert.ass
import static org.apache.cassandra.Util.column;
import java.net.InetAddress;
-import java.nio.ByteBuffer;
import java.util.*;
import org.apache.cassandra.CleanupHelper;
import org.apache.cassandra.Util;
-import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.db.*;
import org.apache.cassandra.db.compaction.CompactionManager;
import org.apache.cassandra.db.columniterator.IdentityQueryFilter;