[3/3] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a4e8e165 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a4e8e165 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a4e8e165 Branch: refs/heads/trunk Commit: a4e8e1656536fdf8121b3affa0af3195d98db4f5 Parents: 35047a8 63d1d29 Author: Dave Brosius Authored: Sat Aug 2 01:45:56 2014 -0400 Committer: Dave Brosius Committed: Sat Aug 2 01:45:56 2014 -0400 -- src/java/org/apache/cassandra/streaming/StreamCoordinator.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --
[1/3] git commit: make StreamSessionConnector a static inner class
Repository: cassandra Updated Branches: refs/heads/trunk 35047a8f6 -> a4e8e1656 make StreamSessionConnector a static inner class Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/85b74382 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/85b74382 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/85b74382 Branch: refs/heads/trunk Commit: 85b74382782767b82cf9b5393770cdf93dd0645d Parents: 41a85af Author: Dave Brosius Authored: Sat Aug 2 01:17:50 2014 -0400 Committer: Dave Brosius Committed: Sat Aug 2 01:17:50 2014 -0400 -- src/java/org/apache/cassandra/streaming/StreamCoordinator.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/85b74382/src/java/org/apache/cassandra/streaming/StreamCoordinator.java -- diff --git a/src/java/org/apache/cassandra/streaming/StreamCoordinator.java b/src/java/org/apache/cassandra/streaming/StreamCoordinator.java index 4a6b193..14dad29 100644 --- a/src/java/org/apache/cassandra/streaming/StreamCoordinator.java +++ b/src/java/org/apache/cassandra/streaming/StreamCoordinator.java @@ -183,7 +183,7 @@ public class StreamCoordinator return data; } -private class StreamSessionConnector implements Runnable +private static class StreamSessionConnector implements Runnable { private final StreamSession session; public StreamSessionConnector(StreamSession session) @@ -191,6 +191,7 @@ public class StreamCoordinator this.session = session; } +@Override public void run() { session.start();
[1/2] git commit: make StreamSessionConnector a static inner class
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 d33e29acc -> 63d1d2968 make StreamSessionConnector a static inner class Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/85b74382 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/85b74382 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/85b74382 Branch: refs/heads/cassandra-2.1 Commit: 85b74382782767b82cf9b5393770cdf93dd0645d Parents: 41a85af Author: Dave Brosius Authored: Sat Aug 2 01:17:50 2014 -0400 Committer: Dave Brosius Committed: Sat Aug 2 01:17:50 2014 -0400 -- src/java/org/apache/cassandra/streaming/StreamCoordinator.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/85b74382/src/java/org/apache/cassandra/streaming/StreamCoordinator.java -- diff --git a/src/java/org/apache/cassandra/streaming/StreamCoordinator.java b/src/java/org/apache/cassandra/streaming/StreamCoordinator.java index 4a6b193..14dad29 100644 --- a/src/java/org/apache/cassandra/streaming/StreamCoordinator.java +++ b/src/java/org/apache/cassandra/streaming/StreamCoordinator.java @@ -183,7 +183,7 @@ public class StreamCoordinator return data; } -private class StreamSessionConnector implements Runnable +private static class StreamSessionConnector implements Runnable { private final StreamSession session; public StreamSessionConnector(StreamSession session) @@ -191,6 +191,7 @@ public class StreamCoordinator this.session = session; } +@Override public void run() { session.start();
[2/3] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1
Merge branch 'cassandra-2.1.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/63d1d296 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/63d1d296 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/63d1d296 Branch: refs/heads/trunk Commit: 63d1d2968c59100f5a458b64ef884d4b675557f6 Parents: d33e29a 85b7438 Author: Dave Brosius Authored: Sat Aug 2 01:45:18 2014 -0400 Committer: Dave Brosius Committed: Sat Aug 2 01:45:18 2014 -0400 -- src/java/org/apache/cassandra/streaming/StreamCoordinator.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --
[2/2] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1
Merge branch 'cassandra-2.1.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/63d1d296 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/63d1d296 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/63d1d296 Branch: refs/heads/cassandra-2.1 Commit: 63d1d2968c59100f5a458b64ef884d4b675557f6 Parents: d33e29a 85b7438 Author: Dave Brosius Authored: Sat Aug 2 01:45:18 2014 -0400 Committer: Dave Brosius Committed: Sat Aug 2 01:45:18 2014 -0400 -- src/java/org/apache/cassandra/streaming/StreamCoordinator.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --
git commit: make StreamSessionConnector a static inner class
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1.0 41a85afe6 -> 85b743827 make StreamSessionConnector a static inner class Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/85b74382 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/85b74382 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/85b74382 Branch: refs/heads/cassandra-2.1.0 Commit: 85b74382782767b82cf9b5393770cdf93dd0645d Parents: 41a85af Author: Dave Brosius Authored: Sat Aug 2 01:17:50 2014 -0400 Committer: Dave Brosius Committed: Sat Aug 2 01:17:50 2014 -0400 -- src/java/org/apache/cassandra/streaming/StreamCoordinator.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/85b74382/src/java/org/apache/cassandra/streaming/StreamCoordinator.java -- diff --git a/src/java/org/apache/cassandra/streaming/StreamCoordinator.java b/src/java/org/apache/cassandra/streaming/StreamCoordinator.java index 4a6b193..14dad29 100644 --- a/src/java/org/apache/cassandra/streaming/StreamCoordinator.java +++ b/src/java/org/apache/cassandra/streaming/StreamCoordinator.java @@ -183,7 +183,7 @@ public class StreamCoordinator return data; } -private class StreamSessionConnector implements Runnable +private static class StreamSessionConnector implements Runnable { private final StreamSession session; public StreamSessionConnector(StreamSession session) @@ -191,6 +191,7 @@ public class StreamCoordinator this.session = session; } +@Override public void run() { session.start();
[1/6] git commit: switch to notification-based GCInspector patch by Yuki Morishita, Brandon Williams, and jbellis for CASSANDRA-7638
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 40a21c0bf -> d33e29acc refs/heads/cassandra-2.1.0 fe78e8149 -> 41a85afe6 refs/heads/trunk 049adcd83 -> 35047a8f6 switch to notification-based GCInspector patch by Yuki Morishita, Brandon Williams, and jbellis for CASSANDRA-7638 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/41a85afe Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/41a85afe Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/41a85afe Branch: refs/heads/cassandra-2.1 Commit: 41a85afe65e059662c3247de694481a405bc87b1 Parents: fe78e81 Author: Jonathan Ellis Authored: Fri Aug 1 20:59:01 2014 -0500 Committer: Jonathan Ellis Committed: Fri Aug 1 20:59:32 2014 -0500 -- CHANGES.txt | 1 + conf/cassandra-env.sh | 7 +- .../cassandra/service/CassandraDaemon.java | 2 +- .../apache/cassandra/service/GCInspector.java | 108 +++ 4 files changed, 48 insertions(+), 70 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/41a85afe/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index c95a22c..f4b3921 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.0-final + * Switch to notification-based GCInspector (CASSANDRA-7638) * (cqlsh) Handle nulls in UDTs and tuples correctly (CASSANDRA-7656) * Don't use strict consistency when replacing (CASSANDRA-7568) * Fix min/max cell name collection on 2.0 SSTables with range http://git-wip-us.apache.org/repos/asf/cassandra/blob/41a85afe/conf/cassandra-env.sh -- diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh index f747438..21a4244 100644 --- a/conf/cassandra-env.sh +++ b/conf/cassandra-env.sh @@ -95,7 +95,12 @@ JVM_VERSION=${jvmver%_*} JVM_PATCH_VERSION=${jvmver#*_} if [ "$JVM_VERSION" \< "1.7" ] ; then -echo "Cassandra 2.0 and later require Java 7 or later." +echo "Cassandra 2.0 and later require Java 7u25 or later." +exit 1; +fi + +if [ "$JVM_VERSION" \< "1.8" ] && [ "$JVM_PATCH_VERSION" -lt "25" ] ; then +echo "Cassandra 2.0 and later require Java 7u25 or later." exit 1; fi http://git-wip-us.apache.org/repos/asf/cassandra/blob/41a85afe/src/java/org/apache/cassandra/service/CassandraDaemon.java -- diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java b/src/java/org/apache/cassandra/service/CassandraDaemon.java index fbee7ce..7c85f81 100644 --- a/src/java/org/apache/cassandra/service/CassandraDaemon.java +++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java @@ -281,7 +281,7 @@ public class CassandraDaemon try { -GCInspector.instance.start(); +GCInspector.register(); } catch (Throwable t) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/41a85afe/src/java/org/apache/cassandra/service/GCInspector.java -- diff --git a/src/java/org/apache/cassandra/service/GCInspector.java b/src/java/org/apache/cassandra/service/GCInspector.java index 9961bf9..c766dc0 100644 --- a/src/java/org/apache/cassandra/service/GCInspector.java +++ b/src/java/org/apache/cassandra/service/GCInspector.java @@ -17,111 +17,83 @@ */ package org.apache.cassandra.service; -import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; -import java.lang.management.MemoryMXBean; import java.lang.management.MemoryUsage; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Collections; import java.util.List; -import java.util.concurrent.TimeUnit; +import java.util.Map; import javax.management.MBeanServer; +import javax.management.Notification; +import javax.management.NotificationListener; import javax.management.ObjectName; +import javax.management.openmbean.CompositeData; +import com.sun.management.GarbageCollectionNotificationInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.cassandra.io.sstable.SSTableDeletingTask; import org.apache.cassandra.utils.StatusLogger; -public class GCInspector +public class GCInspector implements NotificationListener { private static final Logger logger = LoggerFactory.getLogger(GCInspector.class); -final static long INTERVAL_IN_MS = 1000; final static long MIN_DURATION = 200; final static long MIN_DURATION_TPSTATS = 1000; -public static final GCInspector instance = new GCInspector(); - -private final HashMap gctimes = new HashMap(); -pr
[2/6] git commit: switch to notification-based GCInspector patch by Yuki Morishita, Brandon Williams, and jbellis for CASSANDRA-7638
switch to notification-based GCInspector patch by Yuki Morishita, Brandon Williams, and jbellis for CASSANDRA-7638 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/41a85afe Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/41a85afe Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/41a85afe Branch: refs/heads/cassandra-2.1.0 Commit: 41a85afe65e059662c3247de694481a405bc87b1 Parents: fe78e81 Author: Jonathan Ellis Authored: Fri Aug 1 20:59:01 2014 -0500 Committer: Jonathan Ellis Committed: Fri Aug 1 20:59:32 2014 -0500 -- CHANGES.txt | 1 + conf/cassandra-env.sh | 7 +- .../cassandra/service/CassandraDaemon.java | 2 +- .../apache/cassandra/service/GCInspector.java | 108 +++ 4 files changed, 48 insertions(+), 70 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/41a85afe/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index c95a22c..f4b3921 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.0-final + * Switch to notification-based GCInspector (CASSANDRA-7638) * (cqlsh) Handle nulls in UDTs and tuples correctly (CASSANDRA-7656) * Don't use strict consistency when replacing (CASSANDRA-7568) * Fix min/max cell name collection on 2.0 SSTables with range http://git-wip-us.apache.org/repos/asf/cassandra/blob/41a85afe/conf/cassandra-env.sh -- diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh index f747438..21a4244 100644 --- a/conf/cassandra-env.sh +++ b/conf/cassandra-env.sh @@ -95,7 +95,12 @@ JVM_VERSION=${jvmver%_*} JVM_PATCH_VERSION=${jvmver#*_} if [ "$JVM_VERSION" \< "1.7" ] ; then -echo "Cassandra 2.0 and later require Java 7 or later." +echo "Cassandra 2.0 and later require Java 7u25 or later." +exit 1; +fi + +if [ "$JVM_VERSION" \< "1.8" ] && [ "$JVM_PATCH_VERSION" -lt "25" ] ; then +echo "Cassandra 2.0 and later require Java 7u25 or later." exit 1; fi http://git-wip-us.apache.org/repos/asf/cassandra/blob/41a85afe/src/java/org/apache/cassandra/service/CassandraDaemon.java -- diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java b/src/java/org/apache/cassandra/service/CassandraDaemon.java index fbee7ce..7c85f81 100644 --- a/src/java/org/apache/cassandra/service/CassandraDaemon.java +++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java @@ -281,7 +281,7 @@ public class CassandraDaemon try { -GCInspector.instance.start(); +GCInspector.register(); } catch (Throwable t) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/41a85afe/src/java/org/apache/cassandra/service/GCInspector.java -- diff --git a/src/java/org/apache/cassandra/service/GCInspector.java b/src/java/org/apache/cassandra/service/GCInspector.java index 9961bf9..c766dc0 100644 --- a/src/java/org/apache/cassandra/service/GCInspector.java +++ b/src/java/org/apache/cassandra/service/GCInspector.java @@ -17,111 +17,83 @@ */ package org.apache.cassandra.service; -import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; -import java.lang.management.MemoryMXBean; import java.lang.management.MemoryUsage; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Collections; import java.util.List; -import java.util.concurrent.TimeUnit; +import java.util.Map; import javax.management.MBeanServer; +import javax.management.Notification; +import javax.management.NotificationListener; import javax.management.ObjectName; +import javax.management.openmbean.CompositeData; +import com.sun.management.GarbageCollectionNotificationInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.cassandra.io.sstable.SSTableDeletingTask; import org.apache.cassandra.utils.StatusLogger; -public class GCInspector +public class GCInspector implements NotificationListener { private static final Logger logger = LoggerFactory.getLogger(GCInspector.class); -final static long INTERVAL_IN_MS = 1000; final static long MIN_DURATION = 200; final static long MIN_DURATION_TPSTATS = 1000; -public static final GCInspector instance = new GCInspector(); - -private final HashMap gctimes = new HashMap(); -private final HashMap gccounts = new HashMap(); - -final List beans = new ArrayList(); -final MemoryMXBean membean = ManagementFactory.getMemoryMXBean(); - -public GCInspect
[3/6] git commit: switch to notification-based GCInspector patch by Yuki Morishita, Brandon Williams, and jbellis for CASSANDRA-7638
switch to notification-based GCInspector patch by Yuki Morishita, Brandon Williams, and jbellis for CASSANDRA-7638 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/41a85afe Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/41a85afe Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/41a85afe Branch: refs/heads/trunk Commit: 41a85afe65e059662c3247de694481a405bc87b1 Parents: fe78e81 Author: Jonathan Ellis Authored: Fri Aug 1 20:59:01 2014 -0500 Committer: Jonathan Ellis Committed: Fri Aug 1 20:59:32 2014 -0500 -- CHANGES.txt | 1 + conf/cassandra-env.sh | 7 +- .../cassandra/service/CassandraDaemon.java | 2 +- .../apache/cassandra/service/GCInspector.java | 108 +++ 4 files changed, 48 insertions(+), 70 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/41a85afe/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index c95a22c..f4b3921 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.0-final + * Switch to notification-based GCInspector (CASSANDRA-7638) * (cqlsh) Handle nulls in UDTs and tuples correctly (CASSANDRA-7656) * Don't use strict consistency when replacing (CASSANDRA-7568) * Fix min/max cell name collection on 2.0 SSTables with range http://git-wip-us.apache.org/repos/asf/cassandra/blob/41a85afe/conf/cassandra-env.sh -- diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh index f747438..21a4244 100644 --- a/conf/cassandra-env.sh +++ b/conf/cassandra-env.sh @@ -95,7 +95,12 @@ JVM_VERSION=${jvmver%_*} JVM_PATCH_VERSION=${jvmver#*_} if [ "$JVM_VERSION" \< "1.7" ] ; then -echo "Cassandra 2.0 and later require Java 7 or later." +echo "Cassandra 2.0 and later require Java 7u25 or later." +exit 1; +fi + +if [ "$JVM_VERSION" \< "1.8" ] && [ "$JVM_PATCH_VERSION" -lt "25" ] ; then +echo "Cassandra 2.0 and later require Java 7u25 or later." exit 1; fi http://git-wip-us.apache.org/repos/asf/cassandra/blob/41a85afe/src/java/org/apache/cassandra/service/CassandraDaemon.java -- diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java b/src/java/org/apache/cassandra/service/CassandraDaemon.java index fbee7ce..7c85f81 100644 --- a/src/java/org/apache/cassandra/service/CassandraDaemon.java +++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java @@ -281,7 +281,7 @@ public class CassandraDaemon try { -GCInspector.instance.start(); +GCInspector.register(); } catch (Throwable t) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/41a85afe/src/java/org/apache/cassandra/service/GCInspector.java -- diff --git a/src/java/org/apache/cassandra/service/GCInspector.java b/src/java/org/apache/cassandra/service/GCInspector.java index 9961bf9..c766dc0 100644 --- a/src/java/org/apache/cassandra/service/GCInspector.java +++ b/src/java/org/apache/cassandra/service/GCInspector.java @@ -17,111 +17,83 @@ */ package org.apache.cassandra.service; -import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; -import java.lang.management.MemoryMXBean; import java.lang.management.MemoryUsage; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Collections; import java.util.List; -import java.util.concurrent.TimeUnit; +import java.util.Map; import javax.management.MBeanServer; +import javax.management.Notification; +import javax.management.NotificationListener; import javax.management.ObjectName; +import javax.management.openmbean.CompositeData; +import com.sun.management.GarbageCollectionNotificationInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.cassandra.io.sstable.SSTableDeletingTask; import org.apache.cassandra.utils.StatusLogger; -public class GCInspector +public class GCInspector implements NotificationListener { private static final Logger logger = LoggerFactory.getLogger(GCInspector.class); -final static long INTERVAL_IN_MS = 1000; final static long MIN_DURATION = 200; final static long MIN_DURATION_TPSTATS = 1000; -public static final GCInspector instance = new GCInspector(); - -private final HashMap gctimes = new HashMap(); -private final HashMap gccounts = new HashMap(); - -final List beans = new ArrayList(); -final MemoryMXBean membean = ManagementFactory.getMemoryMXBean(); - -public GCInspector() +
[5/6] git commit: merge from 2.1.0
merge from 2.1.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d33e29ac Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d33e29ac Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d33e29ac Branch: refs/heads/cassandra-2.1 Commit: d33e29accf8e9372bc9355918c0a6c3c89d1f30b Parents: 40a21c0 41a85af Author: Jonathan Ellis Authored: Fri Aug 1 21:03:15 2014 -0500 Committer: Jonathan Ellis Committed: Fri Aug 1 21:03:15 2014 -0500 -- CHANGES.txt | 1 + conf/cassandra-env.sh | 7 +- .../cassandra/service/CassandraDaemon.java | 2 +- .../apache/cassandra/service/GCInspector.java | 145 ++- 4 files changed, 53 insertions(+), 102 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d33e29ac/CHANGES.txt -- diff --cc CHANGES.txt index e7e2304,f4b3921..c39490a --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,5 +1,18 @@@ +2.1.1 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Add listen_interface and rpc_interface options (CASSANDRA-7417) + * Improve schema merge performance (CASSANDRA-7444) + * Adjust MT depth based on # of partition validating (CASSANDRA-5263) + * Optimise NativeCell comparisons (CASSANDRA-6755) + * Configurable client timeout for cqlsh (CASSANDRA-7516) + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111) +Merged from 2.0: + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS (CASSANDRA-7611) + * Catch errors when the JVM pulls the rug out from GCInspector (CASSANDRA-5345) + + 2.1.0-final + * Switch to notification-based GCInspector (CASSANDRA-7638) * (cqlsh) Handle nulls in UDTs and tuples correctly (CASSANDRA-7656) * Don't use strict consistency when replacing (CASSANDRA-7568) * Fix min/max cell name collection on 2.0 SSTables with range http://git-wip-us.apache.org/repos/asf/cassandra/blob/d33e29ac/conf/cassandra-env.sh -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d33e29ac/src/java/org/apache/cassandra/service/GCInspector.java -- diff --cc src/java/org/apache/cassandra/service/GCInspector.java index f03ec01,c766dc0..d04b250 --- a/src/java/org/apache/cassandra/service/GCInspector.java +++ b/src/java/org/apache/cassandra/service/GCInspector.java @@@ -17,21 -17,22 +17,21 @@@ */ package org.apache.cassandra.service; - import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; - import java.lang.management.MemoryMXBean; import java.lang.management.MemoryUsage; - import java.lang.reflect.UndeclaredThrowableException; import java.util.ArrayList; - import java.util.HashMap; + import java.util.Collections; import java.util.List; - import java.util.concurrent.TimeUnit; -import java.util.Map; import javax.management.MBeanServer; + import javax.management.Notification; + import javax.management.NotificationListener; import javax.management.ObjectName; + import javax.management.openmbean.CompositeData; import org.slf4j.Logger; import org.slf4j.LoggerFactory; ++import com.sun.management.GarbageCollectionNotificationInfo; import org.apache.cassandra.io.sstable.SSTableDeletingTask; import org.apache.cassandra.utils.StatusLogger;
[6/6] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/35047a8f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/35047a8f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/35047a8f Branch: refs/heads/trunk Commit: 35047a8f67c0b2c323cec695788a3dc0322eef98 Parents: 049adcd d33e29a Author: Jonathan Ellis Authored: Fri Aug 1 21:03:23 2014 -0500 Committer: Jonathan Ellis Committed: Fri Aug 1 21:03:23 2014 -0500 -- CHANGES.txt | 1 + conf/cassandra-env.sh | 7 +- .../cassandra/service/CassandraDaemon.java | 2 +- .../apache/cassandra/service/GCInspector.java | 145 ++- 4 files changed, 53 insertions(+), 102 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/35047a8f/CHANGES.txt --
[4/6] git commit: merge from 2.1.0
merge from 2.1.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d33e29ac Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d33e29ac Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d33e29ac Branch: refs/heads/trunk Commit: d33e29accf8e9372bc9355918c0a6c3c89d1f30b Parents: 40a21c0 41a85af Author: Jonathan Ellis Authored: Fri Aug 1 21:03:15 2014 -0500 Committer: Jonathan Ellis Committed: Fri Aug 1 21:03:15 2014 -0500 -- CHANGES.txt | 1 + conf/cassandra-env.sh | 7 +- .../cassandra/service/CassandraDaemon.java | 2 +- .../apache/cassandra/service/GCInspector.java | 145 ++- 4 files changed, 53 insertions(+), 102 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d33e29ac/CHANGES.txt -- diff --cc CHANGES.txt index e7e2304,f4b3921..c39490a --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,5 +1,18 @@@ +2.1.1 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Add listen_interface and rpc_interface options (CASSANDRA-7417) + * Improve schema merge performance (CASSANDRA-7444) + * Adjust MT depth based on # of partition validating (CASSANDRA-5263) + * Optimise NativeCell comparisons (CASSANDRA-6755) + * Configurable client timeout for cqlsh (CASSANDRA-7516) + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111) +Merged from 2.0: + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS (CASSANDRA-7611) + * Catch errors when the JVM pulls the rug out from GCInspector (CASSANDRA-5345) + + 2.1.0-final + * Switch to notification-based GCInspector (CASSANDRA-7638) * (cqlsh) Handle nulls in UDTs and tuples correctly (CASSANDRA-7656) * Don't use strict consistency when replacing (CASSANDRA-7568) * Fix min/max cell name collection on 2.0 SSTables with range http://git-wip-us.apache.org/repos/asf/cassandra/blob/d33e29ac/conf/cassandra-env.sh -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d33e29ac/src/java/org/apache/cassandra/service/GCInspector.java -- diff --cc src/java/org/apache/cassandra/service/GCInspector.java index f03ec01,c766dc0..d04b250 --- a/src/java/org/apache/cassandra/service/GCInspector.java +++ b/src/java/org/apache/cassandra/service/GCInspector.java @@@ -17,21 -17,22 +17,21 @@@ */ package org.apache.cassandra.service; - import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; - import java.lang.management.MemoryMXBean; import java.lang.management.MemoryUsage; - import java.lang.reflect.UndeclaredThrowableException; import java.util.ArrayList; - import java.util.HashMap; + import java.util.Collections; import java.util.List; - import java.util.concurrent.TimeUnit; -import java.util.Map; import javax.management.MBeanServer; + import javax.management.Notification; + import javax.management.NotificationListener; import javax.management.ObjectName; + import javax.management.openmbean.CompositeData; import org.slf4j.Logger; import org.slf4j.LoggerFactory; ++import com.sun.management.GarbageCollectionNotificationInfo; import org.apache.cassandra.io.sstable.SSTableDeletingTask; import org.apache.cassandra.utils.StatusLogger;
[jira] [Commented] (CASSANDRA-7672) user types allow counters
[ https://issues.apache.org/jira/browse/CASSANDRA-7672?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083282#comment-14083282 ] Jonathan Ellis commented on CASSANDRA-7672: --- +1 > user types allow counters > - > > Key: CASSANDRA-7672 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7672 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch >Assignee: Aleksey Yeschenko > Labels: qa-resolved > Fix For: 2.1.0 > > Attachments: 7672.txt > > > From the conversation on CASSANDRA-6312 it seems we should not allow user > types to contain counters. Presently, user types can be defined with field > types of counter, and these user types can also be associated with tables > without error. > I'm not certain if there's a compelling case for counters within user types, > but I don't think there's any syntax existing presently that would allow > updating them anyway. > To repro: > {noformat} > CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': '1'} AND durable_writes = true; > USE test; > CREATE TYPE t_item ( > sub_one counter > ); > CREATE TYPE item ( > sub_one counter > ); > CREATE TABLE test.mytable ( > value1 text PRIMARY KEY, > item t_item, > value2 text > ); > cqlsh:test> insert into mytable (value1, value2) VALUES ( 'foo', 'bar'); > cqlsh:test> select * from mytable; > value1 | item | value2 > +--+ > foo | null |bar > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7663) Removing a seed causes previously removed seeds to reappear
[ https://issues.apache.org/jira/browse/CASSANDRA-7663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083258#comment-14083258 ] Richard Low commented on CASSANDRA-7663: Actually there's a potential problem with this. It now requires that the yaml is still present, whereas before this patch the yaml was only needed on startup. Depending on how people deploy updated yamls, the old yaml may not be there. In that case, it would throw AssertionError and bad things will happen in gossip. Maybe it could fall back on the original behaviour if the yaml can't be read? > Removing a seed causes previously removed seeds to reappear > --- > > Key: CASSANDRA-7663 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7663 > Project: Cassandra > Issue Type: Bug >Reporter: Richard Low >Assignee: Brandon Williams > Fix For: 1.2.19, 2.0.10, 2.1.0 > > Attachments: 7663.txt > > > When you remove a seed from a cluster, Gossiper.removeEndpoint ensures it is > removed from the seed list. However, it also resets the seed list to be the > original list, which would bring back any previously removed seeds. What is > the reasoning for having the call to buildSeedsList()? If it wasn’t there > then I think the problem would be solved. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7607) Test coverage for authorization in DDL & DML statements
[ https://issues.apache.org/jira/browse/CASSANDRA-7607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083203#comment-14083203 ] Aleksey Yeschenko commented on CASSANDRA-7607: -- I think we have most of it covered by https://github.com/riptano/cassandra-dtest/blob/master/auth_test.py - except maybe CREATE/DROP TRIGGER and CREATE/ALTER/DROP TYPE. > Test coverage for authorization in DDL & DML statements > --- > > Key: CASSANDRA-7607 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7607 > Project: Cassandra > Issue Type: Test > Components: Tests >Reporter: Robert Stupp > Labels: lhf, unit-test > Fix For: 2.0.10, 2.1.1 > > > Similar to CASSANDRA-7604 > Check that the statements perform proper authorization (allow / reject): > * {{CREATE KEYSPACE}} > * {{ALTER KEYSPACE}} > * {{DROP KEYSPACE}} > * {{CREATE TABLE}} > * {{ALTER TABLE}} > * {{DROP TABLE}} > * {{CREATE TYPE}} > * {{ALTER TYPE}} > * {{DROP TYPE}} > * {{CREATE INDEX}} > * {{DROP INDEX}} > * {{CREATE TRIGGER}} > * {{DROP TRIGGER}} > * {{CREATE USER}} > * {{ALTER USER}} > * {{DROP USER}} > * {{TRUNCATE}} > * {{GRANT}} > * {{REVOKE}} > * {{SELECT}} > * {{UPDATE}} > * {{DELETE}} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7659) cqlsh: DESCRIBE KEYSPACE should order types according to cross-type dependencies
[ https://issues.apache.org/jira/browse/CASSANDRA-7659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083196#comment-14083196 ] Aleksey Yeschenko commented on CASSANDRA-7659: -- With CASSANDRA-7656 in, this should now be resolved as well? > cqlsh: DESCRIBE KEYSPACE should order types according to cross-type > dependencies > > > Key: CASSANDRA-7659 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7659 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Tyler Hobbs >Assignee: Tyler Hobbs >Priority: Minor > Fix For: 2.1.1 > > > Since UDTs may use other UDTs for fields, DESCRIBE KEYSPACE should list types > in an order that handles the dependencies. This was recently done in the > python driver here: https://github.com/datastax/python-driver/pull/165. We > can either update to the latest python driver, or copy that code for cqlsh. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7672) user types allow counters
[ https://issues.apache.org/jira/browse/CASSANDRA-7672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Russ Hatch updated CASSANDRA-7672: -- Labels: qa-resolved (was: ) > user types allow counters > - > > Key: CASSANDRA-7672 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7672 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch >Assignee: Aleksey Yeschenko > Labels: qa-resolved > Fix For: 2.1.0 > > Attachments: 7672.txt > > > From the conversation on CASSANDRA-6312 it seems we should not allow user > types to contain counters. Presently, user types can be defined with field > types of counter, and these user types can also be associated with tables > without error. > I'm not certain if there's a compelling case for counters within user types, > but I don't think there's any syntax existing presently that would allow > updating them anyway. > To repro: > {noformat} > CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': '1'} AND durable_writes = true; > USE test; > CREATE TYPE t_item ( > sub_one counter > ); > CREATE TYPE item ( > sub_one counter > ); > CREATE TABLE test.mytable ( > value1 text PRIMARY KEY, > item t_item, > value2 text > ); > cqlsh:test> insert into mytable (value1, value2) VALUES ( 'foo', 'bar'); > cqlsh:test> select * from mytable; > value1 | item | value2 > +--+ > foo | null |bar > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7672) user types allow counters
[ https://issues.apache.org/jira/browse/CASSANDRA-7672?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083181#comment-14083181 ] Russ Hatch commented on CASSANDRA-7672: --- Patch tested, works as expected. > user types allow counters > - > > Key: CASSANDRA-7672 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7672 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch >Assignee: Aleksey Yeschenko > Fix For: 2.1.0 > > Attachments: 7672.txt > > > From the conversation on CASSANDRA-6312 it seems we should not allow user > types to contain counters. Presently, user types can be defined with field > types of counter, and these user types can also be associated with tables > without error. > I'm not certain if there's a compelling case for counters within user types, > but I don't think there's any syntax existing presently that would allow > updating them anyway. > To repro: > {noformat} > CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': '1'} AND durable_writes = true; > USE test; > CREATE TYPE t_item ( > sub_one counter > ); > CREATE TYPE item ( > sub_one counter > ); > CREATE TABLE test.mytable ( > value1 text PRIMARY KEY, > item t_item, > value2 text > ); > cqlsh:test> insert into mytable (value1, value2) VALUES ( 'foo', 'bar'); > cqlsh:test> select * from mytable; > value1 | item | value2 > +--+ > foo | null |bar > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7672) user types allow counters
[ https://issues.apache.org/jira/browse/CASSANDRA-7672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-7672: - Attachment: 7672.txt > user types allow counters > - > > Key: CASSANDRA-7672 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7672 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch >Assignee: Aleksey Yeschenko > Fix For: 2.1.0 > > Attachments: 7672.txt > > > From the conversation on CASSANDRA-6312 it seems we should not allow user > types to contain counters. Presently, user types can be defined with field > types of counter, and these user types can also be associated with tables > without error. > I'm not certain if there's a compelling case for counters within user types, > but I don't think there's any syntax existing presently that would allow > updating them anyway. > To repro: > {noformat} > CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': '1'} AND durable_writes = true; > USE test; > CREATE TYPE t_item ( > sub_one counter > ); > CREATE TYPE item ( > sub_one counter > ); > CREATE TABLE test.mytable ( > value1 text PRIMARY KEY, > item t_item, > value2 text > ); > cqlsh:test> insert into mytable (value1, value2) VALUES ( 'foo', 'bar'); > cqlsh:test> select * from mytable; > value1 | item | value2 > +--+ > foo | null |bar > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7672) user types allow counters
[ https://issues.apache.org/jira/browse/CASSANDRA-7672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-7672: - Fix Version/s: (was: 2.1.1) 2.1.0 > user types allow counters > - > > Key: CASSANDRA-7672 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7672 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch >Assignee: Aleksey Yeschenko > Fix For: 2.1.0 > > > From the conversation on CASSANDRA-6312 it seems we should not allow user > types to contain counters. Presently, user types can be defined with field > types of counter, and these user types can also be associated with tables > without error. > I'm not certain if there's a compelling case for counters within user types, > but I don't think there's any syntax existing presently that would allow > updating them anyway. > To repro: > {noformat} > CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': '1'} AND durable_writes = true; > USE test; > CREATE TYPE t_item ( > sub_one counter > ); > CREATE TYPE item ( > sub_one counter > ); > CREATE TABLE test.mytable ( > value1 text PRIMARY KEY, > item t_item, > value2 text > ); > cqlsh:test> insert into mytable (value1, value2) VALUES ( 'foo', 'bar'); > cqlsh:test> select * from mytable; > value1 | item | value2 > +--+ > foo | null |bar > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7670) selecting field from empty UDT cell using dot notation triggers exception
[ https://issues.apache.org/jira/browse/CASSANDRA-7670?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Russ Hatch updated CASSANDRA-7670: -- Assignee: Sylvain Lebresne > selecting field from empty UDT cell using dot notation triggers exception > - > > Key: CASSANDRA-7670 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7670 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch >Assignee: Sylvain Lebresne >Priority: Minor > Fix For: 2.1.1 > > > Hopefully the title explains the issue. > Basically if a row has a user type which is undefined, using the "dot > notation" syntax causes cqlsh to show a NPE, and an exception ends up in the > log as well. > I would expect the behavior here to execute the query and return null, since > the user type itself is null, then it's fields are null as well (the downside > here is there would be no way to distinguish between a null UDT and a null > UDT field, without making an initial query to check if the UDT is non-null). > Steps to repro: > {noformat} > create keyspace test with replication = {'class':'SimpleStrategy', > 'replication_factor':1}; > use test; > CREATE TYPE t_item (subitem text); > create table mytable (value1 text PRIMARY KEY, value2 text, item t_item); > insert into mytable (value1, value2 ) values ('foo', 'bar'); > select item.subitem from mytable; > message="java.lang.NullPointerException"> > {noformat} > Here's the exception logged: > {noformat} > ERROR [SharedPool-Worker-1] 2014-08-01 15:49:00,514 ErrorMessage.java:218 - > Unexpected exception during request > java.lang.NullPointerException: null > at > org.apache.cassandra.db.marshal.TupleType.split(TupleType.java:146) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.Selection$FieldSelector.compute(Selection.java:469) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.Selection$SelectionWithFunctions.handleRow(Selection.java:537) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.Selection$ResultSetBuilder.build(Selection.java:333) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:1149) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:283) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:225) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:60) > ~[main/:na] > at > org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:187) > ~[main/:na] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:206) > ~[main/:na] > at > org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:118) > ~[main/:na] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:421) > [main/:na] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:318) > [main/:na] > at > io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:332) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:31) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:323) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > [na:1.7.0_65] > at > org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:163) > [main/:na] > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:103) > [main/:na] > at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65] > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7670) selecting field from empty UDT cell using dot notation triggers exception
[ https://issues.apache.org/jira/browse/CASSANDRA-7670?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Russ Hatch updated CASSANDRA-7670: -- Fix Version/s: 2.1.1 > selecting field from empty UDT cell using dot notation triggers exception > - > > Key: CASSANDRA-7670 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7670 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch >Priority: Minor > Fix For: 2.1.1 > > > Hopefully the title explains the issue. > Basically if a row has a user type which is undefined, using the "dot > notation" syntax causes cqlsh to show a NPE, and an exception ends up in the > log as well. > I would expect the behavior here to execute the query and return null, since > the user type itself is null, then it's fields are null as well (the downside > here is there would be no way to distinguish between a null UDT and a null > UDT field, without making an initial query to check if the UDT is non-null). > Steps to repro: > {noformat} > create keyspace test with replication = {'class':'SimpleStrategy', > 'replication_factor':1}; > use test; > CREATE TYPE t_item (subitem text); > create table mytable (value1 text PRIMARY KEY, value2 text, item t_item); > insert into mytable (value1, value2 ) values ('foo', 'bar'); > select item.subitem from mytable; > message="java.lang.NullPointerException"> > {noformat} > Here's the exception logged: > {noformat} > ERROR [SharedPool-Worker-1] 2014-08-01 15:49:00,514 ErrorMessage.java:218 - > Unexpected exception during request > java.lang.NullPointerException: null > at > org.apache.cassandra.db.marshal.TupleType.split(TupleType.java:146) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.Selection$FieldSelector.compute(Selection.java:469) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.Selection$SelectionWithFunctions.handleRow(Selection.java:537) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.Selection$ResultSetBuilder.build(Selection.java:333) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:1149) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:283) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:225) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:60) > ~[main/:na] > at > org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:187) > ~[main/:na] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:206) > ~[main/:na] > at > org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:118) > ~[main/:na] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:421) > [main/:na] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:318) > [main/:na] > at > io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:332) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:31) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:323) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > [na:1.7.0_65] > at > org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:163) > [main/:na] > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:103) > [main/:na] > at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65] > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Assigned] (CASSANDRA-7672) user types allow counters
[ https://issues.apache.org/jira/browse/CASSANDRA-7672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko reassigned CASSANDRA-7672: Assignee: Aleksey Yeschenko (was: Sylvain Lebresne) > user types allow counters > - > > Key: CASSANDRA-7672 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7672 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch >Assignee: Aleksey Yeschenko > Fix For: 2.1.1 > > > From the conversation on CASSANDRA-6312 it seems we should not allow user > types to contain counters. Presently, user types can be defined with field > types of counter, and these user types can also be associated with tables > without error. > I'm not certain if there's a compelling case for counters within user types, > but I don't think there's any syntax existing presently that would allow > updating them anyway. > To repro: > {noformat} > CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': '1'} AND durable_writes = true; > USE test; > CREATE TYPE t_item ( > sub_one counter > ); > CREATE TYPE item ( > sub_one counter > ); > CREATE TABLE test.mytable ( > value1 text PRIMARY KEY, > item t_item, > value2 text > ); > cqlsh:test> insert into mytable (value1, value2) VALUES ( 'foo', 'bar'); > cqlsh:test> select * from mytable; > value1 | item | value2 > +--+ > foo | null |bar > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7672) user types allow counters
[ https://issues.apache.org/jira/browse/CASSANDRA-7672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Russ Hatch updated CASSANDRA-7672: -- Summary: user types allow counters (was: use types allow counters) > user types allow counters > - > > Key: CASSANDRA-7672 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7672 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch > Fix For: 2.1.1 > > > From the conversation on CASSANDRA-6312 it seems we should not allow user > types to contain counters. Presently, user types can be defined with field > types of counter, and these user types can also be associated with tables > without error. > I'm not certain if there's a compelling case for counters within user types, > but I don't think there's any syntax existing presently that would allow > updating them anyway. > To repro: > {noformat} > CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': '1'} AND durable_writes = true; > USE test; > CREATE TYPE t_item ( > sub_one counter > ); > CREATE TYPE item ( > sub_one counter > ); > CREATE TABLE test.mytable ( > value1 text PRIMARY KEY, > item t_item, > value2 text > ); > cqlsh:test> insert into mytable (value1, value2) VALUES ( 'foo', 'bar'); > cqlsh:test> select * from mytable; > value1 | item | value2 > +--+ > foo | null |bar > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7672) use types allow counters
[ https://issues.apache.org/jira/browse/CASSANDRA-7672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Russ Hatch updated CASSANDRA-7672: -- Reproduced In: 2.1.0 (was: 2.1.1) > use types allow counters > > > Key: CASSANDRA-7672 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7672 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch > Fix For: 2.1.1 > > > From the conversation on CASSANDRA-6312 it seems we should not allow user > types to contain counters. Presently, user types can be defined with field > types of counter, and these user types can also be associated with tables > without error. > I'm not certain if there's a compelling case for counters within user types, > but I don't think there's any syntax existing presently that would allow > updating them anyway. > To repro: > {noformat} > CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': '1'} AND durable_writes = true; > USE test; > CREATE TYPE t_item ( > sub_one counter > ); > CREATE TYPE item ( > sub_one counter > ); > CREATE TABLE test.mytable ( > value1 text PRIMARY KEY, > item t_item, > value2 text > ); > cqlsh:test> insert into mytable (value1, value2) VALUES ( 'foo', 'bar'); > cqlsh:test> select * from mytable; > value1 | item | value2 > +--+ > foo | null |bar > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7672) use types allow counters
[ https://issues.apache.org/jira/browse/CASSANDRA-7672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Russ Hatch updated CASSANDRA-7672: -- Fix Version/s: 2.1.1 > use types allow counters > > > Key: CASSANDRA-7672 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7672 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch > Fix For: 2.1.1 > > > From the conversation on CASSANDRA-6312 it seems we should not allow user > types to contain counters. Presently, user types can be defined with field > types of counter, and these user types can also be associated with tables > without error. > I'm not certain if there's a compelling case for counters within user types, > but I don't think there's any syntax existing presently that would allow > updating them anyway. > To repro: > {noformat} > CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': '1'} AND durable_writes = true; > USE test; > CREATE TYPE t_item ( > sub_one counter > ); > CREATE TYPE item ( > sub_one counter > ); > CREATE TABLE test.mytable ( > value1 text PRIMARY KEY, > item t_item, > value2 text > ); > cqlsh:test> insert into mytable (value1, value2) VALUES ( 'foo', 'bar'); > cqlsh:test> select * from mytable; > value1 | item | value2 > +--+ > foo | null |bar > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7670) selecting field from empty UDT cell using dot notation triggers exception
[ https://issues.apache.org/jira/browse/CASSANDRA-7670?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Russ Hatch updated CASSANDRA-7670: -- Reproduced In: 2.1.0 (was: 2.1.1) > selecting field from empty UDT cell using dot notation triggers exception > - > > Key: CASSANDRA-7670 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7670 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch >Priority: Minor > Fix For: 2.1.1 > > > Hopefully the title explains the issue. > Basically if a row has a user type which is undefined, using the "dot > notation" syntax causes cqlsh to show a NPE, and an exception ends up in the > log as well. > I would expect the behavior here to execute the query and return null, since > the user type itself is null, then it's fields are null as well (the downside > here is there would be no way to distinguish between a null UDT and a null > UDT field, without making an initial query to check if the UDT is non-null). > Steps to repro: > {noformat} > create keyspace test with replication = {'class':'SimpleStrategy', > 'replication_factor':1}; > use test; > CREATE TYPE t_item (subitem text); > create table mytable (value1 text PRIMARY KEY, value2 text, item t_item); > insert into mytable (value1, value2 ) values ('foo', 'bar'); > select item.subitem from mytable; > message="java.lang.NullPointerException"> > {noformat} > Here's the exception logged: > {noformat} > ERROR [SharedPool-Worker-1] 2014-08-01 15:49:00,514 ErrorMessage.java:218 - > Unexpected exception during request > java.lang.NullPointerException: null > at > org.apache.cassandra.db.marshal.TupleType.split(TupleType.java:146) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.Selection$FieldSelector.compute(Selection.java:469) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.Selection$SelectionWithFunctions.handleRow(Selection.java:537) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.Selection$ResultSetBuilder.build(Selection.java:333) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:1149) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:283) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:225) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:60) > ~[main/:na] > at > org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:187) > ~[main/:na] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:206) > ~[main/:na] > at > org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:118) > ~[main/:na] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:421) > [main/:na] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:318) > [main/:na] > at > io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:332) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:31) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:323) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > [na:1.7.0_65] > at > org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:163) > [main/:na] > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:103) > [main/:na] > at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65] > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7672) user types allow counters
[ https://issues.apache.org/jira/browse/CASSANDRA-7672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Russ Hatch updated CASSANDRA-7672: -- Assignee: Sylvain Lebresne > user types allow counters > - > > Key: CASSANDRA-7672 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7672 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch >Assignee: Sylvain Lebresne > Fix For: 2.1.1 > > > From the conversation on CASSANDRA-6312 it seems we should not allow user > types to contain counters. Presently, user types can be defined with field > types of counter, and these user types can also be associated with tables > without error. > I'm not certain if there's a compelling case for counters within user types, > but I don't think there's any syntax existing presently that would allow > updating them anyway. > To repro: > {noformat} > CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': '1'} AND durable_writes = true; > USE test; > CREATE TYPE t_item ( > sub_one counter > ); > CREATE TYPE item ( > sub_one counter > ); > CREATE TABLE test.mytable ( > value1 text PRIMARY KEY, > item t_item, > value2 text > ); > cqlsh:test> insert into mytable (value1, value2) VALUES ( 'foo', 'bar'); > cqlsh:test> select * from mytable; > value1 | item | value2 > +--+ > foo | null |bar > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[1/3] git commit: cqlsh: Upgrade bundled py driver to fix nulls in UDTS and tuples
Repository: cassandra Updated Branches: refs/heads/trunk ff4d159ef -> 049adcd83 cqlsh: Upgrade bundled py driver to fix nulls in UDTS and tuples Patch by Tyler Hobbs; review by Aleksey Yeschenko for CASSANDRA-7656 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fe78e814 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fe78e814 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fe78e814 Branch: refs/heads/trunk Commit: fe78e8149646df7686da48f44fe304181ea5a417 Parents: 110a132 Author: Tyler Hobbs Authored: Fri Aug 1 18:08:19 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 18:08:19 2014 -0500 -- CHANGES.txt | 1 + ...assandra-driver-internal-only-2.1.0b1.post.zip | Bin 125786 -> 0 bytes ...assandra-driver-internal-only-2.1.0c1.post.zip | Bin 0 -> 128949 bytes 3 files changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe78e814/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 9cff11a..c95a22c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.0-final + * (cqlsh) Handle nulls in UDTs and tuples correctly (CASSANDRA-7656) * Don't use strict consistency when replacing (CASSANDRA-7568) * Fix min/max cell name collection on 2.0 SSTables with range tombstones (CASSANDRA-7593) http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe78e814/lib/cassandra-driver-internal-only-2.1.0b1.post.zip -- diff --git a/lib/cassandra-driver-internal-only-2.1.0b1.post.zip b/lib/cassandra-driver-internal-only-2.1.0b1.post.zip deleted file mode 100644 index d0c0b1a..000 Binary files a/lib/cassandra-driver-internal-only-2.1.0b1.post.zip and /dev/null differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe78e814/lib/cassandra-driver-internal-only-2.1.0c1.post.zip -- diff --git a/lib/cassandra-driver-internal-only-2.1.0c1.post.zip b/lib/cassandra-driver-internal-only-2.1.0c1.post.zip new file mode 100644 index 000..e66a12a Binary files /dev/null and b/lib/cassandra-driver-internal-only-2.1.0c1.post.zip differ
[3/3] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/049adcd8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/049adcd8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/049adcd8 Branch: refs/heads/trunk Commit: 049adcd83118233e91584d038c267a8d05db4e36 Parents: ff4d159 40a21c0 Author: Tyler Hobbs Authored: Fri Aug 1 18:10:21 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 18:10:21 2014 -0500 -- CHANGES.txt | 1 + ...assandra-driver-internal-only-2.1.0b1.post.zip | Bin 125786 -> 0 bytes ...assandra-driver-internal-only-2.1.0c1.post.zip | Bin 0 -> 128949 bytes 3 files changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/049adcd8/CHANGES.txt --
[2/3] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1
Merge branch 'cassandra-2.1.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/40a21c0b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/40a21c0b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/40a21c0b Branch: refs/heads/trunk Commit: 40a21c0bf6f0a9dfacf39ca3e3047b6987f2bb4c Parents: 824ffa1 fe78e81 Author: Tyler Hobbs Authored: Fri Aug 1 18:09:44 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 18:09:44 2014 -0500 -- CHANGES.txt | 1 + ...assandra-driver-internal-only-2.1.0b1.post.zip | Bin 125786 -> 0 bytes ...assandra-driver-internal-only-2.1.0c1.post.zip | Bin 0 -> 128949 bytes 3 files changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/40a21c0b/CHANGES.txt -- diff --cc CHANGES.txt index 9eb620c,c95a22c..e7e2304 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,5 +1,18 @@@ +2.1.1 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Add listen_interface and rpc_interface options (CASSANDRA-7417) + * Improve schema merge performance (CASSANDRA-7444) + * Adjust MT depth based on # of partition validating (CASSANDRA-5263) + * Optimise NativeCell comparisons (CASSANDRA-6755) + * Configurable client timeout for cqlsh (CASSANDRA-7516) + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111) +Merged from 2.0: + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS (CASSANDRA-7611) + * Catch errors when the JVM pulls the rug out from GCInspector (CASSANDRA-5345) + + 2.1.0-final + * (cqlsh) Handle nulls in UDTs and tuples correctly (CASSANDRA-7656) * Don't use strict consistency when replacing (CASSANDRA-7568) * Fix min/max cell name collection on 2.0 SSTables with range tombstones (CASSANDRA-7593)
[2/2] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1
Merge branch 'cassandra-2.1.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/40a21c0b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/40a21c0b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/40a21c0b Branch: refs/heads/cassandra-2.1 Commit: 40a21c0bf6f0a9dfacf39ca3e3047b6987f2bb4c Parents: 824ffa1 fe78e81 Author: Tyler Hobbs Authored: Fri Aug 1 18:09:44 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 18:09:44 2014 -0500 -- CHANGES.txt | 1 + ...assandra-driver-internal-only-2.1.0b1.post.zip | Bin 125786 -> 0 bytes ...assandra-driver-internal-only-2.1.0c1.post.zip | Bin 0 -> 128949 bytes 3 files changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/40a21c0b/CHANGES.txt -- diff --cc CHANGES.txt index 9eb620c,c95a22c..e7e2304 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,5 +1,18 @@@ +2.1.1 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Add listen_interface and rpc_interface options (CASSANDRA-7417) + * Improve schema merge performance (CASSANDRA-7444) + * Adjust MT depth based on # of partition validating (CASSANDRA-5263) + * Optimise NativeCell comparisons (CASSANDRA-6755) + * Configurable client timeout for cqlsh (CASSANDRA-7516) + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111) +Merged from 2.0: + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS (CASSANDRA-7611) + * Catch errors when the JVM pulls the rug out from GCInspector (CASSANDRA-5345) + + 2.1.0-final + * (cqlsh) Handle nulls in UDTs and tuples correctly (CASSANDRA-7656) * Don't use strict consistency when replacing (CASSANDRA-7568) * Fix min/max cell name collection on 2.0 SSTables with range tombstones (CASSANDRA-7593)
[1/2] git commit: cqlsh: Upgrade bundled py driver to fix nulls in UDTS and tuples
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 824ffa1da -> 40a21c0bf cqlsh: Upgrade bundled py driver to fix nulls in UDTS and tuples Patch by Tyler Hobbs; review by Aleksey Yeschenko for CASSANDRA-7656 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fe78e814 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fe78e814 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fe78e814 Branch: refs/heads/cassandra-2.1 Commit: fe78e8149646df7686da48f44fe304181ea5a417 Parents: 110a132 Author: Tyler Hobbs Authored: Fri Aug 1 18:08:19 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 18:08:19 2014 -0500 -- CHANGES.txt | 1 + ...assandra-driver-internal-only-2.1.0b1.post.zip | Bin 125786 -> 0 bytes ...assandra-driver-internal-only-2.1.0c1.post.zip | Bin 0 -> 128949 bytes 3 files changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe78e814/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 9cff11a..c95a22c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.0-final + * (cqlsh) Handle nulls in UDTs and tuples correctly (CASSANDRA-7656) * Don't use strict consistency when replacing (CASSANDRA-7568) * Fix min/max cell name collection on 2.0 SSTables with range tombstones (CASSANDRA-7593) http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe78e814/lib/cassandra-driver-internal-only-2.1.0b1.post.zip -- diff --git a/lib/cassandra-driver-internal-only-2.1.0b1.post.zip b/lib/cassandra-driver-internal-only-2.1.0b1.post.zip deleted file mode 100644 index d0c0b1a..000 Binary files a/lib/cassandra-driver-internal-only-2.1.0b1.post.zip and /dev/null differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe78e814/lib/cassandra-driver-internal-only-2.1.0c1.post.zip -- diff --git a/lib/cassandra-driver-internal-only-2.1.0c1.post.zip b/lib/cassandra-driver-internal-only-2.1.0c1.post.zip new file mode 100644 index 000..e66a12a Binary files /dev/null and b/lib/cassandra-driver-internal-only-2.1.0c1.post.zip differ
git commit: cqlsh: Upgrade bundled py driver to fix nulls in UDTS and tuples
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1.0 110a132b1 -> fe78e8149 cqlsh: Upgrade bundled py driver to fix nulls in UDTS and tuples Patch by Tyler Hobbs; review by Aleksey Yeschenko for CASSANDRA-7656 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fe78e814 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fe78e814 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fe78e814 Branch: refs/heads/cassandra-2.1.0 Commit: fe78e8149646df7686da48f44fe304181ea5a417 Parents: 110a132 Author: Tyler Hobbs Authored: Fri Aug 1 18:08:19 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 18:08:19 2014 -0500 -- CHANGES.txt | 1 + ...assandra-driver-internal-only-2.1.0b1.post.zip | Bin 125786 -> 0 bytes ...assandra-driver-internal-only-2.1.0c1.post.zip | Bin 0 -> 128949 bytes 3 files changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe78e814/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 9cff11a..c95a22c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.0-final + * (cqlsh) Handle nulls in UDTs and tuples correctly (CASSANDRA-7656) * Don't use strict consistency when replacing (CASSANDRA-7568) * Fix min/max cell name collection on 2.0 SSTables with range tombstones (CASSANDRA-7593) http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe78e814/lib/cassandra-driver-internal-only-2.1.0b1.post.zip -- diff --git a/lib/cassandra-driver-internal-only-2.1.0b1.post.zip b/lib/cassandra-driver-internal-only-2.1.0b1.post.zip deleted file mode 100644 index d0c0b1a..000 Binary files a/lib/cassandra-driver-internal-only-2.1.0b1.post.zip and /dev/null differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe78e814/lib/cassandra-driver-internal-only-2.1.0c1.post.zip -- diff --git a/lib/cassandra-driver-internal-only-2.1.0c1.post.zip b/lib/cassandra-driver-internal-only-2.1.0c1.post.zip new file mode 100644 index 000..e66a12a Binary files /dev/null and b/lib/cassandra-driver-internal-only-2.1.0c1.post.zip differ
[jira] [Comment Edited] (CASSANDRA-7395) Support for pure user-defined functions (UDF)
[ https://issues.apache.org/jira/browse/CASSANDRA-7395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083132#comment-14083132 ] Tyler Hobbs edited comment on CASSANDRA-7395 at 8/1/14 11:01 PM: - > Application level conflicts may arise if new 'core CQL' functions appear in a > future C* version with the same name of existing UDFs. We should make that > clear in documentation and encourage users to use namespaces. The only > alternative that came to my mind was to force users to use SELECT > ::sin(foo)... for non-namespace UDFs - but I'm not happy with that > alternative. I think encouraging the use of namespaces is the best way to go. Perhaps on startup we could check for any non-namespaced UDFs that would be inaccessible due to a collision with a (new) core function name and log a warning? At that point, the user could define the function within a namspace. Comments on the patch: * UFMetaData: ** Bad javadoc for the class ** Redundant work in constructors ** compatibleArgs(): *** argType should not be null (no TypeAndData) *** To fix the IRE case, make AssignementTestable.isAssignableTo() not throw an IRE, add validateAssignableTo() which does throw an IRE ** parseCQLType(): want InvalidRequestException instead of ConfigurationException ** dropFunction(): use ColumnFamily.delete() to remove the whole partition instead of individual rows *** Do we need a way to drop a specific signature and not all versions of a function? ** adding toString() would be nice, as it's expected by the logger in a couple of places * MigrationManager: ** Throw IRE instead of ConfigurationException (and update DropFunctionStatement) * CFMetaData: ** Use 604800 for gc_grace_seconds (see CASSANDRA-7668) * FunctionCall: ** prepare(): no need for curly braces on "if" with single statement ** prepare(): s/Unknown CQL3 function called/Unknown function called/ ** toString(): no single-line if-statements, please * Selectable: ** toString(): no single-line if-statements * DefsTables: ** add/update/dropFunction() do need to notify listeners (you have TODOs there), so we need MigrationManager.notifyAdd/Update/DropUDF() * Event: ** Keyspace string should be empty for UDF changes (we'll need a v4 protocol doc soon) ** serializeEvent() and eventSerializedSize() will need to handle function events specially when the protocolversion < 4. I guess we shouldn't send events at all? I'm not too sure about this one. * CreateFunctionStatement: ** constructor: Instead of throwing NPEs, use assertions ** changeEvent(): whitespace is off ** execute(): throw IREs instead of ConfigurationExceptions * DropFunctionStatement: ** Unused imports * UDFunction: ** "throws" can go on the same line as method signature ** Throw IRE instead of ConfigurationException * UDFRegistry: ** no need for curlies on single-statement "ifs" (there are a few) ** refreshInitial(): *** use QueryProcess.executeOnceInternal() instead of process() *** put for-loop initialization on single line *** if we fail to query system.schema_functions, let the exception propagate Overall, the patch is looking really good. After the next round of fixes, I'll do some testing and further review. We also definitely want to get good test coverage of this. Unit tests that extend CQLTester would be a good start (and they could use functions from the test class for UDFs). was (Author: thobbs): > Application level conflicts may arise if new 'core CQL' functions appear in a > future C* version with the same name of existing UDFs. We should make that > clear in documentation and encourage users to use namespaces. The only > alternative that came to my mind was to force users to use SELECT > ::sin(foo)... for non-namespace UDFs - but I'm not happy with that > alternative. I think encouraging the use of namespaces is the best way to go. Perhaps on startup we could check for any non-namespaced UDFs that would be inaccessible due to a collision with a (new) core function name and log a warning? At that point, the user could define the function within a namspace. Comments on the patch: * UFMetaData: * Bad javadoc for the class * Redundant work in constructors * compatibleArgs(): * argType should not be null (no TypeAndData) * To fix the IRE case, make AssignementTestable.isAssignableTo() not throw an IRE, add validateAssignableTo() which does throw an IRE * parseCQLType(): want InvalidRequestException instead of ConfigurationException * dropFunction(): use ColumnFamily.delete() to remove the whole partition instead of individual rows * Do we need a way to drop a specific signature and not all versions of a function? * adding toString() would be nice, as it's expected by the logger in a couple of places * MigrationManager: * Throw IRE instead of ConfigurationException (and update DropFunctionS
[jira] [Created] (CASSANDRA-7672) use types allow counters
Russ Hatch created CASSANDRA-7672: - Summary: use types allow counters Key: CASSANDRA-7672 URL: https://issues.apache.org/jira/browse/CASSANDRA-7672 Project: Cassandra Issue Type: Bug Reporter: Russ Hatch >From the conversation on CASSANDRA-6312 it seems we should not allow user >types to contain counters. Presently, user types can be defined with field >types of counter, and these user types can also be associated with tables >without error. I'm not certain if there's a compelling case for counters within user types, but I don't think there's any syntax existing presently that would allow updating them anyway. To repro: {noformat} CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true; USE test; CREATE TYPE t_item ( sub_one counter ); CREATE TYPE item ( sub_one counter ); CREATE TABLE test.mytable ( value1 text PRIMARY KEY, item t_item, value2 text ); cqlsh:test> insert into mytable (value1, value2) VALUES ( 'foo', 'bar'); cqlsh:test> select * from mytable; value1 | item | value2 +--+ foo | null |bar {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7670) selecting field from empty UDT cell using dot notation triggers exception
[ https://issues.apache.org/jira/browse/CASSANDRA-7670?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Russ Hatch updated CASSANDRA-7670: -- Tester: Russ Hatch > selecting field from empty UDT cell using dot notation triggers exception > - > > Key: CASSANDRA-7670 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7670 > Project: Cassandra > Issue Type: Bug >Reporter: Russ Hatch >Priority: Minor > > Hopefully the title explains the issue. > Basically if a row has a user type which is undefined, using the "dot > notation" syntax causes cqlsh to show a NPE, and an exception ends up in the > log as well. > I would expect the behavior here to execute the query and return null, since > the user type itself is null, then it's fields are null as well (the downside > here is there would be no way to distinguish between a null UDT and a null > UDT field, without making an initial query to check if the UDT is non-null). > Steps to repro: > {noformat} > create keyspace test with replication = {'class':'SimpleStrategy', > 'replication_factor':1}; > use test; > CREATE TYPE t_item (subitem text); > create table mytable (value1 text PRIMARY KEY, value2 text, item t_item); > insert into mytable (value1, value2 ) values ('foo', 'bar'); > select item.subitem from mytable; > message="java.lang.NullPointerException"> > {noformat} > Here's the exception logged: > {noformat} > ERROR [SharedPool-Worker-1] 2014-08-01 15:49:00,514 ErrorMessage.java:218 - > Unexpected exception during request > java.lang.NullPointerException: null > at > org.apache.cassandra.db.marshal.TupleType.split(TupleType.java:146) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.Selection$FieldSelector.compute(Selection.java:469) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.Selection$SelectionWithFunctions.handleRow(Selection.java:537) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.Selection$ResultSetBuilder.build(Selection.java:333) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:1149) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:283) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:225) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:60) > ~[main/:na] > at > org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:187) > ~[main/:na] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:206) > ~[main/:na] > at > org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:118) > ~[main/:na] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:421) > [main/:na] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:318) > [main/:na] > at > io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:332) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:31) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:323) > [netty-all-4.0.20.Final.jar:4.0.20.Final] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > [na:1.7.0_65] > at > org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:163) > [main/:na] > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:103) > [main/:na] > at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65] > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7395) Support for pure user-defined functions (UDF)
[ https://issues.apache.org/jira/browse/CASSANDRA-7395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083132#comment-14083132 ] Tyler Hobbs commented on CASSANDRA-7395: > Application level conflicts may arise if new 'core CQL' functions appear in a > future C* version with the same name of existing UDFs. We should make that > clear in documentation and encourage users to use namespaces. The only > alternative that came to my mind was to force users to use SELECT > ::sin(foo)... for non-namespace UDFs - but I'm not happy with that > alternative. I think encouraging the use of namespaces is the best way to go. Perhaps on startup we could check for any non-namespaced UDFs that would be inaccessible due to a collision with a (new) core function name and log a warning? At that point, the user could define the function within a namspace. Comments on the patch: * UFMetaData: * Bad javadoc for the class * Redundant work in constructors * compatibleArgs(): * argType should not be null (no TypeAndData) * To fix the IRE case, make AssignementTestable.isAssignableTo() not throw an IRE, add validateAssignableTo() which does throw an IRE * parseCQLType(): want InvalidRequestException instead of ConfigurationException * dropFunction(): use ColumnFamily.delete() to remove the whole partition instead of individual rows * Do we need a way to drop a specific signature and not all versions of a function? * adding toString() would be nice, as it's expected by the logger in a couple of places * MigrationManager: * Throw IRE instead of ConfigurationException (and update DropFunctionStatement) * CFMetaData: * Use 604800 for gc_grace_seconds (see CASSANDRA-7668) * FunctionCall: * prepare(): no need for curly braces on "if" with single statement * prepare(): s/Unknown CQL3 function called/Unknown function called/ * toString(): no single-line if-statements, please * Selectable: * toString(): no single-line if-statements * DefsTables: * add/update/dropFunction() do need to notify listeners (you have TODOs there), so we need MigrationManager.notifyAdd/Update/DropUDF() * Event: * Keyspace string should be empty for UDF changes (we'll need a v4 protocol doc soon) * serializeEvent() and eventSerializedSize() will need to handle function events specially when the protocolversion < 4. I guess we shouldn't send events at all? I'm not too sure about this one. * CreateFunctionStatement: * constructor: Instead of throwing NPEs, use assertions * changeEvent(): whitespace is off * execute(): throw IREs instead of ConfigurationExceptions * DropFunctionStatement: * Unused imports * UDFunction: * "throws" can go on the same line as method signature * Throw IRE instead of ConfigurationException * UDFRegistry: * no need for curlies on single-statement "ifs" (there are a few) * refreshInitial(): * use QueryProcess.executeOnceInternal() instead of process() * put for-loop initialization on single line * if we fail to query system.schema_functions, let the exception propagate Overall, the patch is looking really good. After the next round of fixes, I'll do some testing and further review. We also definitely want to get good test coverage of this. Unit tests that extend CQLTester would be a good start (and they could use functions from the test class for UDFs). > Support for pure user-defined functions (UDF) > - > > Key: CASSANDRA-7395 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7395 > Project: Cassandra > Issue Type: New Feature > Components: API, Core >Reporter: Jonathan Ellis >Assignee: Robert Stupp > Labels: cql > Fix For: 3.0 > > Attachments: 7395.txt, udf-create-syntax.png, udf-drop-syntax.png > > > We have some tickets for various aspects of UDF (CASSANDRA-4914, > CASSANDRA-5970, CASSANDRA-4998) but they all suffer from various degrees of > ocean-boiling. > Let's start with something simple: allowing pure user-defined functions in > the SELECT clause of a CQL query. That's it. > By "pure" I mean, must depend only on the input parameters. No side effects. > No exposure to C* internals. Column values in, result out. > http://en.wikipedia.org/wiki/Pure_function -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7656) UDT with null/missing attributes
[ https://issues.apache.org/jira/browse/CASSANDRA-7656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083114#comment-14083114 ] Aleksey Yeschenko commented on CASSANDRA-7656: -- +1 (to the updated-bundled-driver branch). > UDT with null/missing attributes > - > > Key: CASSANDRA-7656 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7656 > Project: Cassandra > Issue Type: Bug > Components: API, Core >Reporter: Jaroslav Kamenik >Assignee: Tyler Hobbs >Priority: Minor > Fix For: 2.1.0 > > > I have experienced problem with queriing UDTs stored with some not filled > attributes through new java driver 2.1. I tried to query them in cqlsh too > and it failed. I tried to simulate it again with fresh C* directly in cqlsh > and it seems it has problems in some cases. I have tested it with UDT defined > as (a ascii, b ascii, c ascii, d ascii, e ascii, f ascii, g ascii). > Few observations: > {noformat} > Store {a:'a'} is ok, it returns {a: 'a', b: '', c: '', d: '', e: '', f: '', > g: ''} > Store {a:'a', b:'b', c:'c', d:'d', e:'e', f:'f', g:'g'} is ok, returns all > filled. > Store {a:'a', g:'g'} fills a only. > Store {a:'a', b:'b', d:'d', e:'e', f:'f', g:'g'} (missing c) failed on load. > Store {a:'a', f:'f', g:'g'} fills just a. > Store {f:'f',g:'g'} nothing filled > Store {e:'e',f:'f',g:'g'} failed on load. > > {noformat} > you can reproduce it with: > {noformat} > ./cqlsh > Connected to WOC at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 2.1.0-rc4 | CQL spec 3.2.0 | Native protocol v3] > Use HELP for help. > cqlsh> create keyspace testks WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor' : 1}; > cqlsh> use testks; > cqlsh:testks> CREATE TYPE IF NOT EXISTS data (a ascii, b ascii, c ascii, d > ascii, e ascii, f ascii, g ascii); > cqlsh:testks> CREATE TABLE IF NOT EXISTS bbb (a ascii primary key, b data); > cqlsh:testks> insert into testks.bbb (a,b) values ('a', {a:'a'}); > cqlsh:testks> select * from bbb; > a | b > ---+ > a | {a: 'a', b: '', c: '', d: '', e: '', f: '', g: ''} > (1 rows) > cqlsh:testks> insert into testks.bbb (a,b) values ('a', {a:'a', b:'b', c:'c', > d:'d', e:'e', f:'f', g:'g'}); > cqlsh:testks> select * from bbb; > a | b > ---+-- > a | {a: 'a', b: 'b', c: 'c', d: 'd', e: 'e', f: 'f', g: 'g'} > (1 rows) > cqlsh> insert into testks.bbb (a,b) values ('a', {a:'a', g:'g'}); > cqlsh> select * from testks.bbb; > a | b > ---+ > a | {a: 'a', b: '', c: '', d: '', e: '', f: '', g: ''} > (1 rows) > cqlsh:testks> insert into testks.bbb (a,b) values ('a', {a:'a', b:'b', d:'d', > e:'e', f:'f', g:'g'}); > cqlsh:testks> select * from bbb; > Traceback (most recent call last): > File "./cqlsh", line 901, in perform_simple_statement > rows = self.session.execute(statement, trace=self.tracing_enabled) > File > "/srv/apache-cassandra-2.1.0-rc4/bin/../lib/cassandra-driver-internal-only-2.1.0b1.post.zip/cassandra-driver-2.1.0b1.post/cassandra/cluster.py", > line 1186, in execute > result = future.result(timeout) > File > "/srv/apache-cassandra-2.1.0-rc4/bin/../lib/cassandra-driver-internal-only-2.1.0b1.post.zip/cassandra-driver-2.1.0b1.post/cassandra/cluster.py", > line 2610, in result > raise self._final_exception > error: unpack requires a string argument of length 4 > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7670) selecting field from empty UDT cell using dot notation triggers exception
[ https://issues.apache.org/jira/browse/CASSANDRA-7670?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Russ Hatch updated CASSANDRA-7670: -- Description: Hopefully the title explains the issue. Basically if a row has a user type which is undefined, using the "dot notation" syntax causes cqlsh to show a NPE, and an exception ends up in the log as well. I would expect the behavior here to execute the query and return null, since the user type itself is null, then it's fields are null as well (the downside here is there would be no way to distinguish between a null UDT and a null UDT field, without making an initial query to check if the UDT is non-null). Steps to repro: {noformat} create keyspace test with replication = {'class':'SimpleStrategy', 'replication_factor':1}; use test; CREATE TYPE t_item (subitem text); create table mytable (value1 text PRIMARY KEY, value2 text, item t_item); insert into mytable (value1, value2 ) values ('foo', 'bar'); select item.subitem from mytable; {noformat} Here's the exception logged: {noformat} ERROR [SharedPool-Worker-1] 2014-08-01 15:49:00,514 ErrorMessage.java:218 - Unexpected exception during request java.lang.NullPointerException: null at org.apache.cassandra.db.marshal.TupleType.split(TupleType.java:146) ~[main/:na] at org.apache.cassandra.cql3.statements.Selection$FieldSelector.compute(Selection.java:469) ~[main/:na] at org.apache.cassandra.cql3.statements.Selection$SelectionWithFunctions.handleRow(Selection.java:537) ~[main/:na] at org.apache.cassandra.cql3.statements.Selection$ResultSetBuilder.build(Selection.java:333) ~[main/:na] at org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:1149) ~[main/:na] at org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:283) ~[main/:na] at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:225) ~[main/:na] at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:60) ~[main/:na] at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:187) ~[main/:na] at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:206) ~[main/:na] at org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:118) ~[main/:na] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:421) [main/:na] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:318) [main/:na] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103) [netty-all-4.0.20.Final.jar:4.0.20.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:332) [netty-all-4.0.20.Final.jar:4.0.20.Final] at io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:31) [netty-all-4.0.20.Final.jar:4.0.20.Final] at io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:323) [netty-all-4.0.20.Final.jar:4.0.20.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_65] at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:163) [main/:na] at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:103) [main/:na] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65] {noformat} was: Hopefully the title explains the issue. Basically if a row has a user type which is undefined, using the "dot notation" syntax causes cqlsh to show a NPE, and an exception ends up in the log as well. I would expect the behavior here to execute the query and return null, since the user type itself is null, then it's fields are null as well (the downside here is there would be no way to distinguish between a null UDT and a null UDT field, without making an initial query to check if the UDT is non-null). Steps to repro: {noformat} create keyspace test with replication = {'class':'SimpleStrategy', 'replication_factor':1}; use test; CREATE TYPE t_item (subitem text); create table mytable (value1 text PRIMARY KEY, value2 test, item t_item); insert into mytable (value1, value2 ) values ('foo', 'bar'); select item.subitem from mytable; {noformat} Here's the exception logged: {noformat} ERROR [SharedPool-Worker-1] 2014-08-01 15:49:00,514 ErrorMessage.java:218 - Unexpected exception during request java.lang.NullPointerException: null at org.apache.cassandra.db.marshal.TupleType.split(TupleType.java:146) ~[main/:na] at org.apache.cassandra.cql3.statements.Selection$FieldSelector.compute(Selection.java:469) ~[main/:na]
[jira] [Created] (CASSANDRA-7671) cqlsh: Error when printing results of conditional updates
Tyler Hobbs created CASSANDRA-7671: -- Summary: cqlsh: Error when printing results of conditional updates Key: CASSANDRA-7671 URL: https://issues.apache.org/jira/browse/CASSANDRA-7671 Project: Cassandra Issue Type: Bug Components: Tools Reporter: Tyler Hobbs Assignee: Tyler Hobbs Fix For: 2.1.0 {noformat} cqlsh> INSERT INTO demo.kv (key, value) VALUES (1, 1) IF NOT EXISTS; print_static_result() takes exactly 3 arguments (2 given) {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7669) nodetool fails to connect when ipv6 host is specified
[ https://issues.apache.org/jira/browse/CASSANDRA-7669?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-7669: -- Fix Version/s: (was: 2.1.0) 2.1.1 I assume this also affects 2.0.x? > nodetool fails to connect when ipv6 host is specified > - > > Key: CASSANDRA-7669 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7669 > Project: Cassandra > Issue Type: Bug > Components: Tools > Environment: java version "1.7.0_65" > Java(TM) SE Runtime Environment (build 1.7.0_65-b17) > Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode) >Reporter: Adam Holmberg >Priority: Trivial > Fix For: 2.1.1 > > Attachments: nodetool_url_fmt.txt > > > The NodeProbe fmtUrl does not account for ipv6 addresses specified for > 'host'. > nodetool -h with ipv6 host address fails with cryptic error message > Adding square brackets as in http://www.ietf.org/rfc/rfc3986.txt section > 3.2.2 corrects this behavior. Patch attached. > {code:title=Before} > aholmberg-rmbp15:cassandra-2.1.0-rc4 adamholmberg$ for h in localhost > 127.0.0.1 ::1 0::1; do cmd="bin/nodetool -h $h -p 7100 version"; echo $cmd; > eval $cmd; done > bin/nodetool -h localhost -p 7100 version > ReleaseVersion: 2.1.0-rc4-SNAPSHOT > bin/nodetool -h 127.0.0.1 -p 7100 version > ReleaseVersion: 2.1.0-rc4-SNAPSHOT > bin/nodetool -h ::1 -p 7100 version > nodetool: For input string: ":1:7100" > See 'nodetool help' or 'nodetool help '. > bin/nodetool -h 0::1 -p 7100 version > nodetool: For input string: ":1:7100" > See 'nodetool help' or 'nodetool help ’. > {code} > {code:title=After} > aholmberg-rmbp15:cassandra-2.1.0-rc4 adamholmberg$ for h in localhost > 127.0.0.1 ::1 0::1; do cmd="bin/nodetool -h $h -p 7100 version"; echo $cmd; > eval $cmd; done > bin/nodetool -h localhost -p 7100 version > ReleaseVersion: 2.1.0-rc4-SNAPSHOT > bin/nodetool -h 127.0.0.1 -p 7100 version > ReleaseVersion: 2.1.0-rc4-SNAPSHOT > bin/nodetool -h ::1 -p 7100 version > ReleaseVersion: 2.1.0-rc4-SNAPSHOT > bin/nodetool -h 0::1 -p 7100 version > ReleaseVersion: 2.1.0-rc4-SNAPSHOT > {code} -- This message was sent by Atlassian JIRA (v6.2#6252)
[1/7] git commit: Merge remote-tracking branch 'origin/cassandra-2.1' into cassandra-2.1
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 4f778d2e7 -> 824ffa1da refs/heads/cassandra-2.1.0 a09e53cda -> 110a132b1 refs/heads/trunk 37b3a2ba0 -> ff4d159ef Merge remote-tracking branch 'origin/cassandra-2.1' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4f778d2e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4f778d2e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4f778d2e Branch: refs/heads/trunk Commit: 4f778d2e7ec469f2b2afcdd1b5f5e8012fe6b9bd Parents: 24f6f03 3faf88c Author: Benedict Elliott Smith Authored: Fri Aug 1 21:51:01 2014 +0100 Committer: Benedict Elliott Smith Committed: Fri Aug 1 21:51:01 2014 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 10 +- 2 files changed, 6 insertions(+), 5 deletions(-) --
[3/7] git commit: Fix scrub against collection type
Fix scrub against collection type patch by yukim; reviewed by thobbs for CASSANDRA-7665 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/110a132b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/110a132b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/110a132b Branch: refs/heads/trunk Commit: 110a132b18f006c4c9ca0c5913cbe64c5d3e01f7 Parents: a09e53c Author: Yuki Morishita Authored: Fri Aug 1 17:20:25 2014 -0500 Committer: Yuki Morishita Committed: Fri Aug 1 17:20:25 2014 -0500 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/AbstractCell.java | 2 +- .../org/apache/cassandra/db/marshal/AbstractType.java | 13 + .../apache/cassandra/db/marshal/CollectionType.java| 6 ++ 4 files changed, 21 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/110a132b/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 6ab8a73..9cff11a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -25,6 +25,7 @@ * (cqlsh) Correctly handle paged result sets (CASSANDRA-7625) * (cqlsh) Improve waiting for a trace to complete (CASSANDRA-7626) * Fix tracing of concurrent range slices and 2ary index queries (CASSANDRA-7626) + * Fix scrub against collection type (CASSANDRA-7665) Merged from 2.0: * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) http://git-wip-us.apache.org/repos/asf/cassandra/blob/110a132b/src/java/org/apache/cassandra/db/AbstractCell.java -- diff --git a/src/java/org/apache/cassandra/db/AbstractCell.java b/src/java/org/apache/cassandra/db/AbstractCell.java index 82f1989..f27871f 100644 --- a/src/java/org/apache/cassandra/db/AbstractCell.java +++ b/src/java/org/apache/cassandra/db/AbstractCell.java @@ -164,7 +164,7 @@ public abstract class AbstractCell implements Cell AbstractType valueValidator = metadata.getValueValidator(name()); if (valueValidator != null) -valueValidator.validate(value()); +valueValidator.validateCellValue(value()); } public static Cell create(CellName name, ByteBuffer value, long timestamp, int ttl, CFMetaData metadata) http://git-wip-us.apache.org/repos/asf/cassandra/blob/110a132b/src/java/org/apache/cassandra/db/marshal/AbstractType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/AbstractType.java b/src/java/org/apache/cassandra/db/marshal/AbstractType.java index f45de36..4e1f2a3 100644 --- a/src/java/org/apache/cassandra/db/marshal/AbstractType.java +++ b/src/java/org/apache/cassandra/db/marshal/AbstractType.java @@ -95,6 +95,19 @@ public abstract class AbstractType implements Comparator getSerializer().validate(bytes); } +/** + * Validate cell value. Unlike {@linkplain #validate(java.nio.ByteBuffer)}, + * cell value is passed to validate its content. + * Usually, this is the same as validate except collection. + * + * @param cellValue ByteBuffer representing cell value + * @throws MarshalException + */ +public void validateCellValue(ByteBuffer cellValue) throws MarshalException +{ +validate(cellValue); +} + /* Most of our internal type should override that. */ public CQL3Type asCQL3Type() { http://git-wip-us.apache.org/repos/asf/cassandra/blob/110a132b/src/java/org/apache/cassandra/db/marshal/CollectionType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/CollectionType.java b/src/java/org/apache/cassandra/db/marshal/CollectionType.java index be344f9..8a5fe5c 100644 --- a/src/java/org/apache/cassandra/db/marshal/CollectionType.java +++ b/src/java/org/apache/cassandra/db/marshal/CollectionType.java @@ -64,6 +64,12 @@ public abstract class CollectionType extends AbstractType public abstract CollectionSerializer getSerializer(); @Override +public void validateCellValue(ByteBuffer cellValue) throws MarshalException +{ +valueComparator().validate(cellValue); +} + +@Override public String toString() { StringBuilder sb = new StringBuilder();
[6/7] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1
Merge branch 'cassandra-2.1.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/824ffa1d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/824ffa1d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/824ffa1d Branch: refs/heads/cassandra-2.1 Commit: 824ffa1da02c1daac4772aca6d9df6cfa7d1c7cc Parents: 4f778d2 110a132 Author: Yuki Morishita Authored: Fri Aug 1 17:21:13 2014 -0500 Committer: Yuki Morishita Committed: Fri Aug 1 17:21:13 2014 -0500 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/AbstractCell.java | 2 +- .../org/apache/cassandra/db/marshal/AbstractType.java | 13 + .../apache/cassandra/db/marshal/CollectionType.java| 6 ++ 4 files changed, 21 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/824ffa1d/CHANGES.txt --
[7/7] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ff4d159e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ff4d159e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ff4d159e Branch: refs/heads/trunk Commit: ff4d159efc64f748200339c728f794916b953e0d Parents: 37b3a2b 824ffa1 Author: Yuki Morishita Authored: Fri Aug 1 17:21:19 2014 -0500 Committer: Yuki Morishita Committed: Fri Aug 1 17:21:19 2014 -0500 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/AbstractCell.java | 2 +- .../org/apache/cassandra/db/marshal/AbstractType.java | 13 + .../apache/cassandra/db/marshal/CollectionType.java| 6 ++ 4 files changed, 21 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff4d159e/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff4d159e/src/java/org/apache/cassandra/db/marshal/AbstractType.java --
[jira] [Commented] (CASSANDRA-7667) Improve migration
[ https://issues.apache.org/jira/browse/CASSANDRA-7667?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083056#comment-14083056 ] Robert Stupp commented on CASSANDRA-7667: - Maybe - I had the two images from CASSANDRA-6977 ([5 nodes|https://issues.apache.org/jira/secure/attachment/12638346/all_data_5_nodes.png], [100 nodes|https://issues.apache.org/jira/secure/attachment/12638347/100_nodes_all_data.png]) and CASSANDRA-6976 in mind. Maybe the weird 100-nodes-graph is partly caused by the heap that broadcast needs - but that's some kind of "looking into the crystal ball". > Improve migration > - > > Key: CASSANDRA-7667 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7667 > Project: Cassandra > Issue Type: Improvement >Reporter: Robert Stupp > > Idea is to optimize migration especially for large clusters with multiple DCs. > > Currently {{MigrationManager.announce()}} simply broadcasts to all nodes. > > Idea is to not announce schema migration to every node. > > *Against remote DCs*: only contact a single node in each remote DC. This > could make migration faster, because network latency comes into play. And it > lowers cross-DC network requirements (since 1-to-all communication creates a > huge amount of TCP connections). Drawback: remote-DC-announcement must be > reliable (receiver must ACK - if it doesn't, sender must retry another node). > > *Within the local DC*: use some gossip approach - e.g. only contact N nodes > at once. Not sure about this one - it might be nice, if there are really > many (~100) nodes in one DC. But it's a bit difficult to guarantee, that all > nodes will receive the announcement without giving up the "fire-and-forget" > approach. -- This message was sent by Atlassian JIRA (v6.2#6252)
[2/7] git commit: Fix scrub against collection type
Fix scrub against collection type patch by yukim; reviewed by thobbs for CASSANDRA-7665 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/110a132b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/110a132b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/110a132b Branch: refs/heads/cassandra-2.1 Commit: 110a132b18f006c4c9ca0c5913cbe64c5d3e01f7 Parents: a09e53c Author: Yuki Morishita Authored: Fri Aug 1 17:20:25 2014 -0500 Committer: Yuki Morishita Committed: Fri Aug 1 17:20:25 2014 -0500 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/AbstractCell.java | 2 +- .../org/apache/cassandra/db/marshal/AbstractType.java | 13 + .../apache/cassandra/db/marshal/CollectionType.java| 6 ++ 4 files changed, 21 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/110a132b/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 6ab8a73..9cff11a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -25,6 +25,7 @@ * (cqlsh) Correctly handle paged result sets (CASSANDRA-7625) * (cqlsh) Improve waiting for a trace to complete (CASSANDRA-7626) * Fix tracing of concurrent range slices and 2ary index queries (CASSANDRA-7626) + * Fix scrub against collection type (CASSANDRA-7665) Merged from 2.0: * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) http://git-wip-us.apache.org/repos/asf/cassandra/blob/110a132b/src/java/org/apache/cassandra/db/AbstractCell.java -- diff --git a/src/java/org/apache/cassandra/db/AbstractCell.java b/src/java/org/apache/cassandra/db/AbstractCell.java index 82f1989..f27871f 100644 --- a/src/java/org/apache/cassandra/db/AbstractCell.java +++ b/src/java/org/apache/cassandra/db/AbstractCell.java @@ -164,7 +164,7 @@ public abstract class AbstractCell implements Cell AbstractType valueValidator = metadata.getValueValidator(name()); if (valueValidator != null) -valueValidator.validate(value()); +valueValidator.validateCellValue(value()); } public static Cell create(CellName name, ByteBuffer value, long timestamp, int ttl, CFMetaData metadata) http://git-wip-us.apache.org/repos/asf/cassandra/blob/110a132b/src/java/org/apache/cassandra/db/marshal/AbstractType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/AbstractType.java b/src/java/org/apache/cassandra/db/marshal/AbstractType.java index f45de36..4e1f2a3 100644 --- a/src/java/org/apache/cassandra/db/marshal/AbstractType.java +++ b/src/java/org/apache/cassandra/db/marshal/AbstractType.java @@ -95,6 +95,19 @@ public abstract class AbstractType implements Comparator getSerializer().validate(bytes); } +/** + * Validate cell value. Unlike {@linkplain #validate(java.nio.ByteBuffer)}, + * cell value is passed to validate its content. + * Usually, this is the same as validate except collection. + * + * @param cellValue ByteBuffer representing cell value + * @throws MarshalException + */ +public void validateCellValue(ByteBuffer cellValue) throws MarshalException +{ +validate(cellValue); +} + /* Most of our internal type should override that. */ public CQL3Type asCQL3Type() { http://git-wip-us.apache.org/repos/asf/cassandra/blob/110a132b/src/java/org/apache/cassandra/db/marshal/CollectionType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/CollectionType.java b/src/java/org/apache/cassandra/db/marshal/CollectionType.java index be344f9..8a5fe5c 100644 --- a/src/java/org/apache/cassandra/db/marshal/CollectionType.java +++ b/src/java/org/apache/cassandra/db/marshal/CollectionType.java @@ -64,6 +64,12 @@ public abstract class CollectionType extends AbstractType public abstract CollectionSerializer getSerializer(); @Override +public void validateCellValue(ByteBuffer cellValue) throws MarshalException +{ +valueComparator().validate(cellValue); +} + +@Override public String toString() { StringBuilder sb = new StringBuilder();
[5/7] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1
Merge branch 'cassandra-2.1.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/824ffa1d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/824ffa1d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/824ffa1d Branch: refs/heads/trunk Commit: 824ffa1da02c1daac4772aca6d9df6cfa7d1c7cc Parents: 4f778d2 110a132 Author: Yuki Morishita Authored: Fri Aug 1 17:21:13 2014 -0500 Committer: Yuki Morishita Committed: Fri Aug 1 17:21:13 2014 -0500 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/AbstractCell.java | 2 +- .../org/apache/cassandra/db/marshal/AbstractType.java | 13 + .../apache/cassandra/db/marshal/CollectionType.java| 6 ++ 4 files changed, 21 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/824ffa1d/CHANGES.txt --
[4/7] git commit: Fix scrub against collection type
Fix scrub against collection type patch by yukim; reviewed by thobbs for CASSANDRA-7665 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/110a132b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/110a132b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/110a132b Branch: refs/heads/cassandra-2.1.0 Commit: 110a132b18f006c4c9ca0c5913cbe64c5d3e01f7 Parents: a09e53c Author: Yuki Morishita Authored: Fri Aug 1 17:20:25 2014 -0500 Committer: Yuki Morishita Committed: Fri Aug 1 17:20:25 2014 -0500 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/AbstractCell.java | 2 +- .../org/apache/cassandra/db/marshal/AbstractType.java | 13 + .../apache/cassandra/db/marshal/CollectionType.java| 6 ++ 4 files changed, 21 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/110a132b/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 6ab8a73..9cff11a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -25,6 +25,7 @@ * (cqlsh) Correctly handle paged result sets (CASSANDRA-7625) * (cqlsh) Improve waiting for a trace to complete (CASSANDRA-7626) * Fix tracing of concurrent range slices and 2ary index queries (CASSANDRA-7626) + * Fix scrub against collection type (CASSANDRA-7665) Merged from 2.0: * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) http://git-wip-us.apache.org/repos/asf/cassandra/blob/110a132b/src/java/org/apache/cassandra/db/AbstractCell.java -- diff --git a/src/java/org/apache/cassandra/db/AbstractCell.java b/src/java/org/apache/cassandra/db/AbstractCell.java index 82f1989..f27871f 100644 --- a/src/java/org/apache/cassandra/db/AbstractCell.java +++ b/src/java/org/apache/cassandra/db/AbstractCell.java @@ -164,7 +164,7 @@ public abstract class AbstractCell implements Cell AbstractType valueValidator = metadata.getValueValidator(name()); if (valueValidator != null) -valueValidator.validate(value()); +valueValidator.validateCellValue(value()); } public static Cell create(CellName name, ByteBuffer value, long timestamp, int ttl, CFMetaData metadata) http://git-wip-us.apache.org/repos/asf/cassandra/blob/110a132b/src/java/org/apache/cassandra/db/marshal/AbstractType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/AbstractType.java b/src/java/org/apache/cassandra/db/marshal/AbstractType.java index f45de36..4e1f2a3 100644 --- a/src/java/org/apache/cassandra/db/marshal/AbstractType.java +++ b/src/java/org/apache/cassandra/db/marshal/AbstractType.java @@ -95,6 +95,19 @@ public abstract class AbstractType implements Comparator getSerializer().validate(bytes); } +/** + * Validate cell value. Unlike {@linkplain #validate(java.nio.ByteBuffer)}, + * cell value is passed to validate its content. + * Usually, this is the same as validate except collection. + * + * @param cellValue ByteBuffer representing cell value + * @throws MarshalException + */ +public void validateCellValue(ByteBuffer cellValue) throws MarshalException +{ +validate(cellValue); +} + /* Most of our internal type should override that. */ public CQL3Type asCQL3Type() { http://git-wip-us.apache.org/repos/asf/cassandra/blob/110a132b/src/java/org/apache/cassandra/db/marshal/CollectionType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/CollectionType.java b/src/java/org/apache/cassandra/db/marshal/CollectionType.java index be344f9..8a5fe5c 100644 --- a/src/java/org/apache/cassandra/db/marshal/CollectionType.java +++ b/src/java/org/apache/cassandra/db/marshal/CollectionType.java @@ -64,6 +64,12 @@ public abstract class CollectionType extends AbstractType public abstract CollectionSerializer getSerializer(); @Override +public void validateCellValue(ByteBuffer cellValue) throws MarshalException +{ +valueComparator().validate(cellValue); +} + +@Override public String toString() { StringBuilder sb = new StringBuilder();
[jira] [Commented] (CASSANDRA-7665) nodetool scrub fails on system schema with UDTs
[ https://issues.apache.org/jira/browse/CASSANDRA-7665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083045#comment-14083045 ] Tyler Hobbs commented on CASSANDRA-7665: +1 > nodetool scrub fails on system schema with UDTs > --- > > Key: CASSANDRA-7665 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7665 > Project: Cassandra > Issue Type: Bug > Environment: 2.1.0-rc4 >Reporter: Jonathan Halliday >Assignee: Marcus Eriksson > Fix For: 2.1.0 > > Attachments: 0001-add-validateCellValue-to-AbstractType.patch, > 0001-test.patch > > > {noformat} > [apache-cassandra-2.1.0-rc4]$ bin/cqlsh > Connected to Test Cluster at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 2.1.0-rc4 | CQL spec 3.2.0 | Native protocol v3] > Use HELP for help. > cqlsh> CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1 }; > cqlsh> use test; > cqlsh:test> CREATE TYPE point_t (x double, y double); > cqlsh:test> exit > {noformat} > {noformat} > [apache-cassandra-2.1.0-rc4]$bin/nodetool scrub > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > (34135 bytes) > INFO 12:34:57 Scrub of > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > complete: 2 rows in new sstable and 0 empty (tombstoned) rows dropped > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/local-7ad54392bcdd35a684174e047860b377/system-local-ka-5-Data.db') > (12515 bytes) > WARN 12:34:57 Error reading row (stacktrace follows): > org.apache.cassandra.io.sstable.CorruptSSTableException: > org.apache.cassandra.serializers.MarshalException: Not enough bytes to read a > set > at > org.apache.cassandra.io.sstable.SSTableIdentityIterator.next(SSTableIdentityIterator.java:139) > ~[apache-cassandra-2.1.0-rc4.jar:2.1.0-rc4] > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Created] (CASSANDRA-7670) selecting field from empty UDT cell using dot notation triggers exception
Russ Hatch created CASSANDRA-7670: - Summary: selecting field from empty UDT cell using dot notation triggers exception Key: CASSANDRA-7670 URL: https://issues.apache.org/jira/browse/CASSANDRA-7670 Project: Cassandra Issue Type: Bug Reporter: Russ Hatch Priority: Minor Hopefully the title explains the issue. Basically if a row has a user type which is undefined, using the "dot notation" syntax causes cqlsh to show a NPE, and an exception ends up in the log as well. I would expect the behavior here to execute the query and return null, since the user type itself is null, then it's fields are null as well (the downside here is there would be no way to distinguish between a null UDT and a null UDT field, without making an initial query to check if the UDT is non-null). Steps to repro: {noformat} create keyspace test with replication = {'class':'SimpleStrategy', 'replication_factor':1}; use test; CREATE TYPE t_item (subitem text); create table mytable (value1 text PRIMARY KEY, value2 test, item t_item); insert into mytable (value1, value2 ) values ('foo', 'bar'); select item.subitem from mytable; {noformat} Here's the exception logged: {noformat} ERROR [SharedPool-Worker-1] 2014-08-01 15:49:00,514 ErrorMessage.java:218 - Unexpected exception during request java.lang.NullPointerException: null at org.apache.cassandra.db.marshal.TupleType.split(TupleType.java:146) ~[main/:na] at org.apache.cassandra.cql3.statements.Selection$FieldSelector.compute(Selection.java:469) ~[main/:na] at org.apache.cassandra.cql3.statements.Selection$SelectionWithFunctions.handleRow(Selection.java:537) ~[main/:na] at org.apache.cassandra.cql3.statements.Selection$ResultSetBuilder.build(Selection.java:333) ~[main/:na] at org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:1149) ~[main/:na] at org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:283) ~[main/:na] at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:225) ~[main/:na] at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:60) ~[main/:na] at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:187) ~[main/:na] at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:206) ~[main/:na] at org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:118) ~[main/:na] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:421) [main/:na] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:318) [main/:na] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103) [netty-all-4.0.20.Final.jar:4.0.20.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:332) [netty-all-4.0.20.Final.jar:4.0.20.Final] at io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:31) [netty-all-4.0.20.Final.jar:4.0.20.Final] at io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:323) [netty-all-4.0.20.Final.jar:4.0.20.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_65] at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:163) [main/:na] at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:103) [main/:na] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65] {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7665) nodetool scrub fails on system schema with UDTs
[ https://issues.apache.org/jira/browse/CASSANDRA-7665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita updated CASSANDRA-7665: -- Attachment: 0001-add-validateCellValue-to-AbstractType.patch Updated patch for Tyler's comment. > nodetool scrub fails on system schema with UDTs > --- > > Key: CASSANDRA-7665 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7665 > Project: Cassandra > Issue Type: Bug > Environment: 2.1.0-rc4 >Reporter: Jonathan Halliday >Assignee: Marcus Eriksson > Fix For: 2.1.0 > > Attachments: 0001-add-validateCellValue-to-AbstractType.patch, > 0001-test.patch > > > {noformat} > [apache-cassandra-2.1.0-rc4]$ bin/cqlsh > Connected to Test Cluster at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 2.1.0-rc4 | CQL spec 3.2.0 | Native protocol v3] > Use HELP for help. > cqlsh> CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1 }; > cqlsh> use test; > cqlsh:test> CREATE TYPE point_t (x double, y double); > cqlsh:test> exit > {noformat} > {noformat} > [apache-cassandra-2.1.0-rc4]$bin/nodetool scrub > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > (34135 bytes) > INFO 12:34:57 Scrub of > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > complete: 2 rows in new sstable and 0 empty (tombstoned) rows dropped > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/local-7ad54392bcdd35a684174e047860b377/system-local-ka-5-Data.db') > (12515 bytes) > WARN 12:34:57 Error reading row (stacktrace follows): > org.apache.cassandra.io.sstable.CorruptSSTableException: > org.apache.cassandra.serializers.MarshalException: Not enough bytes to read a > set > at > org.apache.cassandra.io.sstable.SSTableIdentityIterator.next(SSTableIdentityIterator.java:139) > ~[apache-cassandra-2.1.0-rc4.jar:2.1.0-rc4] > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Created] (CASSANDRA-7669) nodetool fails to connect when ipv6 host is specified
Adam Holmberg created CASSANDRA-7669: Summary: nodetool fails to connect when ipv6 host is specified Key: CASSANDRA-7669 URL: https://issues.apache.org/jira/browse/CASSANDRA-7669 Project: Cassandra Issue Type: Bug Components: Tools Environment: java version "1.7.0_65" Java(TM) SE Runtime Environment (build 1.7.0_65-b17) Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode) Reporter: Adam Holmberg Priority: Trivial Fix For: 2.1.0 Attachments: nodetool_url_fmt.txt The NodeProbe fmtUrl does not account for ipv6 addresses specified for 'host'. nodetool -h with ipv6 host address fails with cryptic error message Adding square brackets as in http://www.ietf.org/rfc/rfc3986.txt section 3.2.2 corrects this behavior. Patch attached. {code:title=Before} aholmberg-rmbp15:cassandra-2.1.0-rc4 adamholmberg$ for h in localhost 127.0.0.1 ::1 0::1; do cmd="bin/nodetool -h $h -p 7100 version"; echo $cmd; eval $cmd; done bin/nodetool -h localhost -p 7100 version ReleaseVersion: 2.1.0-rc4-SNAPSHOT bin/nodetool -h 127.0.0.1 -p 7100 version ReleaseVersion: 2.1.0-rc4-SNAPSHOT bin/nodetool -h ::1 -p 7100 version nodetool: For input string: ":1:7100" See 'nodetool help' or 'nodetool help '. bin/nodetool -h 0::1 -p 7100 version nodetool: For input string: ":1:7100" See 'nodetool help' or 'nodetool help ’. {code} {code:title=After} aholmberg-rmbp15:cassandra-2.1.0-rc4 adamholmberg$ for h in localhost 127.0.0.1 ::1 0::1; do cmd="bin/nodetool -h $h -p 7100 version"; echo $cmd; eval $cmd; done bin/nodetool -h localhost -p 7100 version ReleaseVersion: 2.1.0-rc4-SNAPSHOT bin/nodetool -h 127.0.0.1 -p 7100 version ReleaseVersion: 2.1.0-rc4-SNAPSHOT bin/nodetool -h ::1 -p 7100 version ReleaseVersion: 2.1.0-rc4-SNAPSHOT bin/nodetool -h 0::1 -p 7100 version ReleaseVersion: 2.1.0-rc4-SNAPSHOT {code} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7665) nodetool scrub fails on system schema with UDTs
[ https://issues.apache.org/jira/browse/CASSANDRA-7665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita updated CASSANDRA-7665: -- Attachment: (was: 7665.txt) > nodetool scrub fails on system schema with UDTs > --- > > Key: CASSANDRA-7665 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7665 > Project: Cassandra > Issue Type: Bug > Environment: 2.1.0-rc4 >Reporter: Jonathan Halliday >Assignee: Marcus Eriksson > Fix For: 2.1.0 > > Attachments: 0001-add-validateCellValue-to-AbstractType.patch, > 0001-test.patch > > > {noformat} > [apache-cassandra-2.1.0-rc4]$ bin/cqlsh > Connected to Test Cluster at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 2.1.0-rc4 | CQL spec 3.2.0 | Native protocol v3] > Use HELP for help. > cqlsh> CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1 }; > cqlsh> use test; > cqlsh:test> CREATE TYPE point_t (x double, y double); > cqlsh:test> exit > {noformat} > {noformat} > [apache-cassandra-2.1.0-rc4]$bin/nodetool scrub > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > (34135 bytes) > INFO 12:34:57 Scrub of > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > complete: 2 rows in new sstable and 0 empty (tombstoned) rows dropped > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/local-7ad54392bcdd35a684174e047860b377/system-local-ka-5-Data.db') > (12515 bytes) > WARN 12:34:57 Error reading row (stacktrace follows): > org.apache.cassandra.io.sstable.CorruptSSTableException: > org.apache.cassandra.serializers.MarshalException: Not enough bytes to read a > set > at > org.apache.cassandra.io.sstable.SSTableIdentityIterator.next(SSTableIdentityIterator.java:139) > ~[apache-cassandra-2.1.0-rc4.jar:2.1.0-rc4] > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7667) Improve migration
[ https://issues.apache.org/jira/browse/CASSANDRA-7667?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083022#comment-14083022 ] Brandon Williams commented on CASSANDRA-7667: - bq. Intention for this was that there were tickets which reported that schema agreement time increases with the number of nodes. FTR, the cause of that isn't the announcement, it's the cost of applying the updates, and not really related to number of nodes as much as number of keyspaces/tables. > Improve migration > - > > Key: CASSANDRA-7667 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7667 > Project: Cassandra > Issue Type: Improvement >Reporter: Robert Stupp > > Idea is to optimize migration especially for large clusters with multiple DCs. > > Currently {{MigrationManager.announce()}} simply broadcasts to all nodes. > > Idea is to not announce schema migration to every node. > > *Against remote DCs*: only contact a single node in each remote DC. This > could make migration faster, because network latency comes into play. And it > lowers cross-DC network requirements (since 1-to-all communication creates a > huge amount of TCP connections). Drawback: remote-DC-announcement must be > reliable (receiver must ACK - if it doesn't, sender must retry another node). > > *Within the local DC*: use some gossip approach - e.g. only contact N nodes > at once. Not sure about this one - it might be nice, if there are really > many (~100) nodes in one DC. But it's a bit difficult to guarantee, that all > nodes will receive the announcement without giving up the "fire-and-forget" > approach. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7665) nodetool scrub fails on system schema with UDTs
[ https://issues.apache.org/jira/browse/CASSANDRA-7665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14083010#comment-14083010 ] Tyler Hobbs commented on CASSANDRA-7665: [~yukim] I think we need a separate {{validateCellValue()}} method on {{AbstractType}} and {{TypeSerializer}}, which {{AbstractCell.validateFields()}} will call. By default, it can use the normal {{validate()}} results, but {{CollectionSerializer}} will need to override that. I don't think there are actually any problems with UDTs (or tuples), despite the name of the ticket and the initial description. > nodetool scrub fails on system schema with UDTs > --- > > Key: CASSANDRA-7665 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7665 > Project: Cassandra > Issue Type: Bug > Environment: 2.1.0-rc4 >Reporter: Jonathan Halliday >Assignee: Marcus Eriksson > Fix For: 2.1.0 > > Attachments: 0001-test.patch, 7665.txt > > > {noformat} > [apache-cassandra-2.1.0-rc4]$ bin/cqlsh > Connected to Test Cluster at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 2.1.0-rc4 | CQL spec 3.2.0 | Native protocol v3] > Use HELP for help. > cqlsh> CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1 }; > cqlsh> use test; > cqlsh:test> CREATE TYPE point_t (x double, y double); > cqlsh:test> exit > {noformat} > {noformat} > [apache-cassandra-2.1.0-rc4]$bin/nodetool scrub > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > (34135 bytes) > INFO 12:34:57 Scrub of > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > complete: 2 rows in new sstable and 0 empty (tombstoned) rows dropped > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/local-7ad54392bcdd35a684174e047860b377/system-local-ka-5-Data.db') > (12515 bytes) > WARN 12:34:57 Error reading row (stacktrace follows): > org.apache.cassandra.io.sstable.CorruptSSTableException: > org.apache.cassandra.serializers.MarshalException: Not enough bytes to read a > set > at > org.apache.cassandra.io.sstable.SSTableIdentityIterator.next(SSTableIdentityIterator.java:139) > ~[apache-cassandra-2.1.0-rc4.jar:2.1.0-rc4] > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Resolved] (CASSANDRA-7667) Improve migration
[ https://issues.apache.org/jira/browse/CASSANDRA-7667?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Stupp resolved CASSANDRA-7667. - Resolution: Not a Problem Ah - so gossip does not only help on schema agreement on node startup but also if a node "misses" the announcement. Then this idea does not make really sense ("not a problem") Intention for this was that there were tickets which reported that schema agreement time increases with the number of nodes. > Improve migration > - > > Key: CASSANDRA-7667 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7667 > Project: Cassandra > Issue Type: Improvement >Reporter: Robert Stupp > > Idea is to optimize migration especially for large clusters with multiple DCs. > > Currently {{MigrationManager.announce()}} simply broadcasts to all nodes. > > Idea is to not announce schema migration to every node. > > *Against remote DCs*: only contact a single node in each remote DC. This > could make migration faster, because network latency comes into play. And it > lowers cross-DC network requirements (since 1-to-all communication creates a > huge amount of TCP connections). Drawback: remote-DC-announcement must be > reliable (receiver must ACK - if it doesn't, sender must retry another node). > > *Within the local DC*: use some gossip approach - e.g. only contact N nodes > at once. Not sure about this one - it might be nice, if there are really > many (~100) nodes in one DC. But it's a bit difficult to guarantee, that all > nodes will receive the announcement without giving up the "fire-and-forget" > approach. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7665) nodetool scrub fails on system schema with UDTs
[ https://issues.apache.org/jira/browse/CASSANDRA-7665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita updated CASSANDRA-7665: -- Attachment: 7665.txt One posisble solution is to validate individual cell when CollectionType as in attached patch. > nodetool scrub fails on system schema with UDTs > --- > > Key: CASSANDRA-7665 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7665 > Project: Cassandra > Issue Type: Bug > Environment: 2.1.0-rc4 >Reporter: Jonathan Halliday >Assignee: Marcus Eriksson > Fix For: 2.1.0 > > Attachments: 0001-test.patch, 7665.txt > > > {noformat} > [apache-cassandra-2.1.0-rc4]$ bin/cqlsh > Connected to Test Cluster at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 2.1.0-rc4 | CQL spec 3.2.0 | Native protocol v3] > Use HELP for help. > cqlsh> CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1 }; > cqlsh> use test; > cqlsh:test> CREATE TYPE point_t (x double, y double); > cqlsh:test> exit > {noformat} > {noformat} > [apache-cassandra-2.1.0-rc4]$bin/nodetool scrub > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > (34135 bytes) > INFO 12:34:57 Scrub of > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > complete: 2 rows in new sstable and 0 empty (tombstoned) rows dropped > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/local-7ad54392bcdd35a684174e047860b377/system-local-ka-5-Data.db') > (12515 bytes) > WARN 12:34:57 Error reading row (stacktrace follows): > org.apache.cassandra.io.sstable.CorruptSSTableException: > org.apache.cassandra.serializers.MarshalException: Not enough bytes to read a > set > at > org.apache.cassandra.io.sstable.SSTableIdentityIterator.next(SSTableIdentityIterator.java:139) > ~[apache-cassandra-2.1.0-rc4.jar:2.1.0-rc4] > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7665) nodetool scrub fails on system schema with UDTs
[ https://issues.apache.org/jira/browse/CASSANDRA-7665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-7665: --- Description: {noformat} [apache-cassandra-2.1.0-rc4]$ bin/cqlsh Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 2.1.0-rc4 | CQL spec 3.2.0 | Native protocol v3] Use HELP for help. cqlsh> CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1 }; cqlsh> use test; cqlsh:test> CREATE TYPE point_t (x double, y double); cqlsh:test> exit {noformat} {noformat} [apache-cassandra-2.1.0-rc4]$bin/nodetool scrub INFO 12:34:57 Scrubbing SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') (34135 bytes) INFO 12:34:57 Scrub of SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') complete: 2 rows in new sstable and 0 empty (tombstoned) rows dropped INFO 12:34:57 Scrubbing SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/local-7ad54392bcdd35a684174e047860b377/system-local-ka-5-Data.db') (12515 bytes) WARN 12:34:57 Error reading row (stacktrace follows): org.apache.cassandra.io.sstable.CorruptSSTableException: org.apache.cassandra.serializers.MarshalException: Not enough bytes to read a set at org.apache.cassandra.io.sstable.SSTableIdentityIterator.next(SSTableIdentityIterator.java:139) ~[apache-cassandra-2.1.0-rc4.jar:2.1.0-rc4] {noformat} was: [apache-cassandra-2.1.0-rc4]$ bin/cqlsh Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 2.1.0-rc4 | CQL spec 3.2.0 | Native protocol v3] Use HELP for help. cqlsh> CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1 }; cqlsh> use test; cqlsh:test> CREATE TYPE point_t (x double, y double); cqlsh:test> exit [apache-cassandra-2.1.0-rc4]$bin/nodetool scrub INFO 12:34:57 Scrubbing SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') (34135 bytes) INFO 12:34:57 Scrub of SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') complete: 2 rows in new sstable and 0 empty (tombstoned) rows dropped INFO 12:34:57 Scrubbing SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/local-7ad54392bcdd35a684174e047860b377/system-local-ka-5-Data.db') (12515 bytes) WARN 12:34:57 Error reading row (stacktrace follows): org.apache.cassandra.io.sstable.CorruptSSTableException: org.apache.cassandra.serializers.MarshalException: Not enough bytes to read a set at org.apache.cassandra.io.sstable.SSTableIdentityIterator.next(SSTableIdentityIterator.java:139) ~[apache-cassandra-2.1.0-rc4.jar:2.1.0-rc4] > nodetool scrub fails on system schema with UDTs > --- > > Key: CASSANDRA-7665 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7665 > Project: Cassandra > Issue Type: Bug > Environment: 2.1.0-rc4 >Reporter: Jonathan Halliday >Assignee: Marcus Eriksson > Fix For: 2.1.0 > > Attachments: 0001-test.patch > > > {noformat} > [apache-cassandra-2.1.0-rc4]$ bin/cqlsh > Connected to Test Cluster at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 2.1.0-rc4 | CQL spec 3.2.0 | Native protocol v3] > Use HELP for help. > cqlsh> CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1 }; > cqlsh> use test; > cqlsh:test> CREATE TYPE point_t (x double, y double); > cqlsh:test> exit > {noformat} > {noformat} > [apache-cassandra-2.1.0-rc4]$bin/nodetool scrub > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > (34135 bytes) > INFO 12:34:57 Scrub of > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > complete: 2 rows in new sstable and 0 empty (tombstoned) rows dropped > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/local-7ad54392bcdd35a684174e047860b377/system-local-ka-5-Data.db') > (12515 bytes) > WARN 12:34:57 Error reading row (stacktrace follows): > org.apache.cassandra.io.sstable.CorruptSSTableException: > org.apache.cassandra.serializers.MarshalException: Not enough bytes to read a > set > at > org.apache.cassandra.io.sstable.SSTa
[jira] [Commented] (CASSANDRA-7667) Improve migration
[ https://issues.apache.org/jira/browse/CASSANDRA-7667?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082952#comment-14082952 ] Brandon Williams commented on CASSANDRA-7667: - I'm not sure this makes a lot of sense. Adding DC optimization like writes _might_ save on latency, but it's also adding an extra hop so maybe not, and the point of dc write optimization is bandwidth, of which little is used here and schema changes aren't that frequent. Remember that broadcast is just best effort, if it fails it doesn't matter because schema propagation is two-pronged: broadcast if possible, but also passively announce via gossip and let the other side pull. > Improve migration > - > > Key: CASSANDRA-7667 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7667 > Project: Cassandra > Issue Type: Improvement >Reporter: Robert Stupp > > Idea is to optimize migration especially for large clusters with multiple DCs. > > Currently {{MigrationManager.announce()}} simply broadcasts to all nodes. > > Idea is to not announce schema migration to every node. > > *Against remote DCs*: only contact a single node in each remote DC. This > could make migration faster, because network latency comes into play. And it > lowers cross-DC network requirements (since 1-to-all communication creates a > huge amount of TCP connections). Drawback: remote-DC-announcement must be > reliable (receiver must ACK - if it doesn't, sender must retry another node). > > *Within the local DC*: use some gossip approach - e.g. only contact N nodes > at once. Not sure about this one - it might be nice, if there are really > many (~100) nodes in one DC. But it's a bit difficult to guarantee, that all > nodes will receive the announcement without giving up the "fire-and-forget" > approach. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7638) Revisit GCInspector
[ https://issues.apache.org/jira/browse/CASSANDRA-7638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082961#comment-14082961 ] Brandon Williams commented on CASSANDRA-7638: - +1 on the v2 bikeshed, we don't need stuff like start/end when we have the duration. > Revisit GCInspector > --- > > Key: CASSANDRA-7638 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7638 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Brandon Williams >Assignee: Brandon Williams >Priority: Minor > Fix For: 2.1.0 > > Attachments: 7638-v2.txt, 7638.txt > > > In CASSANDRA-2868 we had to change the api that GCI uses to avoid the native > memory leak, but this caused GCI to be less reliable and more 'best effort' > than before where it was 100% reliable. Let's revisit this and see if the > native memory leak is fixed in java7. -- This message was sent by Atlassian JIRA (v6.2#6252)
[2/2] git commit: Merge remote-tracking branch 'origin/cassandra-2.1' into cassandra-2.1
Merge remote-tracking branch 'origin/cassandra-2.1' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4f778d2e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4f778d2e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4f778d2e Branch: refs/heads/cassandra-2.1 Commit: 4f778d2e7ec469f2b2afcdd1b5f5e8012fe6b9bd Parents: 24f6f03 3faf88c Author: Benedict Elliott Smith Authored: Fri Aug 1 21:51:01 2014 +0100 Committer: Benedict Elliott Smith Committed: Fri Aug 1 21:51:01 2014 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 10 +- 2 files changed, 6 insertions(+), 5 deletions(-) --
[1/2] git commit: Fix serialization of command ratios in cassandra-stress/stressd
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 3faf88cd0 -> 4f778d2e7 Fix serialization of command ratios in cassandra-stress/stressd patch by rspitzer; reviewed by benedict for CASSANDRA-7559 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/24f6f038 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/24f6f038 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/24f6f038 Branch: refs/heads/cassandra-2.1 Commit: 24f6f038ef88d8f8b3ef608148ae5a848b302ac5 Parents: a182ea0 Author: Benedict Elliott Smith Authored: Fri Aug 1 21:48:19 2014 +0100 Committer: Benedict Elliott Smith Committed: Fri Aug 1 21:48:19 2014 +0100 -- .../stress/settings/OptionAnyProbabilities.java| 9 +++-- .../stress/settings/OptionEnumProbabilities.java | 9 + .../settings/SettingsCommandPreDefinedMixed.java | 9 +++-- .../cassandra/stress/settings/SettingsCommandUser.java | 13 + 4 files changed, 24 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/24f6f038/tools/stress/src/org/apache/cassandra/stress/settings/OptionAnyProbabilities.java -- diff --git a/tools/stress/src/org/apache/cassandra/stress/settings/OptionAnyProbabilities.java b/tools/stress/src/org/apache/cassandra/stress/settings/OptionAnyProbabilities.java index 4e2ad64..b685294 100644 --- a/tools/stress/src/org/apache/cassandra/stress/settings/OptionAnyProbabilities.java +++ b/tools/stress/src/org/apache/cassandra/stress/settings/OptionAnyProbabilities.java @@ -27,8 +27,8 @@ import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.HashMap; -import org.apache.commons.math3.util.Pair; public final class OptionAnyProbabilities extends OptionMulti { @@ -88,12 +88,9 @@ public final class OptionAnyProbabilities extends OptionMulti return Arrays.asList(ratios); } -List> ratios() +Map ratios() { -List> ratiosOut = new ArrayList<>(); -for (Map.Entry e : ratios.options.entrySet()) -ratiosOut.add(new Pair(e.getKey(), e.getValue())); -return ratiosOut; +return ratios.options; } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/24f6f038/tools/stress/src/org/apache/cassandra/stress/settings/OptionEnumProbabilities.java -- diff --git a/tools/stress/src/org/apache/cassandra/stress/settings/OptionEnumProbabilities.java b/tools/stress/src/org/apache/cassandra/stress/settings/OptionEnumProbabilities.java index b1c5c49..71d7a8d 100644 --- a/tools/stress/src/org/apache/cassandra/stress/settings/OptionEnumProbabilities.java +++ b/tools/stress/src/org/apache/cassandra/stress/settings/OptionEnumProbabilities.java @@ -23,8 +23,9 @@ package org.apache.cassandra.stress.settings; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.HashMap; -import org.apache.commons.math3.util.Pair; public final class OptionEnumProbabilities extends OptionMulti { @@ -67,15 +68,15 @@ public final class OptionEnumProbabilities extends OptionMulti return options; } -List> ratios() +Map ratios() { List ratiosIn = setByUser() ? optionsSetByUser() : defaultOptions(); -List> ratiosOut = new ArrayList<>(); +Map ratiosOut = new HashMap<>(); for (Option opt : ratiosIn) { OptMatcher optMatcher = (OptMatcher) opt; double d = Double.parseDouble(optMatcher.value()); -ratiosOut.add(new Pair<>(optMatcher.opt, d)); +ratiosOut.put(optMatcher.opt, d); } return ratiosOut; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/24f6f038/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandPreDefinedMixed.java -- diff --git a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandPreDefinedMixed.java b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandPreDefinedMixed.java index e5d4f80..49d3c56 100644 --- a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandPreDefinedMixed.java +++ b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandPreDefinedMixed.java @@ -23,6 +23,7 @@ package org.apache.cassandra.stress.settings; import java.util.ArrayList; import java.util.List; +import java.util.Map; import org.apache.cassandra.stress.Operation; import org.apache.cassandra.stress.generate.DistributionFactory; @@ -39,7 +40,7 @@ public class SettingsCo
[2/3] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c0fc6988 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c0fc6988 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c0fc6988 Branch: refs/heads/trunk Commit: c0fc6988267aedc42ba338783128fb912c426851 Parents: 63393eb 24f6f03 Author: Benedict Elliott Smith Authored: Fri Aug 1 21:49:28 2014 +0100 Committer: Benedict Elliott Smith Committed: Fri Aug 1 21:49:28 2014 +0100 -- .../stress/settings/OptionAnyProbabilities.java| 9 +++-- .../stress/settings/OptionEnumProbabilities.java | 9 + .../settings/SettingsCommandPreDefinedMixed.java | 9 +++-- .../cassandra/stress/settings/SettingsCommandUser.java | 13 + 4 files changed, 24 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c0fc6988/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandPreDefinedMixed.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c0fc6988/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandUser.java --
[1/3] git commit: Fix serialization of command ratios in cassandra-stress/stressd
Repository: cassandra Updated Branches: refs/heads/trunk 6fad4b09f -> 37b3a2ba0 Fix serialization of command ratios in cassandra-stress/stressd patch by rspitzer; reviewed by benedict for CASSANDRA-7559 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/24f6f038 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/24f6f038 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/24f6f038 Branch: refs/heads/trunk Commit: 24f6f038ef88d8f8b3ef608148ae5a848b302ac5 Parents: a182ea0 Author: Benedict Elliott Smith Authored: Fri Aug 1 21:48:19 2014 +0100 Committer: Benedict Elliott Smith Committed: Fri Aug 1 21:48:19 2014 +0100 -- .../stress/settings/OptionAnyProbabilities.java| 9 +++-- .../stress/settings/OptionEnumProbabilities.java | 9 + .../settings/SettingsCommandPreDefinedMixed.java | 9 +++-- .../cassandra/stress/settings/SettingsCommandUser.java | 13 + 4 files changed, 24 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/24f6f038/tools/stress/src/org/apache/cassandra/stress/settings/OptionAnyProbabilities.java -- diff --git a/tools/stress/src/org/apache/cassandra/stress/settings/OptionAnyProbabilities.java b/tools/stress/src/org/apache/cassandra/stress/settings/OptionAnyProbabilities.java index 4e2ad64..b685294 100644 --- a/tools/stress/src/org/apache/cassandra/stress/settings/OptionAnyProbabilities.java +++ b/tools/stress/src/org/apache/cassandra/stress/settings/OptionAnyProbabilities.java @@ -27,8 +27,8 @@ import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.HashMap; -import org.apache.commons.math3.util.Pair; public final class OptionAnyProbabilities extends OptionMulti { @@ -88,12 +88,9 @@ public final class OptionAnyProbabilities extends OptionMulti return Arrays.asList(ratios); } -List> ratios() +Map ratios() { -List> ratiosOut = new ArrayList<>(); -for (Map.Entry e : ratios.options.entrySet()) -ratiosOut.add(new Pair(e.getKey(), e.getValue())); -return ratiosOut; +return ratios.options; } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/24f6f038/tools/stress/src/org/apache/cassandra/stress/settings/OptionEnumProbabilities.java -- diff --git a/tools/stress/src/org/apache/cassandra/stress/settings/OptionEnumProbabilities.java b/tools/stress/src/org/apache/cassandra/stress/settings/OptionEnumProbabilities.java index b1c5c49..71d7a8d 100644 --- a/tools/stress/src/org/apache/cassandra/stress/settings/OptionEnumProbabilities.java +++ b/tools/stress/src/org/apache/cassandra/stress/settings/OptionEnumProbabilities.java @@ -23,8 +23,9 @@ package org.apache.cassandra.stress.settings; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.HashMap; -import org.apache.commons.math3.util.Pair; public final class OptionEnumProbabilities extends OptionMulti { @@ -67,15 +68,15 @@ public final class OptionEnumProbabilities extends OptionMulti return options; } -List> ratios() +Map ratios() { List ratiosIn = setByUser() ? optionsSetByUser() : defaultOptions(); -List> ratiosOut = new ArrayList<>(); +Map ratiosOut = new HashMap<>(); for (Option opt : ratiosIn) { OptMatcher optMatcher = (OptMatcher) opt; double d = Double.parseDouble(optMatcher.value()); -ratiosOut.add(new Pair<>(optMatcher.opt, d)); +ratiosOut.put(optMatcher.opt, d); } return ratiosOut; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/24f6f038/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandPreDefinedMixed.java -- diff --git a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandPreDefinedMixed.java b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandPreDefinedMixed.java index e5d4f80..49d3c56 100644 --- a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandPreDefinedMixed.java +++ b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsCommandPreDefinedMixed.java @@ -23,6 +23,7 @@ package org.apache.cassandra.stress.settings; import java.util.ArrayList; import java.util.List; +import java.util.Map; import org.apache.cassandra.stress.Operation; import org.apache.cassandra.stress.generate.DistributionFactory; @@ -39,7 +40,7 @@ public class SettingsCommandPreDefinedM
[3/3] git commit: Merge branch 'trunk' of https://git-wip-us.apache.org/repos/asf/cassandra into trunk
Merge branch 'trunk' of https://git-wip-us.apache.org/repos/asf/cassandra into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/37b3a2ba Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/37b3a2ba Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/37b3a2ba Branch: refs/heads/trunk Commit: 37b3a2ba0fa0a5127e4599113609eb84a2b44240 Parents: c0fc698 6fad4b0 Author: Benedict Elliott Smith Authored: Fri Aug 1 21:50:21 2014 +0100 Committer: Benedict Elliott Smith Committed: Fri Aug 1 21:50:21 2014 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 10 +- 2 files changed, 6 insertions(+), 5 deletions(-) --
[5/5] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6fad4b09 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6fad4b09 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6fad4b09 Branch: refs/heads/trunk Commit: 6fad4b09fb9bfd58b3acdb6fc1f9f28543229d80 Parents: 63393eb 3faf88c Author: Tyler Hobbs Authored: Fri Aug 1 15:47:50 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:47:50 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 10 +- 2 files changed, 6 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6fad4b09/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6fad4b09/src/java/org/apache/cassandra/config/CFMetaData.java --
[3/5] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0
Merge branch 'cassandra-2.0' into cassandra-2.1.0 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a09e53cd Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a09e53cd Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a09e53cd Branch: refs/heads/trunk Commit: a09e53cdadb0be17ef4c27e194a387c239a532a2 Parents: a2c91d7 63a1e98 Author: Tyler Hobbs Authored: Fri Aug 1 15:46:59 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:46:59 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 10 +- 2 files changed, 6 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a09e53cd/CHANGES.txt -- diff --cc CHANGES.txt index a8299c6,68d40b0..6ab8a73 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,53 -1,11 +1,54 @@@ -2.0.10 - * Fix truncate to always flush (CASSANDRA-7511) +2.1.0-final + * Don't use strict consistency when replacing (CASSANDRA-7568) + * Fix min/max cell name collection on 2.0 SSTables with range + tombstones (CASSANDRA-7593) + * Tolerate min/max cell names of different lengths (CASSANDRA-7651) + * Filter cached results correctly (CASSANDRA-7636) + * Fix tracing on the new SEPExecutor (CASSANDRA-7644) * Remove shuffle and taketoken (CASSANDRA-7601) - * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467) - * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS (CASSANDRA-7611) - * Always merge ranges owned by a single node (CASSANDRA-6930) - * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Clean up Windows batch scripts (CASSANDRA-7619) + * Fix native protocol drop user type notification (CASSANDRA-7571) + * Give read access to system.schema_usertypes to all authenticated users + (CASSANDRA-7578) + * (cqlsh) Fix cqlsh display when zero rows are returned (CASSANDRA-7580) + * Get java version correctly when JAVA_TOOL_OPTIONS is set (CASSANDRA-7572) + * Fix NPE when dropping index from non-existent keyspace, AssertionError when + dropping non-existent index with IF EXISTS (CASSANDRA-7590) + * Fix sstablelevelresetter hang (CASSANDRA-7614) + * (cqlsh) Fix deserialization of blobs (CASSANDRA-7603) + * Use "keyspace updated" schema change message for UDT changes in v1 and + v2 protocols (CASSANDRA-7617) + * Fix tracing of range slices and secondary index lookups that are local + to the coordinator (CASSANDRA-7599) + * Set -Dcassandra.storagedir for all tool shell scripts (CASSANDRA-7587) + * Don't swap max/min col names when mutating sstable metadata (CASSANDRA-7596) + * (cqlsh) Correctly handle paged result sets (CASSANDRA-7625) + * (cqlsh) Improve waiting for a trace to complete (CASSANDRA-7626) + * Fix tracing of concurrent range slices and 2ary index queries (CASSANDRA-7626) +Merged from 2.0: ++ * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) + * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) + * Always flush on truncate (CASSANDRA-7511) * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576) + * Always merge ranges owned by a single node (CASSANDRA-6930) + * Track max/min timestamps for range tombstones (CASSANDRA-7647) + * Fix NPE when listing saved caches dir (CASSANDRA-7632) + + +2.1.0-rc4 + * Fix word count hadoop example (CASSANDRA-7200) + * Updated memtable_cleanup_threshold and memtable_flush_writers defaults + (CASSANDRA-7551) + * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505) + * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521) + * Add missing table name to DROP INDEX responses and notifications (CASSANDRA-7539) + * Bump CQL version to 3.2.0 and update CQL documentation (CASSANDRA-7527) + * Fix configuration error message when running nodetool ring (CASSANDRA-7508) + * Support conditional updates, tuple type, and the v3 protocol in cqlsh (CASSANDRA-7509) + * Handle queries on multiple secondary index types (CASSANDRA-7525) + * Fix cqlsh authentication with v3 native protocol (CASSANDRA-7564) + * Fix NPE when unknown prepared statement ID is used (CASSANDRA-7454) +Merged from 2.0: * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541) * Fix range merging when DES scores are zero (CASSANDRA-7535) * Warn when SSL certificates have expired (CASSANDRA-7528) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a09e53cd/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --cc src/java/org/apache/cassandra/config/CFMetaData.
[2/5] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0
Merge branch 'cassandra-1.2' into cassandra-2.0 Conflicts: CHANGES.txt src/java/org/apache/cassandra/config/CFMetaData.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/63a1e987 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/63a1e987 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/63a1e987 Branch: refs/heads/trunk Commit: 63a1e987f75ce9ef2c5d0ca2f35965c43ee086f7 Parents: 5c0ddfb 0dd39c6 Author: Tyler Hobbs Authored: Fri Aug 1 15:44:33 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:44:33 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 8 2 files changed, 5 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/63a1e987/CHANGES.txt -- diff --cc CHANGES.txt index a5b49c5,b60d1d9..68d40b0 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,30 -1,5 +1,31 @@@ -1.2.19 +2.0.10 + * Fix truncate to always flush (CASSANDRA-7511) + * Remove shuffle and taketoken (CASSANDRA-7601) + * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467) + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS (CASSANDRA-7611) + * Always merge ranges owned by a single node (CASSANDRA-6930) + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576) + * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541) + * Fix range merging when DES scores are zero (CASSANDRA-7535) + * Warn when SSL certificates have expired (CASSANDRA-7528) + * Workaround JVM NPE on JMX bind failure (CASSANDRA-7254) + * Fix race in FileCacheService RemovalListener (CASSANDRA-7278) + * Fix inconsistent use of consistencyForCommit that allowed LOCAL_QUORUM + operations to incorrect become full QUORUM (CASSANDRA-7345) + * Properly handle unrecognized opcodes and flags (CASSANDRA-7440) + * (Hadoop) close CqlRecordWriter clients when finished (CASSANDRA-7459) + * Make sure high level sstables get compacted (CASSANDRA-7414) + * Fix AssertionError when using empty clustering columns and static columns + (CASSANDRA-7455) + * Add inter_dc_stream_throughput_outbound_megabits_per_sec (CASSANDRA-6596) + * Add option to disable STCS in L0 (CASSANDRA-6621) + * Fix error when doing reversed queries with static columns (CASSANDRA-7490) + * Backport CASSANDRA-6747 (CASSANDRA-7560) + * Track max/min timestamps for range tombstones (CASSANDRA-7647) + * Fix NPE when listing saved caches dir (CASSANDRA-7632) +Merged from 1.2: + * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) * Set correct stream ID on responses when non-Exception Throwables are thrown while handling native protocol messages (CASSANDRA-7470) http://git-wip-us.apache.org/repos/asf/cassandra/blob/63a1e987/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --cc src/java/org/apache/cassandra/config/CFMetaData.java index 04b99e4,31e17ed..650d6c4 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@@ -89,81 -79,79 +89,81 @@@ public final class CFMetaDat public final static boolean DEFAULT_POPULATE_IO_CACHE_ON_FLUSH = false; // Note that this is the default only for user created tables -public final static String DEFAULT_COMPRESSOR = SnappyCompressor.isAvailable() ? SnappyCompressor.class.getCanonicalName() : null; - -@Deprecated -public static final CFMetaData OldStatusCf = newSystemMetadata(Table.SYSTEM_KS, SystemTable.OLD_STATUS_CF, 0, "unused", BytesType.instance, null); -@Deprecated -public static final CFMetaData OldHintsCf = newSystemMetadata(Table.SYSTEM_KS, SystemTable.OLD_HINTS_CF, 1, "unused", BytesType.instance, BytesType.instance); -@Deprecated -public static final CFMetaData OldMigrationsCf = newSystemMetadata(Table.SYSTEM_KS, DefsTable.OLD_MIGRATIONS_CF, 2, "unused", TimeUUIDType.instance, null); -@Deprecated -public static final CFMetaData OldSchemaCf = newSystemMetadata(Table.SYSTEM_KS, DefsTable.OLD_SCHEMA_CF, 3, "unused", UTF8Type.instance, null); - -public static final CFMetaData IndexCf = compile(5, "CREATE TABLE \"" + SystemTable.INDEX_CF + "\" (" -+ "table_name text," -+ "index_name text," -+ "PRIMARY KEY (t
[1/5] git commit: Set gc_grace_seconds to 7 days for system schema tables
Repository: cassandra Updated Branches: refs/heads/trunk 63393eb24 -> 6fad4b09f Set gc_grace_seconds to 7 days for system schema tables Patch by Tyler Hobbs; review by Aleksey Yeschenko for CASSANDRA-7668 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0dd39c6a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0dd39c6a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0dd39c6a Branch: refs/heads/trunk Commit: 0dd39c6a556a8e98c946855d7dc3dbfd110d1ec9 Parents: ee2ed3c Author: Tyler Hobbs Authored: Fri Aug 1 15:40:40 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:40:40 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0dd39c6a/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 0ad02c1..b60d1d9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.2.19 + * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) * Set correct stream ID on responses when non-Exception Throwables are thrown while handling native protocol messages (CASSANDRA-7470) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0dd39c6a/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java index 9e3ceb7..31e17ed 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -108,7 +108,7 @@ public final class CFMetaData + "durable_writes boolean," + "strategy_class text," + "strategy_options text" - + ") WITH COMPACT STORAGE AND COMMENT='keyspace definitions' AND gc_grace_seconds=8640"); + + ") WITH COMPACT STORAGE AND COMMENT='keyspace definitions' AND gc_grace_seconds=604800"); public static final CFMetaData SchemaColumnFamiliesCf = compile(9, "CREATE TABLE " + SystemTable.SCHEMA_COLUMNFAMILIES_CF + "(" + "keyspace_name text," @@ -137,7 +137,7 @@ public final class CFMetaData + "column_aliases text," + "compaction_strategy_options text," + "PRIMARY KEY (keyspace_name, columnfamily_name)" - + ") WITH COMMENT='ColumnFamily definitions' AND gc_grace_seconds=8640"); + + ") WITH COMMENT='ColumnFamily definitions' AND gc_grace_seconds=604800"); public static final CFMetaData SchemaColumnsCf = compile(10, "CREATE TABLE " + SystemTable.SCHEMA_COLUMNS_CF + "(" + "keyspace_name text," @@ -149,7 +149,7 @@ public final class CFMetaData + "index_name text," + "component_index int," + "PRIMARY KEY(keyspace_name, columnfamily_name, column_name)" - + ") WITH COMMENT='ColumnFamily column attributes' AND gc_grace_seconds=8640"); + + ") WITH COMMENT='ColumnFamily column attributes' AND gc_grace_seconds=604800"); public static final CFMetaData HintsCf = compile("CREATE TABLE " + SystemTable.HINTS_CF + " (" + "target_id uuid,"
[4/5] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1
Merge branch 'cassandra-2.1.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3faf88cd Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3faf88cd Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3faf88cd Branch: refs/heads/trunk Commit: 3faf88cd0769e7689561cef0a210fb14fa84aac0 Parents: a182ea0 a09e53c Author: Tyler Hobbs Authored: Fri Aug 1 15:47:23 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:47:23 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 10 +- 2 files changed, 6 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3faf88cd/CHANGES.txt --
[1/4] git commit: Set gc_grace_seconds to 7 days for system schema tables
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 a182ea00b -> 3faf88cd0 Set gc_grace_seconds to 7 days for system schema tables Patch by Tyler Hobbs; review by Aleksey Yeschenko for CASSANDRA-7668 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0dd39c6a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0dd39c6a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0dd39c6a Branch: refs/heads/cassandra-2.1 Commit: 0dd39c6a556a8e98c946855d7dc3dbfd110d1ec9 Parents: ee2ed3c Author: Tyler Hobbs Authored: Fri Aug 1 15:40:40 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:40:40 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0dd39c6a/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 0ad02c1..b60d1d9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.2.19 + * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) * Set correct stream ID on responses when non-Exception Throwables are thrown while handling native protocol messages (CASSANDRA-7470) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0dd39c6a/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java index 9e3ceb7..31e17ed 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -108,7 +108,7 @@ public final class CFMetaData + "durable_writes boolean," + "strategy_class text," + "strategy_options text" - + ") WITH COMPACT STORAGE AND COMMENT='keyspace definitions' AND gc_grace_seconds=8640"); + + ") WITH COMPACT STORAGE AND COMMENT='keyspace definitions' AND gc_grace_seconds=604800"); public static final CFMetaData SchemaColumnFamiliesCf = compile(9, "CREATE TABLE " + SystemTable.SCHEMA_COLUMNFAMILIES_CF + "(" + "keyspace_name text," @@ -137,7 +137,7 @@ public final class CFMetaData + "column_aliases text," + "compaction_strategy_options text," + "PRIMARY KEY (keyspace_name, columnfamily_name)" - + ") WITH COMMENT='ColumnFamily definitions' AND gc_grace_seconds=8640"); + + ") WITH COMMENT='ColumnFamily definitions' AND gc_grace_seconds=604800"); public static final CFMetaData SchemaColumnsCf = compile(10, "CREATE TABLE " + SystemTable.SCHEMA_COLUMNS_CF + "(" + "keyspace_name text," @@ -149,7 +149,7 @@ public final class CFMetaData + "index_name text," + "component_index int," + "PRIMARY KEY(keyspace_name, columnfamily_name, column_name)" - + ") WITH COMMENT='ColumnFamily column attributes' AND gc_grace_seconds=8640"); + + ") WITH COMMENT='ColumnFamily column attributes' AND gc_grace_seconds=604800"); public static final CFMetaData HintsCf = compile("CREATE TABLE " + SystemTable.HINTS_CF + " (" + "target_id uuid,"
[4/4] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1
Merge branch 'cassandra-2.1.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3faf88cd Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3faf88cd Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3faf88cd Branch: refs/heads/cassandra-2.1 Commit: 3faf88cd0769e7689561cef0a210fb14fa84aac0 Parents: a182ea0 a09e53c Author: Tyler Hobbs Authored: Fri Aug 1 15:47:23 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:47:23 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 10 +- 2 files changed, 6 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3faf88cd/CHANGES.txt --
[3/4] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0
Merge branch 'cassandra-2.0' into cassandra-2.1.0 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a09e53cd Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a09e53cd Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a09e53cd Branch: refs/heads/cassandra-2.1 Commit: a09e53cdadb0be17ef4c27e194a387c239a532a2 Parents: a2c91d7 63a1e98 Author: Tyler Hobbs Authored: Fri Aug 1 15:46:59 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:46:59 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 10 +- 2 files changed, 6 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a09e53cd/CHANGES.txt -- diff --cc CHANGES.txt index a8299c6,68d40b0..6ab8a73 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,53 -1,11 +1,54 @@@ -2.0.10 - * Fix truncate to always flush (CASSANDRA-7511) +2.1.0-final + * Don't use strict consistency when replacing (CASSANDRA-7568) + * Fix min/max cell name collection on 2.0 SSTables with range + tombstones (CASSANDRA-7593) + * Tolerate min/max cell names of different lengths (CASSANDRA-7651) + * Filter cached results correctly (CASSANDRA-7636) + * Fix tracing on the new SEPExecutor (CASSANDRA-7644) * Remove shuffle and taketoken (CASSANDRA-7601) - * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467) - * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS (CASSANDRA-7611) - * Always merge ranges owned by a single node (CASSANDRA-6930) - * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Clean up Windows batch scripts (CASSANDRA-7619) + * Fix native protocol drop user type notification (CASSANDRA-7571) + * Give read access to system.schema_usertypes to all authenticated users + (CASSANDRA-7578) + * (cqlsh) Fix cqlsh display when zero rows are returned (CASSANDRA-7580) + * Get java version correctly when JAVA_TOOL_OPTIONS is set (CASSANDRA-7572) + * Fix NPE when dropping index from non-existent keyspace, AssertionError when + dropping non-existent index with IF EXISTS (CASSANDRA-7590) + * Fix sstablelevelresetter hang (CASSANDRA-7614) + * (cqlsh) Fix deserialization of blobs (CASSANDRA-7603) + * Use "keyspace updated" schema change message for UDT changes in v1 and + v2 protocols (CASSANDRA-7617) + * Fix tracing of range slices and secondary index lookups that are local + to the coordinator (CASSANDRA-7599) + * Set -Dcassandra.storagedir for all tool shell scripts (CASSANDRA-7587) + * Don't swap max/min col names when mutating sstable metadata (CASSANDRA-7596) + * (cqlsh) Correctly handle paged result sets (CASSANDRA-7625) + * (cqlsh) Improve waiting for a trace to complete (CASSANDRA-7626) + * Fix tracing of concurrent range slices and 2ary index queries (CASSANDRA-7626) +Merged from 2.0: ++ * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) + * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) + * Always flush on truncate (CASSANDRA-7511) * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576) + * Always merge ranges owned by a single node (CASSANDRA-6930) + * Track max/min timestamps for range tombstones (CASSANDRA-7647) + * Fix NPE when listing saved caches dir (CASSANDRA-7632) + + +2.1.0-rc4 + * Fix word count hadoop example (CASSANDRA-7200) + * Updated memtable_cleanup_threshold and memtable_flush_writers defaults + (CASSANDRA-7551) + * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505) + * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521) + * Add missing table name to DROP INDEX responses and notifications (CASSANDRA-7539) + * Bump CQL version to 3.2.0 and update CQL documentation (CASSANDRA-7527) + * Fix configuration error message when running nodetool ring (CASSANDRA-7508) + * Support conditional updates, tuple type, and the v3 protocol in cqlsh (CASSANDRA-7509) + * Handle queries on multiple secondary index types (CASSANDRA-7525) + * Fix cqlsh authentication with v3 native protocol (CASSANDRA-7564) + * Fix NPE when unknown prepared statement ID is used (CASSANDRA-7454) +Merged from 2.0: * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541) * Fix range merging when DES scores are zero (CASSANDRA-7535) * Warn when SSL certificates have expired (CASSANDRA-7528) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a09e53cd/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --cc src/java/org/apache/cassandra/config/CFM
[2/4] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0
Merge branch 'cassandra-1.2' into cassandra-2.0 Conflicts: CHANGES.txt src/java/org/apache/cassandra/config/CFMetaData.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/63a1e987 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/63a1e987 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/63a1e987 Branch: refs/heads/cassandra-2.1 Commit: 63a1e987f75ce9ef2c5d0ca2f35965c43ee086f7 Parents: 5c0ddfb 0dd39c6 Author: Tyler Hobbs Authored: Fri Aug 1 15:44:33 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:44:33 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 8 2 files changed, 5 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/63a1e987/CHANGES.txt -- diff --cc CHANGES.txt index a5b49c5,b60d1d9..68d40b0 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,30 -1,5 +1,31 @@@ -1.2.19 +2.0.10 + * Fix truncate to always flush (CASSANDRA-7511) + * Remove shuffle and taketoken (CASSANDRA-7601) + * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467) + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS (CASSANDRA-7611) + * Always merge ranges owned by a single node (CASSANDRA-6930) + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576) + * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541) + * Fix range merging when DES scores are zero (CASSANDRA-7535) + * Warn when SSL certificates have expired (CASSANDRA-7528) + * Workaround JVM NPE on JMX bind failure (CASSANDRA-7254) + * Fix race in FileCacheService RemovalListener (CASSANDRA-7278) + * Fix inconsistent use of consistencyForCommit that allowed LOCAL_QUORUM + operations to incorrect become full QUORUM (CASSANDRA-7345) + * Properly handle unrecognized opcodes and flags (CASSANDRA-7440) + * (Hadoop) close CqlRecordWriter clients when finished (CASSANDRA-7459) + * Make sure high level sstables get compacted (CASSANDRA-7414) + * Fix AssertionError when using empty clustering columns and static columns + (CASSANDRA-7455) + * Add inter_dc_stream_throughput_outbound_megabits_per_sec (CASSANDRA-6596) + * Add option to disable STCS in L0 (CASSANDRA-6621) + * Fix error when doing reversed queries with static columns (CASSANDRA-7490) + * Backport CASSANDRA-6747 (CASSANDRA-7560) + * Track max/min timestamps for range tombstones (CASSANDRA-7647) + * Fix NPE when listing saved caches dir (CASSANDRA-7632) +Merged from 1.2: + * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) * Set correct stream ID on responses when non-Exception Throwables are thrown while handling native protocol messages (CASSANDRA-7470) http://git-wip-us.apache.org/repos/asf/cassandra/blob/63a1e987/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --cc src/java/org/apache/cassandra/config/CFMetaData.java index 04b99e4,31e17ed..650d6c4 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@@ -89,81 -79,79 +89,81 @@@ public final class CFMetaDat public final static boolean DEFAULT_POPULATE_IO_CACHE_ON_FLUSH = false; // Note that this is the default only for user created tables -public final static String DEFAULT_COMPRESSOR = SnappyCompressor.isAvailable() ? SnappyCompressor.class.getCanonicalName() : null; - -@Deprecated -public static final CFMetaData OldStatusCf = newSystemMetadata(Table.SYSTEM_KS, SystemTable.OLD_STATUS_CF, 0, "unused", BytesType.instance, null); -@Deprecated -public static final CFMetaData OldHintsCf = newSystemMetadata(Table.SYSTEM_KS, SystemTable.OLD_HINTS_CF, 1, "unused", BytesType.instance, BytesType.instance); -@Deprecated -public static final CFMetaData OldMigrationsCf = newSystemMetadata(Table.SYSTEM_KS, DefsTable.OLD_MIGRATIONS_CF, 2, "unused", TimeUUIDType.instance, null); -@Deprecated -public static final CFMetaData OldSchemaCf = newSystemMetadata(Table.SYSTEM_KS, DefsTable.OLD_SCHEMA_CF, 3, "unused", UTF8Type.instance, null); - -public static final CFMetaData IndexCf = compile(5, "CREATE TABLE \"" + SystemTable.INDEX_CF + "\" (" -+ "table_name text," -+ "index_name text," -+ "PRIMARY
[1/3] git commit: Set gc_grace_seconds to 7 days for system schema tables
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1.0 a2c91d79f -> a09e53cda Set gc_grace_seconds to 7 days for system schema tables Patch by Tyler Hobbs; review by Aleksey Yeschenko for CASSANDRA-7668 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0dd39c6a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0dd39c6a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0dd39c6a Branch: refs/heads/cassandra-2.1.0 Commit: 0dd39c6a556a8e98c946855d7dc3dbfd110d1ec9 Parents: ee2ed3c Author: Tyler Hobbs Authored: Fri Aug 1 15:40:40 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:40:40 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0dd39c6a/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 0ad02c1..b60d1d9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.2.19 + * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) * Set correct stream ID on responses when non-Exception Throwables are thrown while handling native protocol messages (CASSANDRA-7470) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0dd39c6a/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java index 9e3ceb7..31e17ed 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -108,7 +108,7 @@ public final class CFMetaData + "durable_writes boolean," + "strategy_class text," + "strategy_options text" - + ") WITH COMPACT STORAGE AND COMMENT='keyspace definitions' AND gc_grace_seconds=8640"); + + ") WITH COMPACT STORAGE AND COMMENT='keyspace definitions' AND gc_grace_seconds=604800"); public static final CFMetaData SchemaColumnFamiliesCf = compile(9, "CREATE TABLE " + SystemTable.SCHEMA_COLUMNFAMILIES_CF + "(" + "keyspace_name text," @@ -137,7 +137,7 @@ public final class CFMetaData + "column_aliases text," + "compaction_strategy_options text," + "PRIMARY KEY (keyspace_name, columnfamily_name)" - + ") WITH COMMENT='ColumnFamily definitions' AND gc_grace_seconds=8640"); + + ") WITH COMMENT='ColumnFamily definitions' AND gc_grace_seconds=604800"); public static final CFMetaData SchemaColumnsCf = compile(10, "CREATE TABLE " + SystemTable.SCHEMA_COLUMNS_CF + "(" + "keyspace_name text," @@ -149,7 +149,7 @@ public final class CFMetaData + "index_name text," + "component_index int," + "PRIMARY KEY(keyspace_name, columnfamily_name, column_name)" - + ") WITH COMMENT='ColumnFamily column attributes' AND gc_grace_seconds=8640"); + + ") WITH COMMENT='ColumnFamily column attributes' AND gc_grace_seconds=604800"); public static final CFMetaData HintsCf = compile("CREATE TABLE " + SystemTable.HINTS_CF + " (" + "target_id uuid,"
[3/3] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0
Merge branch 'cassandra-2.0' into cassandra-2.1.0 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a09e53cd Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a09e53cd Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a09e53cd Branch: refs/heads/cassandra-2.1.0 Commit: a09e53cdadb0be17ef4c27e194a387c239a532a2 Parents: a2c91d7 63a1e98 Author: Tyler Hobbs Authored: Fri Aug 1 15:46:59 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:46:59 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 10 +- 2 files changed, 6 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a09e53cd/CHANGES.txt -- diff --cc CHANGES.txt index a8299c6,68d40b0..6ab8a73 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,53 -1,11 +1,54 @@@ -2.0.10 - * Fix truncate to always flush (CASSANDRA-7511) +2.1.0-final + * Don't use strict consistency when replacing (CASSANDRA-7568) + * Fix min/max cell name collection on 2.0 SSTables with range + tombstones (CASSANDRA-7593) + * Tolerate min/max cell names of different lengths (CASSANDRA-7651) + * Filter cached results correctly (CASSANDRA-7636) + * Fix tracing on the new SEPExecutor (CASSANDRA-7644) * Remove shuffle and taketoken (CASSANDRA-7601) - * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467) - * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS (CASSANDRA-7611) - * Always merge ranges owned by a single node (CASSANDRA-6930) - * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Clean up Windows batch scripts (CASSANDRA-7619) + * Fix native protocol drop user type notification (CASSANDRA-7571) + * Give read access to system.schema_usertypes to all authenticated users + (CASSANDRA-7578) + * (cqlsh) Fix cqlsh display when zero rows are returned (CASSANDRA-7580) + * Get java version correctly when JAVA_TOOL_OPTIONS is set (CASSANDRA-7572) + * Fix NPE when dropping index from non-existent keyspace, AssertionError when + dropping non-existent index with IF EXISTS (CASSANDRA-7590) + * Fix sstablelevelresetter hang (CASSANDRA-7614) + * (cqlsh) Fix deserialization of blobs (CASSANDRA-7603) + * Use "keyspace updated" schema change message for UDT changes in v1 and + v2 protocols (CASSANDRA-7617) + * Fix tracing of range slices and secondary index lookups that are local + to the coordinator (CASSANDRA-7599) + * Set -Dcassandra.storagedir for all tool shell scripts (CASSANDRA-7587) + * Don't swap max/min col names when mutating sstable metadata (CASSANDRA-7596) + * (cqlsh) Correctly handle paged result sets (CASSANDRA-7625) + * (cqlsh) Improve waiting for a trace to complete (CASSANDRA-7626) + * Fix tracing of concurrent range slices and 2ary index queries (CASSANDRA-7626) +Merged from 2.0: ++ * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) + * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) + * Always flush on truncate (CASSANDRA-7511) * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576) + * Always merge ranges owned by a single node (CASSANDRA-6930) + * Track max/min timestamps for range tombstones (CASSANDRA-7647) + * Fix NPE when listing saved caches dir (CASSANDRA-7632) + + +2.1.0-rc4 + * Fix word count hadoop example (CASSANDRA-7200) + * Updated memtable_cleanup_threshold and memtable_flush_writers defaults + (CASSANDRA-7551) + * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505) + * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521) + * Add missing table name to DROP INDEX responses and notifications (CASSANDRA-7539) + * Bump CQL version to 3.2.0 and update CQL documentation (CASSANDRA-7527) + * Fix configuration error message when running nodetool ring (CASSANDRA-7508) + * Support conditional updates, tuple type, and the v3 protocol in cqlsh (CASSANDRA-7509) + * Handle queries on multiple secondary index types (CASSANDRA-7525) + * Fix cqlsh authentication with v3 native protocol (CASSANDRA-7564) + * Fix NPE when unknown prepared statement ID is used (CASSANDRA-7454) +Merged from 2.0: * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541) * Fix range merging when DES scores are zero (CASSANDRA-7535) * Warn when SSL certificates have expired (CASSANDRA-7528) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a09e53cd/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --cc src/java/org/apache/cassandra/config/C
[2/3] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0
Merge branch 'cassandra-1.2' into cassandra-2.0 Conflicts: CHANGES.txt src/java/org/apache/cassandra/config/CFMetaData.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/63a1e987 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/63a1e987 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/63a1e987 Branch: refs/heads/cassandra-2.1.0 Commit: 63a1e987f75ce9ef2c5d0ca2f35965c43ee086f7 Parents: 5c0ddfb 0dd39c6 Author: Tyler Hobbs Authored: Fri Aug 1 15:44:33 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:44:33 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 8 2 files changed, 5 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/63a1e987/CHANGES.txt -- diff --cc CHANGES.txt index a5b49c5,b60d1d9..68d40b0 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,30 -1,5 +1,31 @@@ -1.2.19 +2.0.10 + * Fix truncate to always flush (CASSANDRA-7511) + * Remove shuffle and taketoken (CASSANDRA-7601) + * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467) + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS (CASSANDRA-7611) + * Always merge ranges owned by a single node (CASSANDRA-6930) + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576) + * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541) + * Fix range merging when DES scores are zero (CASSANDRA-7535) + * Warn when SSL certificates have expired (CASSANDRA-7528) + * Workaround JVM NPE on JMX bind failure (CASSANDRA-7254) + * Fix race in FileCacheService RemovalListener (CASSANDRA-7278) + * Fix inconsistent use of consistencyForCommit that allowed LOCAL_QUORUM + operations to incorrect become full QUORUM (CASSANDRA-7345) + * Properly handle unrecognized opcodes and flags (CASSANDRA-7440) + * (Hadoop) close CqlRecordWriter clients when finished (CASSANDRA-7459) + * Make sure high level sstables get compacted (CASSANDRA-7414) + * Fix AssertionError when using empty clustering columns and static columns + (CASSANDRA-7455) + * Add inter_dc_stream_throughput_outbound_megabits_per_sec (CASSANDRA-6596) + * Add option to disable STCS in L0 (CASSANDRA-6621) + * Fix error when doing reversed queries with static columns (CASSANDRA-7490) + * Backport CASSANDRA-6747 (CASSANDRA-7560) + * Track max/min timestamps for range tombstones (CASSANDRA-7647) + * Fix NPE when listing saved caches dir (CASSANDRA-7632) +Merged from 1.2: + * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) * Set correct stream ID on responses when non-Exception Throwables are thrown while handling native protocol messages (CASSANDRA-7470) http://git-wip-us.apache.org/repos/asf/cassandra/blob/63a1e987/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --cc src/java/org/apache/cassandra/config/CFMetaData.java index 04b99e4,31e17ed..650d6c4 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@@ -89,81 -79,79 +89,81 @@@ public final class CFMetaDat public final static boolean DEFAULT_POPULATE_IO_CACHE_ON_FLUSH = false; // Note that this is the default only for user created tables -public final static String DEFAULT_COMPRESSOR = SnappyCompressor.isAvailable() ? SnappyCompressor.class.getCanonicalName() : null; - -@Deprecated -public static final CFMetaData OldStatusCf = newSystemMetadata(Table.SYSTEM_KS, SystemTable.OLD_STATUS_CF, 0, "unused", BytesType.instance, null); -@Deprecated -public static final CFMetaData OldHintsCf = newSystemMetadata(Table.SYSTEM_KS, SystemTable.OLD_HINTS_CF, 1, "unused", BytesType.instance, BytesType.instance); -@Deprecated -public static final CFMetaData OldMigrationsCf = newSystemMetadata(Table.SYSTEM_KS, DefsTable.OLD_MIGRATIONS_CF, 2, "unused", TimeUUIDType.instance, null); -@Deprecated -public static final CFMetaData OldSchemaCf = newSystemMetadata(Table.SYSTEM_KS, DefsTable.OLD_SCHEMA_CF, 3, "unused", UTF8Type.instance, null); - -public static final CFMetaData IndexCf = compile(5, "CREATE TABLE \"" + SystemTable.INDEX_CF + "\" (" -+ "table_name text," -+ "index_name text," -+ "PRIMA
[1/2] git commit: Set gc_grace_seconds to 7 days for system schema tables
Repository: cassandra Updated Branches: refs/heads/cassandra-2.0 5c0ddfbba -> 63a1e987f Set gc_grace_seconds to 7 days for system schema tables Patch by Tyler Hobbs; review by Aleksey Yeschenko for CASSANDRA-7668 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0dd39c6a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0dd39c6a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0dd39c6a Branch: refs/heads/cassandra-2.0 Commit: 0dd39c6a556a8e98c946855d7dc3dbfd110d1ec9 Parents: ee2ed3c Author: Tyler Hobbs Authored: Fri Aug 1 15:40:40 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:40:40 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0dd39c6a/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 0ad02c1..b60d1d9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.2.19 + * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) * Set correct stream ID on responses when non-Exception Throwables are thrown while handling native protocol messages (CASSANDRA-7470) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0dd39c6a/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java index 9e3ceb7..31e17ed 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -108,7 +108,7 @@ public final class CFMetaData + "durable_writes boolean," + "strategy_class text," + "strategy_options text" - + ") WITH COMPACT STORAGE AND COMMENT='keyspace definitions' AND gc_grace_seconds=8640"); + + ") WITH COMPACT STORAGE AND COMMENT='keyspace definitions' AND gc_grace_seconds=604800"); public static final CFMetaData SchemaColumnFamiliesCf = compile(9, "CREATE TABLE " + SystemTable.SCHEMA_COLUMNFAMILIES_CF + "(" + "keyspace_name text," @@ -137,7 +137,7 @@ public final class CFMetaData + "column_aliases text," + "compaction_strategy_options text," + "PRIMARY KEY (keyspace_name, columnfamily_name)" - + ") WITH COMMENT='ColumnFamily definitions' AND gc_grace_seconds=8640"); + + ") WITH COMMENT='ColumnFamily definitions' AND gc_grace_seconds=604800"); public static final CFMetaData SchemaColumnsCf = compile(10, "CREATE TABLE " + SystemTable.SCHEMA_COLUMNS_CF + "(" + "keyspace_name text," @@ -149,7 +149,7 @@ public final class CFMetaData + "index_name text," + "component_index int," + "PRIMARY KEY(keyspace_name, columnfamily_name, column_name)" - + ") WITH COMMENT='ColumnFamily column attributes' AND gc_grace_seconds=8640"); + + ") WITH COMMENT='ColumnFamily column attributes' AND gc_grace_seconds=604800"); public static final CFMetaData HintsCf = compile("CREATE TABLE " + SystemTable.HINTS_CF + " (" + "target_id uuid,"
[2/2] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0
Merge branch 'cassandra-1.2' into cassandra-2.0 Conflicts: CHANGES.txt src/java/org/apache/cassandra/config/CFMetaData.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/63a1e987 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/63a1e987 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/63a1e987 Branch: refs/heads/cassandra-2.0 Commit: 63a1e987f75ce9ef2c5d0ca2f35965c43ee086f7 Parents: 5c0ddfb 0dd39c6 Author: Tyler Hobbs Authored: Fri Aug 1 15:44:33 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:44:33 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 8 2 files changed, 5 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/63a1e987/CHANGES.txt -- diff --cc CHANGES.txt index a5b49c5,b60d1d9..68d40b0 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,30 -1,5 +1,31 @@@ -1.2.19 +2.0.10 + * Fix truncate to always flush (CASSANDRA-7511) + * Remove shuffle and taketoken (CASSANDRA-7601) + * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467) + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS (CASSANDRA-7611) + * Always merge ranges owned by a single node (CASSANDRA-6930) + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576) + * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541) + * Fix range merging when DES scores are zero (CASSANDRA-7535) + * Warn when SSL certificates have expired (CASSANDRA-7528) + * Workaround JVM NPE on JMX bind failure (CASSANDRA-7254) + * Fix race in FileCacheService RemovalListener (CASSANDRA-7278) + * Fix inconsistent use of consistencyForCommit that allowed LOCAL_QUORUM + operations to incorrect become full QUORUM (CASSANDRA-7345) + * Properly handle unrecognized opcodes and flags (CASSANDRA-7440) + * (Hadoop) close CqlRecordWriter clients when finished (CASSANDRA-7459) + * Make sure high level sstables get compacted (CASSANDRA-7414) + * Fix AssertionError when using empty clustering columns and static columns + (CASSANDRA-7455) + * Add inter_dc_stream_throughput_outbound_megabits_per_sec (CASSANDRA-6596) + * Add option to disable STCS in L0 (CASSANDRA-6621) + * Fix error when doing reversed queries with static columns (CASSANDRA-7490) + * Backport CASSANDRA-6747 (CASSANDRA-7560) + * Track max/min timestamps for range tombstones (CASSANDRA-7647) + * Fix NPE when listing saved caches dir (CASSANDRA-7632) +Merged from 1.2: + * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) * Set correct stream ID on responses when non-Exception Throwables are thrown while handling native protocol messages (CASSANDRA-7470) http://git-wip-us.apache.org/repos/asf/cassandra/blob/63a1e987/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --cc src/java/org/apache/cassandra/config/CFMetaData.java index 04b99e4,31e17ed..650d6c4 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@@ -89,81 -79,79 +89,81 @@@ public final class CFMetaDat public final static boolean DEFAULT_POPULATE_IO_CACHE_ON_FLUSH = false; // Note that this is the default only for user created tables -public final static String DEFAULT_COMPRESSOR = SnappyCompressor.isAvailable() ? SnappyCompressor.class.getCanonicalName() : null; - -@Deprecated -public static final CFMetaData OldStatusCf = newSystemMetadata(Table.SYSTEM_KS, SystemTable.OLD_STATUS_CF, 0, "unused", BytesType.instance, null); -@Deprecated -public static final CFMetaData OldHintsCf = newSystemMetadata(Table.SYSTEM_KS, SystemTable.OLD_HINTS_CF, 1, "unused", BytesType.instance, BytesType.instance); -@Deprecated -public static final CFMetaData OldMigrationsCf = newSystemMetadata(Table.SYSTEM_KS, DefsTable.OLD_MIGRATIONS_CF, 2, "unused", TimeUUIDType.instance, null); -@Deprecated -public static final CFMetaData OldSchemaCf = newSystemMetadata(Table.SYSTEM_KS, DefsTable.OLD_SCHEMA_CF, 3, "unused", UTF8Type.instance, null); - -public static final CFMetaData IndexCf = compile(5, "CREATE TABLE \"" + SystemTable.INDEX_CF + "\" (" -+ "table_name text," -+ "index_name text," -+ "PRIMARY
[jira] [Comment Edited] (CASSANDRA-7665) nodetool scrub fails on system schema with UDTs
[ https://issues.apache.org/jira/browse/CASSANDRA-7665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082870#comment-14082870 ] Yuki Morishita edited comment on CASSANDRA-7665 at 8/1/14 8:42 PM: --- It looks to me that the problem is CollectionType always validates value in native protocol format(CASSANDRA-7208), while scrub wants to validate on disk format through SSTableIdentityIterator. Prior to CASSANDRA-7208, -validation on collection was no-op.- edit: Actually. CollectionType's validate was for validating its content using that value's type. Post CASSANDRA-7208, it is changed to validate whole collection. [~thobbs] Any idea how we can fix this? was (Author: yukim): It looks to me that the problem is CollectionType always validates value in native protocol format(CASSANDRA-7208), while scrub wants to validate on disk format through SSTableIdentityIterator. Prior to CASSANDRA-7208, validation on collection was no-op. [~thobbs] Any idea how we can fix this? > nodetool scrub fails on system schema with UDTs > --- > > Key: CASSANDRA-7665 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7665 > Project: Cassandra > Issue Type: Bug > Environment: 2.1.0-rc4 >Reporter: Jonathan Halliday >Assignee: Marcus Eriksson > Fix For: 2.1.0 > > Attachments: 0001-test.patch > > > [apache-cassandra-2.1.0-rc4]$ bin/cqlsh > Connected to Test Cluster at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 2.1.0-rc4 | CQL spec 3.2.0 | Native protocol v3] > Use HELP for help. > cqlsh> CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1 }; > cqlsh> use test; > cqlsh:test> CREATE TYPE point_t (x double, y double); > cqlsh:test> exit > [apache-cassandra-2.1.0-rc4]$bin/nodetool scrub > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > (34135 bytes) > INFO 12:34:57 Scrub of > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > complete: 2 rows in new sstable and 0 empty (tombstoned) rows dropped > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/local-7ad54392bcdd35a684174e047860b377/system-local-ka-5-Data.db') > (12515 bytes) > WARN 12:34:57 Error reading row (stacktrace follows): > org.apache.cassandra.io.sstable.CorruptSSTableException: > org.apache.cassandra.serializers.MarshalException: Not enough bytes to read a > set > at > org.apache.cassandra.io.sstable.SSTableIdentityIterator.next(SSTableIdentityIterator.java:139) > ~[apache-cassandra-2.1.0-rc4.jar:2.1.0-rc4] -- This message was sent by Atlassian JIRA (v6.2#6252)
git commit: Set gc_grace_seconds to 7 days for system schema tables
Repository: cassandra Updated Branches: refs/heads/cassandra-1.2 ee2ed3c81 -> 0dd39c6a5 Set gc_grace_seconds to 7 days for system schema tables Patch by Tyler Hobbs; review by Aleksey Yeschenko for CASSANDRA-7668 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0dd39c6a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0dd39c6a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0dd39c6a Branch: refs/heads/cassandra-1.2 Commit: 0dd39c6a556a8e98c946855d7dc3dbfd110d1ec9 Parents: ee2ed3c Author: Tyler Hobbs Authored: Fri Aug 1 15:40:40 2014 -0500 Committer: Tyler Hobbs Committed: Fri Aug 1 15:40:40 2014 -0500 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0dd39c6a/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 0ad02c1..b60d1d9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.2.19 + * Set gc_grace_seconds to seven days for system schema tables (CASSANDRA-7668) * SimpleSeedProvider no longer caches seeds forever (CASSANDRA-7663) * Set correct stream ID on responses when non-Exception Throwables are thrown while handling native protocol messages (CASSANDRA-7470) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0dd39c6a/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java index 9e3ceb7..31e17ed 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -108,7 +108,7 @@ public final class CFMetaData + "durable_writes boolean," + "strategy_class text," + "strategy_options text" - + ") WITH COMPACT STORAGE AND COMMENT='keyspace definitions' AND gc_grace_seconds=8640"); + + ") WITH COMPACT STORAGE AND COMMENT='keyspace definitions' AND gc_grace_seconds=604800"); public static final CFMetaData SchemaColumnFamiliesCf = compile(9, "CREATE TABLE " + SystemTable.SCHEMA_COLUMNFAMILIES_CF + "(" + "keyspace_name text," @@ -137,7 +137,7 @@ public final class CFMetaData + "column_aliases text," + "compaction_strategy_options text," + "PRIMARY KEY (keyspace_name, columnfamily_name)" - + ") WITH COMMENT='ColumnFamily definitions' AND gc_grace_seconds=8640"); + + ") WITH COMMENT='ColumnFamily definitions' AND gc_grace_seconds=604800"); public static final CFMetaData SchemaColumnsCf = compile(10, "CREATE TABLE " + SystemTable.SCHEMA_COLUMNS_CF + "(" + "keyspace_name text," @@ -149,7 +149,7 @@ public final class CFMetaData + "index_name text," + "component_index int," + "PRIMARY KEY(keyspace_name, columnfamily_name, column_name)" - + ") WITH COMMENT='ColumnFamily column attributes' AND gc_grace_seconds=8640"); + + ") WITH COMMENT='ColumnFamily column attributes' AND gc_grace_seconds=604800"); public static final CFMetaData HintsCf = compile("CREATE TABLE " + SystemTable.HINTS_CF + " (" + "target_id uuid,"
[3/3] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/63393eb2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/63393eb2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/63393eb2 Branch: refs/heads/trunk Commit: 63393eb2488d1bb7760f927685f1dfefd6c6558a Parents: 1e7962c a182ea0 Author: Benedict Elliott Smith Authored: Fri Aug 1 21:39:56 2014 +0100 Committer: Benedict Elliott Smith Committed: Fri Aug 1 21:39:56 2014 +0100 -- .../stress/settings/SettingsColumn.java | 31 ++-- 1 file changed, 29 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/63393eb2/tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java -- diff --cc tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java index e48b49c,4b4e0b0..ecdef29 --- a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java +++ b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java @@@ -41,10 -44,9 +44,10 @@@ public class SettingsColumn implements { public final int maxColumnsPerKey; - public transient final List names; + public transient List names; public final List namestrs; public final String comparator; +public final String timestamp; public final boolean variableColumnCount; public final boolean slice; public final DistributionFactory sizeDistribution;
[1/3] git commit: Fix column name serialization for cassandra-stress/stressd
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 54c424d6a -> a182ea00b refs/heads/trunk 1e7962cf3 -> 63393eb24 Fix column name serialization for cassandra-stress/stressd patch by rspitzer; reviewed by benedict for CASSANDRA-7608 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a182ea00 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a182ea00 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a182ea00 Branch: refs/heads/cassandra-2.1 Commit: a182ea00ba8650c5c94ff6d0b74cb864e434504d Parents: 54c424d Author: Benedict Elliott Smith Authored: Fri Aug 1 21:37:55 2014 +0100 Committer: Benedict Elliott Smith Committed: Fri Aug 1 21:37:55 2014 +0100 -- .../stress/settings/SettingsColumn.java | 31 ++-- 1 file changed, 29 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a182ea00/tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java -- diff --git a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java index 04c2a47..4b4e0b0 100644 --- a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java +++ b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java @@ -21,7 +21,10 @@ package org.apache.cassandra.stress.settings; */ +import java.io.IOException; import java.io.Serializable; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.nio.ByteBuffer; import java.nio.charset.CharacterCodingException; import java.util.ArrayList; @@ -41,7 +44,7 @@ public class SettingsColumn implements Serializable { public final int maxColumnsPerKey; -public transient final List names; +public transient List names; public final List namestrs; public final String comparator; public final boolean variableColumnCount; @@ -130,7 +133,6 @@ public class SettingsColumn implements Serializable { throw new RuntimeException(e); } - this.names = Arrays.asList(names); this.namestrs = Arrays.asList(namestrs); } @@ -205,4 +207,29 @@ public class SettingsColumn implements Serializable } }; } + +/* Custom serializaiton invoked here to make legacy thrift based table creation work with StressD. This code requires + * the names attribute to be populated. Since the names attribute is set as a List[ByteBuffer] we switch it + * to an array on the way out and back to a buffer when it's being read in. + */ + +private void writeObject(ObjectOutputStream oos) throws IOException +{ +oos.defaultWriteObject(); +ArrayList namesBytes = new ArrayList<>(); +for (ByteBuffer buffer : this.names) +namesBytes.add(ByteBufferUtil.getArray(buffer)); +oos.writeObject(namesBytes); +} + +private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException +{ +ois.defaultReadObject(); +List namesBuffer = new ArrayList<>(); +List namesBytes = (List) ois.readObject(); +for (byte[] bytes : namesBytes) +namesBuffer.add(ByteBuffer.wrap(bytes)); +this.names = new ArrayList<>(namesBuffer); +} + }
[2/3] git commit: Fix column name serialization for cassandra-stress/stressd
Fix column name serialization for cassandra-stress/stressd patch by rspitzer; reviewed by benedict for CASSANDRA-7608 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a182ea00 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a182ea00 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a182ea00 Branch: refs/heads/trunk Commit: a182ea00ba8650c5c94ff6d0b74cb864e434504d Parents: 54c424d Author: Benedict Elliott Smith Authored: Fri Aug 1 21:37:55 2014 +0100 Committer: Benedict Elliott Smith Committed: Fri Aug 1 21:37:55 2014 +0100 -- .../stress/settings/SettingsColumn.java | 31 ++-- 1 file changed, 29 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a182ea00/tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java -- diff --git a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java index 04c2a47..4b4e0b0 100644 --- a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java +++ b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsColumn.java @@ -21,7 +21,10 @@ package org.apache.cassandra.stress.settings; */ +import java.io.IOException; import java.io.Serializable; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.nio.ByteBuffer; import java.nio.charset.CharacterCodingException; import java.util.ArrayList; @@ -41,7 +44,7 @@ public class SettingsColumn implements Serializable { public final int maxColumnsPerKey; -public transient final List names; +public transient List names; public final List namestrs; public final String comparator; public final boolean variableColumnCount; @@ -130,7 +133,6 @@ public class SettingsColumn implements Serializable { throw new RuntimeException(e); } - this.names = Arrays.asList(names); this.namestrs = Arrays.asList(namestrs); } @@ -205,4 +207,29 @@ public class SettingsColumn implements Serializable } }; } + +/* Custom serializaiton invoked here to make legacy thrift based table creation work with StressD. This code requires + * the names attribute to be populated. Since the names attribute is set as a List[ByteBuffer] we switch it + * to an array on the way out and back to a buffer when it's being read in. + */ + +private void writeObject(ObjectOutputStream oos) throws IOException +{ +oos.defaultWriteObject(); +ArrayList namesBytes = new ArrayList<>(); +for (ByteBuffer buffer : this.names) +namesBytes.add(ByteBufferUtil.getArray(buffer)); +oos.writeObject(namesBytes); +} + +private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException +{ +ois.defaultReadObject(); +List namesBuffer = new ArrayList<>(); +List namesBytes = (List) ois.readObject(); +for (byte[] bytes : namesBytes) +namesBuffer.add(ByteBuffer.wrap(bytes)); +this.names = new ArrayList<>(namesBuffer); +} + }
[jira] [Commented] (CASSANDRA-7631) Allow Stress to write directly to SSTables
[ https://issues.apache.org/jira/browse/CASSANDRA-7631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082880#comment-14082880 ] Benedict commented on CASSANDRA-7631: - I think it's a bit early for that. Let's pencil that in for 3.0. > Allow Stress to write directly to SSTables > -- > > Key: CASSANDRA-7631 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7631 > Project: Cassandra > Issue Type: Improvement > Components: Tools >Reporter: Russell Alexander Spitzer >Assignee: Russell Alexander Spitzer > > One common difficulty with benchmarking machines is the amount of time it > takes to initially load data. For machines with a large amount of ram this > becomes especially onerous because a very large amount of data needs to be > placed on the machine before page-cache can be circumvented. > To remedy this I suggest we add a top level flag to Cassandra-Stress which > would cause the tool to write directly to sstables rather than actually > performing CQL inserts. Internally this would use CQLSStable writer to write > directly to sstables while skipping any keys which are not owned by the node > stress is running on. The same stress command run on each node in the cluster > would then write unique sstables only containing data which that node is > responsible for. Following this no further network IO would be required to > distribute data as it would all already be correctly in place. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7631) Allow Stress to write directly to SSTables
[ https://issues.apache.org/jira/browse/CASSANDRA-7631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082875#comment-14082875 ] Russell Alexander Spitzer commented on CASSANDRA-7631: -- True, I was just going for completeness sake atm. Maybe we should just pull all of the legacy commands out now and replace them with example user profiles that do the same thing? > Allow Stress to write directly to SSTables > -- > > Key: CASSANDRA-7631 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7631 > Project: Cassandra > Issue Type: Improvement > Components: Tools >Reporter: Russell Alexander Spitzer >Assignee: Russell Alexander Spitzer > > One common difficulty with benchmarking machines is the amount of time it > takes to initially load data. For machines with a large amount of ram this > becomes especially onerous because a very large amount of data needs to be > placed on the machine before page-cache can be circumvented. > To remedy this I suggest we add a top level flag to Cassandra-Stress which > would cause the tool to write directly to sstables rather than actually > performing CQL inserts. Internally this would use CQLSStable writer to write > directly to sstables while skipping any keys which are not owned by the node > stress is running on. The same stress command run on each node in the cluster > would then write unique sstables only containing data which that node is > responsible for. Following this no further network IO would be required to > distribute data as it would all already be correctly in place. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7665) nodetool scrub fails on system schema with UDTs
[ https://issues.apache.org/jira/browse/CASSANDRA-7665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082870#comment-14082870 ] Yuki Morishita commented on CASSANDRA-7665: --- It looks to me that the problem is CollectionType always validates value in native protocol format(CASSANDRA-7208), while scrub wants to validate on disk format through SSTableIdentityIterator. Prior to CASSANDRA-7208, validation on collection was no-op. [~thobbs] Any idea how we can fix this? > nodetool scrub fails on system schema with UDTs > --- > > Key: CASSANDRA-7665 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7665 > Project: Cassandra > Issue Type: Bug > Environment: 2.1.0-rc4 >Reporter: Jonathan Halliday >Assignee: Marcus Eriksson > Fix For: 2.1.0 > > Attachments: 0001-test.patch > > > [apache-cassandra-2.1.0-rc4]$ bin/cqlsh > Connected to Test Cluster at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 2.1.0-rc4 | CQL spec 3.2.0 | Native protocol v3] > Use HELP for help. > cqlsh> CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1 }; > cqlsh> use test; > cqlsh:test> CREATE TYPE point_t (x double, y double); > cqlsh:test> exit > [apache-cassandra-2.1.0-rc4]$bin/nodetool scrub > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > (34135 bytes) > INFO 12:34:57 Scrub of > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/schema_columnfamilies-45f5b36024bc3f83a3631034ea4fa697/system-schema_columnfamilies-ka-1-Data.db') > complete: 2 rows in new sstable and 0 empty (tombstoned) rows dropped > INFO 12:34:57 Scrubbing > SSTableReader(path='/apache-cassandra-2.1.0-rc4/bin/../data/data/system/local-7ad54392bcdd35a684174e047860b377/system-local-ka-5-Data.db') > (12515 bytes) > WARN 12:34:57 Error reading row (stacktrace follows): > org.apache.cassandra.io.sstable.CorruptSSTableException: > org.apache.cassandra.serializers.MarshalException: Not enough bytes to read a > set > at > org.apache.cassandra.io.sstable.SSTableIdentityIterator.next(SSTableIdentityIterator.java:139) > ~[apache-cassandra-2.1.0-rc4.jar:2.1.0-rc4] -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7631) Allow Stress to write directly to SSTables
[ https://issues.apache.org/jira/browse/CASSANDRA-7631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082854#comment-14082854 ] Benedict commented on CASSANDRA-7631: - I'd be inclined to keep this feature for user commands only, to keep maintenance complexity down. The writing is on the wall for the legacy mode anyway, for anything other than a very quick benchmark of general server performance. I don't see a reason to build the sstables up in advance for that kind of use case. > Allow Stress to write directly to SSTables > -- > > Key: CASSANDRA-7631 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7631 > Project: Cassandra > Issue Type: Improvement > Components: Tools >Reporter: Russell Alexander Spitzer >Assignee: Russell Alexander Spitzer > > One common difficulty with benchmarking machines is the amount of time it > takes to initially load data. For machines with a large amount of ram this > becomes especially onerous because a very large amount of data needs to be > placed on the machine before page-cache can be circumvented. > To remedy this I suggest we add a top level flag to Cassandra-Stress which > would cause the tool to write directly to sstables rather than actually > performing CQL inserts. Internally this would use CQLSStable writer to write > directly to sstables while skipping any keys which are not owned by the node > stress is running on. The same stress command run on each node in the cluster > would then write unique sstables only containing data which that node is > responsible for. Following this no further network IO would be required to > distribute data as it would all already be correctly in place. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7668) Make gc_grace_seconds 7 days for system tables
[ https://issues.apache.org/jira/browse/CASSANDRA-7668?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082842#comment-14082842 ] Aleksey Yeschenko commented on CASSANDRA-7668: -- +1 (the 2.1 patch should also include the user types table). > Make gc_grace_seconds 7 days for system tables > -- > > Key: CASSANDRA-7668 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7668 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Tyler Hobbs >Assignee: Tyler Hobbs >Priority: Minor > Fix For: 1.2.19, 2.0.10, 2.1.0 > > Attachments: 7668-1.2.txt, 7668-2.0.txt > > > The system tables have had a {{gc_grace_seconds}} of 8640 since > CASSANDRA-4018. This was probably a typo and was intended to be 10 days. In > CASSANDRA-6717 we will set gc_grace to seven days, so that would be a > reasonable value to use here. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7631) Allow Stress to write directly to SSTables
[ https://issues.apache.org/jira/browse/CASSANDRA-7631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082838#comment-14082838 ] Russell Alexander Spitzer commented on CASSANDRA-7631: -- Added another commit with the code to write legacy sstables. https://github.com/RussellSpitzer/cassandra/commit/10f7db2ad1f765bc4a7c928ade722e81c0e9b899 I'll add all the warnings and such for improper stress options next. > Allow Stress to write directly to SSTables > -- > > Key: CASSANDRA-7631 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7631 > Project: Cassandra > Issue Type: Improvement > Components: Tools >Reporter: Russell Alexander Spitzer >Assignee: Russell Alexander Spitzer > > One common difficulty with benchmarking machines is the amount of time it > takes to initially load data. For machines with a large amount of ram this > becomes especially onerous because a very large amount of data needs to be > placed on the machine before page-cache can be circumvented. > To remedy this I suggest we add a top level flag to Cassandra-Stress which > would cause the tool to write directly to sstables rather than actually > performing CQL inserts. Internally this would use CQLSStable writer to write > directly to sstables while skipping any keys which are not owned by the node > stress is running on. The same stress command run on each node in the cluster > would then write unique sstables only containing data which that node is > responsible for. Following this no further network IO would be required to > distribute data as it would all already be correctly in place. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7668) Make gc_grace_seconds 7 days for system tables
[ https://issues.apache.org/jira/browse/CASSANDRA-7668?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-7668: --- Attachment: 7668-2.0.txt 7668-1.2.txt The 2.0 patch also sets gc_grace_seconds to seven days for the Triggers table. > Make gc_grace_seconds 7 days for system tables > -- > > Key: CASSANDRA-7668 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7668 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Tyler Hobbs >Assignee: Tyler Hobbs >Priority: Minor > Fix For: 1.2.19, 2.0.10, 2.1.0 > > Attachments: 7668-1.2.txt, 7668-2.0.txt > > > The system tables have had a {{gc_grace_seconds}} of 8640 since > CASSANDRA-4018. This was probably a typo and was intended to be 10 days. In > CASSANDRA-6717 we will set gc_grace to seven days, so that would be a > reasonable value to use here. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7668) Make gc_grace_seconds 7 days for system tables
[ https://issues.apache.org/jira/browse/CASSANDRA-7668?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-7668: --- Since Version: 1.2.0 beta 1 > Make gc_grace_seconds 7 days for system tables > -- > > Key: CASSANDRA-7668 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7668 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Tyler Hobbs >Assignee: Tyler Hobbs >Priority: Minor > Fix For: 1.2.19, 2.0.10, 2.1.0 > > Attachments: 7668-1.2.txt, 7668-2.0.txt > > > The system tables have had a {{gc_grace_seconds}} of 8640 since > CASSANDRA-4018. This was probably a typo and was intended to be 10 days. In > CASSANDRA-6717 we will set gc_grace to seven days, so that would be a > reasonable value to use here. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7661) org.apache.cassandra.utils.BitSetTest fails if you don't have /usr/share/dict/words
[ https://issues.apache.org/jira/browse/CASSANDRA-7661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082835#comment-14082835 ] Joshua McKenzie commented on CASSANDRA-7661: This looks like a duplicate of CASSANDRA-7389. We want to back-port that change? > org.apache.cassandra.utils.BitSetTest fails if you don't have > /usr/share/dict/words > --- > > Key: CASSANDRA-7661 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7661 > Project: Cassandra > Issue Type: Bug > Components: Tests >Reporter: Jeremiah Jordan >Priority: Trivial > > org.apache.cassandra.utils.WordGenerator used by BitSetTests just assumes you > have the file /usr/share/dict/words on your system. If you don't it fails. > We probably shouldn't have unit tests depending on arbitrary external files. > {noformat} > [junit] Testsuite: org.apache.cassandra.utils.BitSetTest > [junit] Tests run: 4, Failures: 0, Errors: 1, Time elapsed: 2.044 sec > [junit] > [junit] Testcase: compareBitSets(org.apache.cassandra.utils.BitSetTest): > Caused an ERROR > [junit] java.io.FileNotFoundException: /usr/share/dict/words (No such > file or directory) > [junit] java.lang.RuntimeException: java.io.FileNotFoundException: > /usr/share/dict/words (No such file or directory) > [junit] at > org.apache.cassandra.utils.KeyGenerator$WordGenerator.reset(KeyGenerator.java:137) > [junit] at > org.apache.cassandra.utils.KeyGenerator$WordGenerator.(KeyGenerator.java:126) > [junit] at > org.apache.cassandra.utils.BitSetTest.compareBitSets(BitSetTest.java:50) > [junit] Caused by: java.io.FileNotFoundException: /usr/share/dict/words > (No such file or directory) > [junit] at java.io.FileInputStream.open(Native Method) > [junit] at java.io.FileInputStream.(FileInputStream.java:146) > [junit] at java.io.FileInputStream.(FileInputStream.java:101) > [junit] at > org.apache.cassandra.utils.KeyGenerator$WordGenerator.reset(KeyGenerator.java:135) > [junit] > [junit] > [junit] Test org.apache.cassandra.utils.BitSetTest FAILED > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (CASSANDRA-7668) Make gc_grace_seconds 7 days for system tables
[ https://issues.apache.org/jira/browse/CASSANDRA-7668?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-7668: --- Description: The system tables have had a {{gc_grace_seconds}} of 8640 since CASSANDRA-4018. This was probably a typo and was intended to be 10 days. In CASSANDRA-6717 we will set gc_grace to seven days, so that would be a reasonable value to use here. (was: The system tables have had a {{gc_grace_seconds}} of 8640 since CASSANDRA-4018. This was probably a typo and was intended to be 30 days. In CASSANDRA-6717 we will set gc_grace to seven days, so that would be a reasonable value to use here.) > Make gc_grace_seconds 7 days for system tables > -- > > Key: CASSANDRA-7668 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7668 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Tyler Hobbs >Assignee: Tyler Hobbs >Priority: Minor > Fix For: 1.2.19, 2.0.10, 2.1.0 > > > The system tables have had a {{gc_grace_seconds}} of 8640 since > CASSANDRA-4018. This was probably a typo and was intended to be 10 days. In > CASSANDRA-6717 we will set gc_grace to seven days, so that would be a > reasonable value to use here. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Created] (CASSANDRA-7668) Make gc_grace_seconds 7 days for system tables
Tyler Hobbs created CASSANDRA-7668: -- Summary: Make gc_grace_seconds 7 days for system tables Key: CASSANDRA-7668 URL: https://issues.apache.org/jira/browse/CASSANDRA-7668 Project: Cassandra Issue Type: Bug Components: Core Reporter: Tyler Hobbs Assignee: Tyler Hobbs Priority: Minor Fix For: 1.2.19, 2.0.10, 2.1.0 The system tables have had a {{gc_grace_seconds}} of 8640 since CASSANDRA-4018. This was probably a typo and was intended to be 30 days. In CASSANDRA-6717 we will set gc_grace to seven days, so that would be a reasonable value to use here. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Created] (CASSANDRA-7667) Improve migration
Robert Stupp created CASSANDRA-7667: --- Summary: Improve migration Key: CASSANDRA-7667 URL: https://issues.apache.org/jira/browse/CASSANDRA-7667 Project: Cassandra Issue Type: Improvement Reporter: Robert Stupp Idea is to optimize migration especially for large clusters with multiple DCs. Currently {{MigrationManager.announce()}} simply broadcasts to all nodes. Idea is to not announce schema migration to every node. *Against remote DCs*: only contact a single node in each remote DC. This could make migration faster, because network latency comes into play. And it lowers cross-DC network requirements (since 1-to-all communication creates a huge amount of TCP connections). Drawback: remote-DC-announcement must be reliable (receiver must ACK - if it doesn't, sender must retry another node). *Within the local DC*: use some gossip approach - e.g. only contact N nodes at once. Not sure about this one - it might be nice, if there are really many (~100) nodes in one DC. But it's a bit difficult to guarantee, that all nodes will receive the announcement without giving up the "fire-and-forget" approach. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CASSANDRA-7638) Revisit GCInspector
[ https://issues.apache.org/jira/browse/CASSANDRA-7638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082783#comment-14082783 ] Brandon Williams commented on CASSANDRA-7638: - bq. I think it is useful to have that there, if when there is a full GC from a ParNew "promotion failure" or CMS "concurrent mode failure" it tells you that. I agree, but it doesn't work on either 1.7.0_65-b17 or 1.8.0_11-b12 so there's not much point in having it. > Revisit GCInspector > --- > > Key: CASSANDRA-7638 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7638 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Brandon Williams >Assignee: Brandon Williams >Priority: Minor > Fix For: 2.1.0 > > Attachments: 7638-v2.txt, 7638.txt > > > In CASSANDRA-2868 we had to change the api that GCI uses to avoid the native > memory leak, but this caused GCI to be less reliable and more 'best effort' > than before where it was 100% reliable. Let's revisit this and see if the > native memory leak is fixed in java7. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Resolved] (CASSANDRA-7601) Data loss after nodetool taketoken
[ https://issues.apache.org/jira/browse/CASSANDRA-7601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Brandon Williams resolved CASSANDRA-7601. - Resolution: Fixed Fix Version/s: 1.2.19 Committed. > Data loss after nodetool taketoken > -- > > Key: CASSANDRA-7601 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7601 > Project: Cassandra > Issue Type: Bug > Components: Core, Tests > Environment: Mac OSX Mavericks. Ubuntu 14.04 >Reporter: Philip Thompson >Assignee: Brandon Williams >Priority: Minor > Fix For: 1.2.19, 2.0.10, 2.1.0 > > Attachments: 7601-1.2.txt, 7601-2.0.txt, 7601-2.1.txt, > consistent_bootstrap_test.py, taketoken.tar.gz > > > The dtest > consistent_bootstrap_test.py:TestBootstrapConsistency.consistent_reads_after_relocate_test > is failing on HEAD of the git branches 2.1 and 2.1.0. > The test performs the following actions: > - Create a cluster of 3 nodes > - Create a keyspace with RF 2 > - Take node 3 down > - Write 980 rows to node 2 with CL ONE > - Flush node 2 > - Bring node 3 back up > - Run nodetool taketoken on node 3 to transfer 80% of node 1's tokens to node > 3 > - Check for data loss > When the check for data loss is performed, only ~725 rows can be read via CL > ALL. -- This message was sent by Atlassian JIRA (v6.2#6252)