You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ty...@apache.org on 2016/08/11 18:53:12 UTC
[4/4] cassandra git commit: Remove clientutil jar
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 <ty...@gmail.com>
Authored: Thu Aug 11 13:51:46 2016 -0500
Committer: Tyler Hobbs <ty...@gmail.com>
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));
-- }
--}