Remove clientutil jar
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a3e772b8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a3e772b8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a3e772b8 Branch: refs/heads/trunk Commit: a3e772b8b92b00a7acc86e5aac34743ba36bb2e9 Parents: 21bde4c f4c3e14 Author: Tyler Hobbs <[email protected]> Authored: Thu Aug 11 13:51:46 2016 -0500 Committer: Tyler Hobbs <[email protected]> Committed: Thu Aug 11 13:51:46 2016 -0500 ---------------------------------------------------------------------- CHANGES.txt | 1 + NEWS.txt | 5 + build.xml | 115 +------------------ .../cassandra/serializers/ClientUtilsTest.java | 59 ---------- 4 files changed, 8 insertions(+), 172 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a3e772b8/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index a153adc,5b7f600..e1b0a44 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,42 -1,5 +1,43 @@@ +3.10 ++ * Remove clientutil jar (CASSANDRA-11635) + * Fix compaction throughput throttle (CASSANDRA-12366) + * Delay releasing Memtable memory on flush until PostFlush has finished running (CASSANDRA-12358) + * Cassandra stress should dump all setting on startup (CASSANDRA-11914) + * Make it possible to compact a given token range (CASSANDRA-10643) + * Allow updating DynamicEndpointSnitch properties via JMX (CASSANDRA-12179) + * Collect metrics on queries by consistency level (CASSANDRA-7384) + * Add support for GROUP BY to SELECT statement (CASSANDRA-10707) + * Deprecate memtable_cleanup_threshold and update default for memtable_flush_writers (CASSANDRA-12228) + * Upgrade to OHC 0.4.4 (CASSANDRA-12133) + * Add version command to cassandra-stress (CASSANDRA-12258) + * Create compaction-stress tool (CASSANDRA-11844) + * Garbage-collecting compaction operation and schema option (CASSANDRA-7019) + * Add schema to snapshot manifest, add USING TIMESTAMP clause to ALTER TABLE statements (CASSANDRA-7190) + * Add beta protocol flag for v5 native protocol (CASSANDRA-12142) + * Support filtering on non-PRIMARY KEY columns in the CREATE + MATERIALIZED VIEW statement's WHERE clause (CASSANDRA-10368) + * Unify STDOUT and SYSTEMLOG logback format (CASSANDRA-12004) + * COPY FROM should raise error for non-existing input files (CASSANDRA-12174) + * Faster write path (CASSANDRA-12269) + * Option to leave omitted columns in INSERT JSON unset (CASSANDRA-11424) + * Support json/yaml output in nodetool tpstats (CASSANDRA-12035) + * Expose metrics for successful/failed authentication attempts (CASSANDRA-10635) + * Prepend snapshot name with "truncated" or "dropped" when a snapshot + is taken before truncating or dropping a table (CASSANDRA-12178) + * Optimize RestrictionSet (CASSANDRA-12153) + * cqlsh does not automatically downgrade CQL version (CASSANDRA-12150) + * Omit (de)serialization of state variable in UDAs (CASSANDRA-9613) + * Create a system table to expose prepared statements (CASSANDRA-8831) + * Reuse DataOutputBuffer from ColumnIndex (CASSANDRA-11970) + * Remove DatabaseDescriptor dependency from SegmentedFile (CASSANDRA-11580) + * Add supplied username to authentication error messages (CASSANDRA-12076) + * Remove pre-startup check for open JMX port (CASSANDRA-12074) + * Remove compaction Severity from DynamicEndpointSnitch (CASSANDRA-11738) + + 3.9 * Fix value skipping with counter columns (CASSANDRA-11726) + * Restore resumable hints delivery (CASSANDRA-11960) * Fix nodetool tablestats miss SSTable count (CASSANDRA-12205) * Fixed flacky SSTablesIteratedTest (CASSANDRA-12282) * Fixed flacky SSTableRewriterTest: check file counts before calling validateCFS (CASSANDRA-12348) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a3e772b8/NEWS.txt ---------------------------------------------------------------------- diff --cc NEWS.txt index f28c6f2,d8d84f5..a14283f --- a/NEWS.txt +++ b/NEWS.txt @@@ -14,58 -14,6 +14,63 @@@ restore snapshots created with the prev using the provided 'sstableupgrade' tool. +3.10 +==== + +New features +------------ + - Support for GROUP BY queries has been added. + - A new compaction-stress tool has been added to test the throughput of compaction + for any cassandra-stress user schema. see compaction-stress help for how to use. + - Compaction can now take into account overlapping tables that don't take part + in the compaction to look for deleted or overwritten data in the compacted tables. + Then such data is found, it can be safely discarded, which in turn should enable + the removal of tombstones over that data. + + The behavior can be engaged in two ways: + - as a "nodetool garbagecollect -g CELL/ROW" operation, which applies + single-table compaction on all sstables to discard deleted data in one step. + - as a "provide_overlapping_tombstones:CELL/ROW/NONE" compaction strategy flag, + which uses overlapping tables as a source of deletions/overwrites during all + compactions. + The argument specifies the granularity at which deleted data is to be found: + - If ROW is specified, only whole deleted rows (or sets of rows) will be + discarded. + - If CELL is specified, any columns whose value is overwritten or deleted + will also be discarded. + - NONE (default) specifies the old behavior, overlapping tables are not used to + decide when to discard data. + Which option to use depends on your workload, both ROW and CELL increase the + disk load on compaction (especially with the size-tiered compaction strategy), + with CELL being more resource-intensive. Both should lead to better read + performance if deleting rows (resp. overwriting or deleting cells) is common. + - Prepared statements are now persisted in the table prepared_statements in + the system keyspace. Upon startup, this table is used to preload all + previously prepared statements - i.e. in many cases clients do not need to + re-prepare statements against restarted nodes. + - cqlsh can now connect to older Cassandra versions by downgrading the native + protocol version. Please note that this is currently not part of our release + testing and, as a consequence, it is not guaranteed to work in all cases. + See CASSANDRA-12150 for more details. + - Snapshots that are automatically taken before a table is dropped or truncated + will have a "dropped" or "truncated" prefix on their snapshot tag name. + - Metrics are exposed for successful and failed authentication attempts. + These can be located using the object names org.apache.cassandra.metrics:type=Client,name=AuthSuccess + and org.apache.cassandra.metrics:type=Client,name=AuthFailure respectively. + - Add support to "unset" JSON fields in prepared statements by specifying DEFAULT UNSET. + See CASSANDRA-11424 for details + +Upgrading +--------- + - Logs written to stdout are now consistent with logs written to files. + Time is now local (it was UTC on the console and local in files). Date, thread, file + and line info where added to stdout. (see CASSANDRA-12004) ++ - The 'clientutil' jar, which has been somewhat broken on the 3.x branch, is not longer provided. ++ The features provided by that jar are provided by any good java driver and we advise relying on drivers rather on ++ that jar, but if you need that jar for backward compatiblity until you do so, you should use the version provided ++ on previous Cassandra branch, like the 3.0 branch (by design, the functionality provided by that jar are stable ++ accross versions so using the 3.0 jar for a client connecting to 3.x should work without issues). + 3.8 === http://git-wip-us.apache.org/repos/asf/cassandra/blob/a3e772b8/build.xml ---------------------------------------------------------------------- diff --cc build.xml index 6a319a9,b312376..df6d469 --- a/build.xml +++ b/build.xml @@@ -639,17 -637,17 +639,6 @@@ <dependency groupId="com.googlecode.concurrent-trees" artifactId="concurrent-trees" version="2.4.0" /> </artifact:pom> -- <artifact:pom id="clientutil-pom" -- artifactId="cassandra-clientutil" -- 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"/> -- </artifact:pom> -- <artifact:pom id="dist-pom" artifactId="apache-cassandra" packaging="pom" @@@ -890,8 -861,8 +879,6 @@@ <artifact:writepom pomRefId="thrift-pom" file="${build.dir}/${ant.project.name}-thrift-${version}.pom"/> <artifact:writepom pomRefId="all-pom" file="${build.dir}/${final.name}.pom"/> -- <artifact:writepom pomRefId="clientutil-pom" -- file="${build.dir}/${ant.project.name}-clientutil-${version}.pom"/> </target> <target name="write-poms" unless="without.maven"> @@@ -943,31 -914,32 +930,11 @@@ <attribute name="Premain-Class" value="org.apache.cassandra.infrastructure.continuations.CAgent"/> <attribute name="Class-Path" -- value="${ant.project.name}-clientutil-${version}.jar ${ant.project.name}-thrift-${version}.jar" /> ++ value="${ant.project.name}-thrift-${version}.jar" /> <!-- </section> --> </manifest> </jar> -- <!-- Clientutil Jar --> -- <!-- TODO: write maven pom here --> -- <jar jarfile="${build.dir}/${ant.project.name}-clientutil-${version}.jar"> -- <fileset dir="${build.classes.main}"> -- <include name="org/apache/cassandra/serializers/*" /> -- <include name="org/apache/cassandra/utils/ByteBufferUtil*.class" /> -- <include name="org/apache/cassandra/utils/Hex.class" /> -- <include name="org/apache/cassandra/utils/UUIDGen*.class" /> -- <include name="org/apache/cassandra/utils/FBUtilities*.class" /> -- <include name="org/apache/cassandra/exceptions/*.class" /> -- <include name="org/apache/cassandra/utils/CloseableIterator.class" /> -- <include name="org/apache/cassandra/io/util/*.class" /> - <include name="org/apache/cassandra/utils/SigarLibrary.class" /> -- </fileset> -- <manifest> -- <attribute name="Implementation-Title" value="Cassandra"/> -- <attribute name="Implementation-Version" value="${version}"/> -- <attribute name="Implementation-Vendor" value="Apache"/> -- </manifest> -- </jar> -- <!-- Stress jar --> <manifest file="${stress.manifest}"> <attribute name="Built-By" value="Pavel Yaskevich"/> @@@ -1008,18 -980,18 +975,6 @@@ <jar jarfile="${build.dir}/${final.name}-javadoc.jar" basedir="${javadoc.jars.dir}/main"/> -- <create-javadoc destdir="${javadoc.jars.dir}/clientutil"> -- <filesets> -- <fileset dir="${build.src.java}" defaultexcludes="yes"> -- <include name="org/apache/cassandra/serializers/*" /> -- <include name="org/apache/cassandra/utils/ByteBufferUtil*.java" /> -- <include name="org/apache/cassandra/utils/Hex.java" /> -- <include name="org/apache/cassandra/utils/UUIDGen*.java" /> -- </fileset> -- </filesets> -- </create-javadoc> -- <jar jarfile="${build.dir}/${ant.project.name}-clientutil-${version}-javadoc.jar" -- basedir="${javadoc.jars.dir}/clientutil"/> <!-- 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}"/> @@@ -1042,14 -1014,14 +997,6 @@@ <include name="org/apache/**/*.java"/> </fileset> </jar> -- <jar jarfile="${build.dir}/${ant.project.name}-clientutil-${version}-sources.jar"> -- <fileset dir="${build.src.java}" defaultexcludes="yes"> -- <include name="org/apache/cassandra/serializers/*" /> -- <include name="org/apache/cassandra/utils/ByteBufferUtil*.java" /> -- <include name="org/apache/cassandra/utils/Hex.java" /> -- <include name="org/apache/cassandra/utils/UUIDGen*.java" /> -- </fileset> -- </jar> </target> <!-- creates release tarballs --> @@@ -1065,7 -1037,7 +1012,6 @@@ <fileset dir="${build.dir}"> <include name="${final.name}.jar" /> <include name="${ant.project.name}-thrift-${version}.jar" /> -- <include name="${ant.project.name}-clientutil-${version}.jar" /> </fileset> </copy> <copy todir="${dist.dir}/javadoc"> @@@ -1310,44 -1280,47 +1256,6 @@@ </sequential> </macrodef> -- <!-- -- This test target is a bit different. It's purpose is to exercise the -- clientutil jar in order to expose any new dependencies. For that -- reason we use the classes from the jar, and a carefully constructed -- classpath which only contains what we expect users to need. -- --> -- <target name="test-clientutil-jar" depends="build-test,jar" description="Test clientutil jar"> -- <junit fork="on" forkmode="perTest" failureproperty="testfailed" maxmemory="1024m" timeout="${test.timeout}"> - <!-- Note that the test pass without that next line, but it prints an ugly error message --> - <jvmarg value="-Djava.library.path=${build.lib}/sigar-bin"/> -- <test name="org.apache.cassandra.serializers.ClientUtilsTest" /> -- <formatter type="brief" usefile="false" /> -- <classpath> -- <pathelement location="${test.classes}" /> -- <pathelement location="${build.dir}/${ant.project.name}-clientutil-${version}.jar" /> -- <pathelement location="${build.dir}/${ant.project.name}-thrift-${version}.jar" /> -- <pathelement location="${build.lib}/libthrift-0.9.0.jar" /> -- <pathelement location="${build.lib}/slf4j-api-1.7.7.jar" /> -- <pathelement location="${build.lib}/log4j-over-slf4j.jar" /> -- <pathelement location="${build.lib}/logback-core-1.1.3.jar" /> -- <pathelement location="${build.lib}/logback-classic-1.1.3.jar" /> -- <pathelement location="${build.lib}/jackson-core-asl-1.9.2.jar" /> -- <pathelement location="${build.lib}/jackson-mapper-asl-1.9.2.jar" /> - <pathelement location="${build.lib}/sigar-1.6.4.jar" /> -- <fileset dir="${build.dir.lib}"> -- <include name="**/junit*.jar" /> -- </fileset> -- </classpath> -- </junit> -- <fail message="Clientutil test(s) failed."> -- <condition> -- <and> -- <isset property="testfailed"/> -- <not> -- <isset property="ant.test.failure.ignore"/> -- </not> -- </and> -- </condition> -- </fail> -- </target> -- <target name="testold" depends="build-test" description="Execute unit tests"> <testmacro inputdir="${test.unit.src}" timeout="${test.timeout}"> <jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/> @@@ -1584,7 -1557,7 +1492,7 @@@ </target> <target name="test-all" - depends="eclipse-warnings,test,long-test,test-compression,test-clientutil-jar,stress-test" - depends="eclipse-warnings,test,long-test,test-compression,test-clientutil-jar" ++ depends="eclipse-warnings,test,long-test,test-compression,stress-test" description="Run all tests except for those under test-burn" /> <!-- Use JaCoCo ant extension without needing externally saved lib --> @@@ -1983,16 -1954,16 +1891,6 @@@ file="${build.dir}/${ant.project.name}-thrift-${version}-javadoc.jar" classifier="javadoc"/> -- <!-- the cassandra-clientutil jar --> -- <install pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom" -- file="${build.dir}/${ant.project.name}-clientutil-${version}.jar"/> -- <install pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom" -- file="${build.dir}/${ant.project.name}-clientutil-${version}-sources.jar" -- classifier="sources"/> -- <install pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom" -- file="${build.dir}/${ant.project.name}-clientutil-${version}-javadoc.jar" -- classifier="javadoc"/> -- <!-- the cassandra-all jar --> <install pomFile="${build.dir}/${final.name}.pom" file="${build.dir}/${final.name}.jar"/> @@@ -2037,15 -2008,15 +1935,6 @@@ file="${build.dir}/${ant.project.name}-thrift-${version}-javadoc.jar" classifier="javadoc"/> -- <!-- the cassandra-clientutil jar --> -- <deploy pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom" -- file="${build.dir}/${ant.project.name}-clientutil-${version}.jar"/> -- <deploy pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom" -- file="${build.dir}/${ant.project.name}-clientutil-${version}-sources.jar" -- classifier="sources"/> -- <deploy pomFile="${build.dir}/${ant.project.name}-clientutil-${version}.pom" -- file="${build.dir}/${ant.project.name}-clientutil-${version}-javadoc.jar" -- classifier="javadoc"/> <!-- the cassandra-all jar --> <deploy pomFile="${build.dir}/${final.name}.pom" file="${build.dir}/${final.name}.jar"/> http://git-wip-us.apache.org/repos/asf/cassandra/blob/a3e772b8/test/unit/org/apache/cassandra/serializers/ClientUtilsTest.java ---------------------------------------------------------------------- diff --cc test/unit/org/apache/cassandra/serializers/ClientUtilsTest.java index 563d6cb,563d6cb..0000000 deleted file mode 100644,100644 --- a/test/unit/org/apache/cassandra/serializers/ClientUtilsTest.java +++ /dev/null @@@ -1,59 -1,59 +1,0 @@@ --package org.apache.cassandra.serializers; --/* -- * -- * Licensed to the Apache Software Foundation (ASF) under one -- * or more contributor license agreements. See the NOTICE file -- * distributed with this work for additional information -- * regarding copyright ownership. The ASF licenses this file -- * to you under the Apache License, Version 2.0 (the -- * "License"); you may not use this file except in compliance -- * with the License. You may obtain a copy of the License at -- * -- * http://www.apache.org/licenses/LICENSE-2.0 -- * -- * Unless required by applicable law or agreed to in writing, -- * software distributed under the License is distributed on an -- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -- * KIND, either express or implied. See the License for the -- * specific language governing permissions and limitations -- * under the License. -- * -- */ -- -- --import java.math.BigDecimal; --import java.math.BigInteger; --import java.nio.ByteBuffer; --import java.sql.Date; --import java.util.UUID; -- --import org.apache.cassandra.utils.UUIDGen; --import org.junit.Test; -- --public class ClientUtilsTest --{ -- /** Exercises the classes in the clientutil jar to expose missing dependencies. */ -- @Test -- public void test() -- { -- AsciiSerializer.instance.deserialize(AsciiSerializer.instance.serialize("string")); -- BooleanSerializer.instance.deserialize(BooleanSerializer.instance.serialize(true)); -- BytesSerializer.instance.deserialize(BytesSerializer.instance.serialize(ByteBuffer.wrap("string".getBytes()))); -- -- Date date = new Date(System.currentTimeMillis()); -- ByteBuffer dateBB = TimestampSerializer.instance.serialize(date); -- TimestampSerializer.instance.deserialize(dateBB); -- -- DecimalSerializer.instance.deserialize(DecimalSerializer.instance.serialize(new BigDecimal(1))); -- DoubleSerializer.instance.deserialize(DoubleSerializer.instance.serialize(new Double(1.0d))); -- FloatSerializer.instance.deserialize(FloatSerializer.instance.serialize(new Float(1.0f))); -- Int32Serializer.instance.deserialize(Int32Serializer.instance.serialize(1)); -- IntegerSerializer.instance.deserialize(IntegerSerializer.instance.serialize(new BigInteger("1"))); -- LongSerializer.instance.deserialize(LongSerializer.instance.serialize(1L)); -- UTF8Serializer.instance.deserialize(UTF8Serializer.instance.serialize("string")); -- -- // UUIDGen -- UUID uuid = UUIDGen.getTimeUUID(); -- UUIDSerializer.instance.deserialize(UUIDSerializer.instance.serialize(uuid)); -- } --}
