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;