[jira] [Comment Edited] (CASSANDRA-11053) COPY FROM on large datasets: fix progress report and debug performance
[ https://issues.apache.org/jira/browse/CASSANDRA-11053?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130041#comment-15130041 ] Stefania edited comment on CASSANDRA-11053 at 2/3/16 8:47 AM: -- I've repeated the benchmark after performing the following: * Moved csv decoding from parent to worker processes * Switched to a cythonized driver installation (for cassandra-2.1 we need to use version 2.7.2). The patch is [here|https://github.com/stef1927/cassandra/tree/11053-2.1]. The set-up and raw results are in _copy_from_large_benchmark_2.txt_ attached, along with the new profiler results, _parent_profile_2.txt_ and _worker_profiles_2.txt_. The rate has increased from *35,000* to *58,000* rows per second for the 1KB test: {code}cqlsh> COPY test.test1kb FROM 'DSEBulkLoadTest/in/data1KB/*.csv'; Using 7 child processes Starting copy of test.test1kb with columns ['pkey', 'ccol', 'data']. Processed: 2048 rows; Rate: 63987 rows/s; Avg. rate: 58749 rows/s 2048 rows imported from 20 files in 5 minutes and 48.605 seconds (0 skipped). {code} The progress reporting looks much better now, because the parent process no longer spends time decoding csv data and it has therefore more time to receive data and update the progress. The parent process is fine now, even if we optimized it further it wouldn't matter since it spends most of its time receiving data (289 out of 437 seconds). The worker processes can still be improved, here is where we currently spend most of the time and what I am looking at improving: {code} ncalls tottime percall cumtime percall filename:lineno(function) 13.6063.606 432.297 432.297 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1743(run_normal) 158538 86.2370.001 245.6290.002 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1800(send_normal_batch) 161485 67.4010.000 167.5430.001 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1879(split_batches) 158538 17.6030.000 84.7180.001 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1820(convert_rows) 158538 46.3020.000 73.5770.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1874(execute_statement) 2947000 37.4700.000 61.2770.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1918(get_replica) 2947000 27.9780.000 60.1450.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1596(get_row_values) 29470009.3830.000 32.2850.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1625(get_row_partition_key_values) 8841000 21.1950.000 31.2200.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1600(convert) 2947000 20.3280.000 21.7110.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1630(serialize) 29470009.2200.000 20.4780.000 {filter} 29480.0400.000 15.5130.005 /usr/lib/python2.7/multiprocessing/queues.py:113(get) 2948 12.7700.004 12.7700.004 {method 'recv' of '_multiprocessing.Connection' objects} 8841000 11.2580.000 11.2580.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1925() 1585587.5250.000 10.0340.000 /usr/local/lib/python2.7/dist-packages/cassandra_driver-2.7.2-py2.7-linux-x86_64.egg/cassandra/io/libevreactor.py:355(push) {code} I note that 58,000 rows per second is an upper limit both locally against a single cassandra node running on the same laptop, or on an {{r3.2xlarge}} AWS instance running against a large cassandra cluster of 8 nodes running on {{i2.2xlarge}} AWS instances. So the bottleneck is still with the importer even after these initial improvements. The same is true for cassandra loader, it won't move much beyond 50,000 rows per second with the 1KB benchmark (using default parameters and a batch size of 8). {code} time ./cassandra-loader -f DSEBulkLoadTest/in/data1KB -host 172.31.16.79 -schema "test.test1kb(pkey,ccol,data)" -batchSize 8 [...] Lines Processed:20480019 Rate: 50073.39608801956 real6m50.633s user19m0.819s sys 3m25.961s {code} Is this the right command [~brianmhess]? was (Author: stefania): I've repeated the benchmark after performing the following: * Moved csv decoding from parent to worker processes * Switched to a cythonized driver installation (for cassandra-2.1 we need to use version 2.7.2). The patch is [here|https://github.com/stef1927/cassandra/tree/11053-2.1]. The set-up and raw results are in _copy_from_large_benchmark_2.txt_ attached, along with the new profiler results, _parent_profile_2.txt_ and _worker_profiles_2.txt_. The rate has increased from *35,000* to *58,000* rows per second for the 1KB test: {code}cqlsh>
[10/10] cassandra git commit: Merge branch 'cassandra-3.3' into trunk
Merge branch 'cassandra-3.3' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f1f52e7b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f1f52e7b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f1f52e7b Branch: refs/heads/trunk Commit: f1f52e7bb88116e440582090cfce615511716f49 Parents: eef0ddf 35a7194 Author: Sylvain LebresneAuthored: Wed Feb 3 12:14:22 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 12:14:22 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/DateType.java | 5 + src/java/org/apache/cassandra/db/marshal/TimeType.java | 6 -- 2 files changed, 5 insertions(+), 6 deletions(-) --
[09/10] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3
Merge branch 'cassandra-3.0' into cassandra-3.3 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/35a7194e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/35a7194e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/35a7194e Branch: refs/heads/trunk Commit: 35a7194e7fc0565768b079f49267b84338f903cb Parents: c5feeda 8cb5a20 Author: Sylvain LebresneAuthored: Wed Feb 3 12:14:16 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 12:14:16 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/DateType.java | 5 + src/java/org/apache/cassandra/db/marshal/TimeType.java | 6 -- 2 files changed, 5 insertions(+), 6 deletions(-) --
[02/10] cassandra git commit: Add comment on DateType explaining that its kept only for backward compatibility
Add comment on DateType explaining that its kept only for backward compatibility Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3ec7d8c0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3ec7d8c0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3ec7d8c0 Branch: refs/heads/cassandra-3.0 Commit: 3ec7d8c056c71b3032b1ca1d1fd07462c5091900 Parents: af2b858 Author: Sylvain LebresneAuthored: Wed Feb 3 12:08:13 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 12:08:13 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/DateType.java | 5 + src/java/org/apache/cassandra/db/marshal/TimeType.java | 6 -- 2 files changed, 5 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3ec7d8c0/src/java/org/apache/cassandra/db/marshal/DateType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/DateType.java b/src/java/org/apache/cassandra/db/marshal/DateType.java index 82ed876..5186ca8 100644 --- a/src/java/org/apache/cassandra/db/marshal/DateType.java +++ b/src/java/org/apache/cassandra/db/marshal/DateType.java @@ -31,6 +31,11 @@ import org.apache.cassandra.serializers.TimestampSerializer; import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; +/** + * This is the old version of TimestampType, but has been replaced as it wasn't comparing pre-epoch timestamps + * correctly. This is kept for backward compatibility but shouldn't be used in new code. + */ +@Deprecated public class DateType extends AbstractType { private static final Logger logger = LoggerFactory.getLogger(DateType.class); http://git-wip-us.apache.org/repos/asf/cassandra/blob/3ec7d8c0/src/java/org/apache/cassandra/db/marshal/TimeType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/TimeType.java b/src/java/org/apache/cassandra/db/marshal/TimeType.java index c241a38..86de574 100644 --- a/src/java/org/apache/cassandra/db/marshal/TimeType.java +++ b/src/java/org/apache/cassandra/db/marshal/TimeType.java @@ -52,12 +52,6 @@ public class TimeType extends AbstractType } @Override -public boolean isCompatibleWith(AbstractType previous) -{ -return super.isCompatibleWith(previous); -} - -@Override public boolean isValueCompatibleWithInternal(AbstractType otherType) { return this == otherType || otherType == LongType.instance;
[04/10] cassandra git commit: Add comment on DateType explaining that its kept only for backward compatibility
Add comment on DateType explaining that its kept only for backward compatibility Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3ec7d8c0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3ec7d8c0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3ec7d8c0 Branch: refs/heads/trunk Commit: 3ec7d8c056c71b3032b1ca1d1fd07462c5091900 Parents: af2b858 Author: Sylvain LebresneAuthored: Wed Feb 3 12:08:13 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 12:08:13 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/DateType.java | 5 + src/java/org/apache/cassandra/db/marshal/TimeType.java | 6 -- 2 files changed, 5 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3ec7d8c0/src/java/org/apache/cassandra/db/marshal/DateType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/DateType.java b/src/java/org/apache/cassandra/db/marshal/DateType.java index 82ed876..5186ca8 100644 --- a/src/java/org/apache/cassandra/db/marshal/DateType.java +++ b/src/java/org/apache/cassandra/db/marshal/DateType.java @@ -31,6 +31,11 @@ import org.apache.cassandra.serializers.TimestampSerializer; import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; +/** + * This is the old version of TimestampType, but has been replaced as it wasn't comparing pre-epoch timestamps + * correctly. This is kept for backward compatibility but shouldn't be used in new code. + */ +@Deprecated public class DateType extends AbstractType { private static final Logger logger = LoggerFactory.getLogger(DateType.class); http://git-wip-us.apache.org/repos/asf/cassandra/blob/3ec7d8c0/src/java/org/apache/cassandra/db/marshal/TimeType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/TimeType.java b/src/java/org/apache/cassandra/db/marshal/TimeType.java index c241a38..86de574 100644 --- a/src/java/org/apache/cassandra/db/marshal/TimeType.java +++ b/src/java/org/apache/cassandra/db/marshal/TimeType.java @@ -52,12 +52,6 @@ public class TimeType extends AbstractType } @Override -public boolean isCompatibleWith(AbstractType previous) -{ -return super.isCompatibleWith(previous); -} - -@Override public boolean isValueCompatibleWithInternal(AbstractType otherType) { return this == otherType || otherType == LongType.instance;
[06/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8cb5a20c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8cb5a20c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8cb5a20c Branch: refs/heads/cassandra-3.0 Commit: 8cb5a20c6f55723eb6e05e75d54230751c340db6 Parents: f51e983 3ec7d8c Author: Sylvain LebresneAuthored: Wed Feb 3 12:09:37 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 12:09:37 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/DateType.java | 5 + src/java/org/apache/cassandra/db/marshal/TimeType.java | 6 -- 2 files changed, 5 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8cb5a20c/src/java/org/apache/cassandra/db/marshal/DateType.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8cb5a20c/src/java/org/apache/cassandra/db/marshal/TimeType.java -- diff --cc src/java/org/apache/cassandra/db/marshal/TimeType.java index 780b020,86de574..8cd221e --- a/src/java/org/apache/cassandra/db/marshal/TimeType.java +++ b/src/java/org/apache/cassandra/db/marshal/TimeType.java @@@ -41,12 -46,12 +41,6 @@@ public class TimeType extends AbstractT } @Override - public boolean isCompatibleWith(AbstractType previous) -public boolean isByteOrderComparable() --{ - return super.isCompatibleWith(previous); -return true; --} -- --@Override public boolean isValueCompatibleWithInternal(AbstractType otherType) { return this == otherType || otherType == LongType.instance;
[07/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8cb5a20c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8cb5a20c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8cb5a20c Branch: refs/heads/trunk Commit: 8cb5a20c6f55723eb6e05e75d54230751c340db6 Parents: f51e983 3ec7d8c Author: Sylvain LebresneAuthored: Wed Feb 3 12:09:37 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 12:09:37 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/DateType.java | 5 + src/java/org/apache/cassandra/db/marshal/TimeType.java | 6 -- 2 files changed, 5 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8cb5a20c/src/java/org/apache/cassandra/db/marshal/DateType.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8cb5a20c/src/java/org/apache/cassandra/db/marshal/TimeType.java -- diff --cc src/java/org/apache/cassandra/db/marshal/TimeType.java index 780b020,86de574..8cd221e --- a/src/java/org/apache/cassandra/db/marshal/TimeType.java +++ b/src/java/org/apache/cassandra/db/marshal/TimeType.java @@@ -41,12 -46,12 +41,6 @@@ public class TimeType extends AbstractT } @Override - public boolean isCompatibleWith(AbstractType previous) -public boolean isByteOrderComparable() --{ - return super.isCompatibleWith(previous); -return true; --} -- --@Override public boolean isValueCompatibleWithInternal(AbstractType otherType) { return this == otherType || otherType == LongType.instance;
[08/10] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3
Merge branch 'cassandra-3.0' into cassandra-3.3 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/35a7194e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/35a7194e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/35a7194e Branch: refs/heads/cassandra-3.3 Commit: 35a7194e7fc0565768b079f49267b84338f903cb Parents: c5feeda 8cb5a20 Author: Sylvain LebresneAuthored: Wed Feb 3 12:14:16 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 12:14:16 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/DateType.java | 5 + src/java/org/apache/cassandra/db/marshal/TimeType.java | 6 -- 2 files changed, 5 insertions(+), 6 deletions(-) --
[01/10] cassandra git commit: Add comment on DateType explaining that its kept only for backward compatibility
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 af2b85842 -> 3ec7d8c05 refs/heads/cassandra-3.0 f51e98399 -> 8cb5a20c6 refs/heads/cassandra-3.3 c5feeda6a -> 35a7194e7 refs/heads/trunk eef0ddfab -> f1f52e7bb Add comment on DateType explaining that its kept only for backward compatibility Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3ec7d8c0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3ec7d8c0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3ec7d8c0 Branch: refs/heads/cassandra-2.2 Commit: 3ec7d8c056c71b3032b1ca1d1fd07462c5091900 Parents: af2b858 Author: Sylvain LebresneAuthored: Wed Feb 3 12:08:13 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 12:08:13 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/DateType.java | 5 + src/java/org/apache/cassandra/db/marshal/TimeType.java | 6 -- 2 files changed, 5 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3ec7d8c0/src/java/org/apache/cassandra/db/marshal/DateType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/DateType.java b/src/java/org/apache/cassandra/db/marshal/DateType.java index 82ed876..5186ca8 100644 --- a/src/java/org/apache/cassandra/db/marshal/DateType.java +++ b/src/java/org/apache/cassandra/db/marshal/DateType.java @@ -31,6 +31,11 @@ import org.apache.cassandra.serializers.TimestampSerializer; import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; +/** + * This is the old version of TimestampType, but has been replaced as it wasn't comparing pre-epoch timestamps + * correctly. This is kept for backward compatibility but shouldn't be used in new code. + */ +@Deprecated public class DateType extends AbstractType { private static final Logger logger = LoggerFactory.getLogger(DateType.class); http://git-wip-us.apache.org/repos/asf/cassandra/blob/3ec7d8c0/src/java/org/apache/cassandra/db/marshal/TimeType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/TimeType.java b/src/java/org/apache/cassandra/db/marshal/TimeType.java index c241a38..86de574 100644 --- a/src/java/org/apache/cassandra/db/marshal/TimeType.java +++ b/src/java/org/apache/cassandra/db/marshal/TimeType.java @@ -52,12 +52,6 @@ public class TimeType extends AbstractType } @Override -public boolean isCompatibleWith(AbstractType previous) -{ -return super.isCompatibleWith(previous); -} - -@Override public boolean isValueCompatibleWithInternal(AbstractType otherType) { return this == otherType || otherType == LongType.instance;
[jira] [Commented] (CASSANDRA-11053) COPY FROM on large datasets: fix progress report and debug performance
[ https://issues.apache.org/jira/browse/CASSANDRA-11053?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130041#comment-15130041 ] Stefania commented on CASSANDRA-11053: -- I've repeated the benchmark after performing the following: * Moved csv decoding from parent to worker processes * Switched to a cythonized driver installation (for cassandra-2.1 we need to use version 2.7.2). The patch is [here|https://github.com/stef1927/cassandra/tree/11053-2.1]. The set-up and raw results are in _copy_from_large_benchmark_2.txt_ attached, along with the new profiler results, _parent_profile_2.txt_ and _worker_profiles_2.txt_. The rate has increased from *35,000* to *58,000* rows per second for the 1KB test: {code}cqlsh> COPY test.test1kb FROM 'DSEBulkLoadTest/in/data1KB/*.csv'; Using 7 child processes Starting copy of test.test1kb with columns ['pkey', 'ccol', 'data']. Processed: 2048 rows; Rate: 63987 rows/s; Avg. rate: 58749 rows/s 2048 rows imported from 20 files in 5 minutes and 48.605 seconds (0 skipped). {code} The progress reporting looks much better now, because the parent process no longer spends time decoding csv data and it has therefore more time to receive data and update the progress. The parent process is fine, even if we optimized it further it wouldn't matter since it spends most of its time receiving data (289 out of 437 seconds). The worker processes can still be improved, here is where we currently spend most of the time and what I am looking at improving: {code} ncalls tottime percall cumtime percall filename:lineno(function) 13.6063.606 432.297 432.297 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1743(run_normal) 158538 86.2370.001 245.6290.002 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1800(send_normal_batch) 161485 67.4010.000 167.5430.001 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1879(split_batches) 158538 17.6030.000 84.7180.001 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1820(convert_rows) 158538 46.3020.000 73.5770.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1874(execute_statement) 2947000 37.4700.000 61.2770.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1918(get_replica) 2947000 27.9780.000 60.1450.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1596(get_row_values) 29470009.3830.000 32.2850.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1625(get_row_partition_key_values) 8841000 21.1950.000 31.2200.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1600(convert) 2947000 20.3280.000 21.7110.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1630(serialize) 29470009.2200.000 20.4780.000 {filter} 29480.0400.000 15.5130.005 /usr/lib/python2.7/multiprocessing/queues.py:113(get) 2948 12.7700.004 12.7700.004 {method 'recv' of '_multiprocessing.Connection' objects} 8841000 11.2580.000 11.2580.000 /data/automaton/cassandra-src/bin/../pylib/cqlshlib/copyutil.py:1925() 1585587.5250.000 10.0340.000 /usr/local/lib/python2.7/dist-packages/cassandra_driver-2.7.2-py2.7-linux-x86_64.egg/cassandra/io/libevreactor.py:355(push) {code} I note that 58,000 rows per second is an upper limit both locally against a single cassandra node running on the same laptop, or on an {{r3.2xlarge}} AWS instance running against a large cassandra cluster of 8 nodes running on {{i2.2xlarge}} AWS instances. So the bottleneck is still with the importer even after these initial improvements. The same is true for cassandra loader, it won't move much beyond 50,000 rows per second with the 1KB benchmark (using default parameters and a batch size of 8). {code} time ./cassandra-loader -f DSEBulkLoadTest/in/data1KB -host 172.31.16.79 -schema "test.test1kb(pkey,ccol,data)" -batchSize 8 [...] Lines Processed:20480019 Rate: 50073.39608801956 real6m50.633s user19m0.819s sys 3m25.961s {code} Is this the right command [~brianmhess]? > COPY FROM on large datasets: fix progress report and debug performance > -- > > Key: CASSANDRA-11053 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11053 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Stefania >Assignee: Stefania > Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x > > Attachments: copy_from_large_benchmark.txt, > copy_from_large_benchmark_2.txt, parent_profile.txt, parent_profile_2.txt, > worker_profiles.txt,
[jira] [Updated] (CASSANDRA-11053) COPY FROM on large datasets: fix progress report and debug performance
[ https://issues.apache.org/jira/browse/CASSANDRA-11053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefania updated CASSANDRA-11053: - Attachment: (was: copy_from_large_benchmark_with_latest_results.txt) > COPY FROM on large datasets: fix progress report and debug performance > -- > > Key: CASSANDRA-11053 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11053 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Stefania >Assignee: Stefania > Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x > > Attachments: copy_from_large_benchmark.txt, > copy_from_large_benchmark_2.txt, parent_profile.txt, parent_profile_2.txt, > worker_profiles.txt, worker_profiles_2.txt > > > Running COPY from on a large dataset (20G divided in 20M records) revealed > two issues: > * The progress report is incorrect, it is very slow until almost the end of > the test at which point it catches up extremely quickly. > * The performance in rows per second is similar to running smaller tests with > a smaller cluster locally (approx 35,000 rows per second). As a comparison, > cassandra-stress manages 50,000 rows per second under the same set-up, > therefore resulting 1.5 times faster. > See attached file _copy_from_large_benchmark.txt_ for the benchmark details. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11053) COPY FROM on large datasets: fix progress report and debug performance
[ https://issues.apache.org/jira/browse/CASSANDRA-11053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefania updated CASSANDRA-11053: - Attachment: copy_from_large_benchmark_2.txt > COPY FROM on large datasets: fix progress report and debug performance > -- > > Key: CASSANDRA-11053 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11053 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Stefania >Assignee: Stefania > Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x > > Attachments: copy_from_large_benchmark.txt, > copy_from_large_benchmark_2.txt, parent_profile.txt, parent_profile_2.txt, > worker_profiles.txt, worker_profiles_2.txt > > > Running COPY from on a large dataset (20G divided in 20M records) revealed > two issues: > * The progress report is incorrect, it is very slow until almost the end of > the test at which point it catches up extremely quickly. > * The performance in rows per second is similar to running smaller tests with > a smaller cluster locally (approx 35,000 rows per second). As a comparison, > cassandra-stress manages 50,000 rows per second under the same set-up, > therefore resulting 1.5 times faster. > See attached file _copy_from_large_benchmark.txt_ for the benchmark details. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11053) COPY FROM on large datasets: fix progress report and debug performance
[ https://issues.apache.org/jira/browse/CASSANDRA-11053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefania updated CASSANDRA-11053: - Attachment: (was: copy_from_large_benchmark_2.txt) > COPY FROM on large datasets: fix progress report and debug performance > -- > > Key: CASSANDRA-11053 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11053 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Stefania >Assignee: Stefania > Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x > > Attachments: copy_from_large_benchmark.txt, > copy_from_large_benchmark_2.txt, parent_profile.txt, parent_profile_2.txt, > worker_profiles.txt, worker_profiles_2.txt > > > Running COPY from on a large dataset (20G divided in 20M records) revealed > two issues: > * The progress report is incorrect, it is very slow until almost the end of > the test at which point it catches up extremely quickly. > * The performance in rows per second is similar to running smaller tests with > a smaller cluster locally (approx 35,000 rows per second). As a comparison, > cassandra-stress manages 50,000 rows per second under the same set-up, > therefore resulting 1.5 times faster. > See attached file _copy_from_large_benchmark.txt_ for the benchmark details. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11053) COPY FROM on large datasets: fix progress report and debug performance
[ https://issues.apache.org/jira/browse/CASSANDRA-11053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefania updated CASSANDRA-11053: - Attachment: copy_from_large_benchmark_2.txt > COPY FROM on large datasets: fix progress report and debug performance > -- > > Key: CASSANDRA-11053 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11053 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Stefania >Assignee: Stefania > Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x > > Attachments: copy_from_large_benchmark.txt, > copy_from_large_benchmark_2.txt, parent_profile.txt, parent_profile_2.txt, > worker_profiles.txt, worker_profiles_2.txt > > > Running COPY from on a large dataset (20G divided in 20M records) revealed > two issues: > * The progress report is incorrect, it is very slow until almost the end of > the test at which point it catches up extremely quickly. > * The performance in rows per second is similar to running smaller tests with > a smaller cluster locally (approx 35,000 rows per second). As a comparison, > cassandra-stress manages 50,000 rows per second under the same set-up, > therefore resulting 1.5 times faster. > See attached file _copy_from_large_benchmark.txt_ for the benchmark details. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-11114) Document which type conversions are allowed
Sylvain Lebresne created CASSANDRA-4: Summary: Document which type conversions are allowed Key: CASSANDRA-4 URL: https://issues.apache.org/jira/browse/CASSANDRA-4 Project: Cassandra Issue Type: Improvement Components: CQL, Documentation and Website Reporter: Sylvain Lebresne Priority: Minor We allow only some type conversion through {{ALTER TABLE}} and type casts, the ones that don't break stuff, but we don't currently document which ones those are. We should add it to http://cassandra.apache.org/doc/cql3/CQL-3.0.html. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11094) Upgrade from 1.1.0 to 1.2.19 - loss of data - convertFromDiskFormat exception
[ https://issues.apache.org/jira/browse/CASSANDRA-11094?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Hervé Toulan updated CASSANDRA-11094: - Since Version: 1.2.19 > Upgrade from 1.1.0 to 1.2.19 - loss of data - convertFromDiskFormat exception > - > > Key: CASSANDRA-11094 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11094 > Project: Cassandra > Issue Type: Bug > Components: Core, Distributed Metadata > Environment: Red Hat Enterprise Linux ES release 4 (Nahant Update 8) > 32 bits > JVM 1.6.0_20 > Previous Cassandra version 0.6.12, 1.1.0 >Reporter: Hervé Toulan > Attachments: systemN1-1.log, systemN1-2.log > > > We have lost data in (at least) one column family after the upgrade from > Cassandra 1.1 to 1.2.19. > The ring is composed by 2 nodes (N1-1 N1-2) > We upgraded first N1-1 (N1-2 still alive during upgrade) > N1-1 upgraded (N1-2 still alive - gossip restarted now) > We upgraded then N1-2 (N1-1 still alive during upgrade) > I don't see any errors in N1-1 upgrade logs, > I see error 50 minutes after the upgrade on the colum family where we thiink > we've lost data. > Find in attachment the system.logs of the 2 nodes. > Upgrade has been started the 2016-01-11 22:57:01,327 for N1-1 > Upgrade has been started the 2016-01-11 23:16:34,177 for N2-1 > The column family incriminated is > /opt/Alcatel/database/data/BNPPFortis/VoiceMail/ > Thanks for your support. > Hervé -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Assigned] (CASSANDRA-11043) Secondary indexes doesn't properly validate custom expressions
[ https://issues.apache.org/jira/browse/CASSANDRA-11043?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sam Tunnicliffe reassigned CASSANDRA-11043: --- Assignee: Sam Tunnicliffe > Secondary indexes doesn't properly validate custom expressions > -- > > Key: CASSANDRA-11043 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11043 > Project: Cassandra > Issue Type: Bug > Components: CQL, Local Write-Read Paths >Reporter: Andrés de la Peña >Assignee: Sam Tunnicliffe > Labels: 21, index, validation > Attachments: test-index.zip > > > It seems that > [CASSANDRA-7575|https://issues.apache.org/jira/browse/CASSANDRA-7575] is > broken in Cassandra 3.x. As stated in the secondary indexes' API > documentation, custom index implementations should perform any validation of > query expressions at {{Index#searcherFor(ReadCommand)}}, throwing an > {{InvalidRequestException}} if the expressions are not valid. I assume these > validation errors should produce an {{InvalidRequest}} error on cqlsh, or > raise an {{InvalidQueryException}} on Java driver. However, when > {{Index#searcherFor(ReadCommand)}} throws its {{InvalidRequestException}}, I > get this cqlsh output: > {noformat} > Traceback (most recent call last): > File "bin/cqlsh.py", line 1246, in perform_simple_statement > result = future.result() > File > "/Users/adelapena/stratio/platform/src/cassandra-3.2.1/bin/../lib/cassandra-driver-internal-only-3.0.0-6af642d.zip/cassandra-driver-3.0.0-6af642d/cassandra/cluster.py", > line 3122, in result > raise self._final_exception > ReadFailure: code=1300 [Replica(s) failed to execute read] message="Operation > failed - received 0 responses and 1 failures" info={'failures': 1, > 'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'} > {noformat} > I attach a dummy index implementation to reproduce the error: > {noformat} > CREATE KEYSPACE test with replication = {'class' : 'SimpleStrategy', > 'replication_factor' : '1' }; > CREATE TABLE test.test (id int PRIMARY KEY, value varchar); > CREATE CUSTOM INDEX test_index ON test.test() USING 'com.stratio.TestIndex'; > SELECT * FROM test.test WHERE expr(test_index,'ok'); > SELECT * FROM test.test WHERE expr(test_index,'error'); > {noformat} > This is specially problematic when using Cassandra Java Driver, because one > of these server exceptions can produce subsequent queries fail (even if they > are valid) with a no host available exception. > Maybe the validation method added with > [CASSANDRA-7575|https://issues.apache.org/jira/browse/CASSANDRA-7575] should > be restored, unless there is a way to properly manage the exception. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[03/10] cassandra git commit: Add comment on DateType explaining that its kept only for backward compatibility
Add comment on DateType explaining that its kept only for backward compatibility Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3ec7d8c0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3ec7d8c0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3ec7d8c0 Branch: refs/heads/cassandra-3.3 Commit: 3ec7d8c056c71b3032b1ca1d1fd07462c5091900 Parents: af2b858 Author: Sylvain LebresneAuthored: Wed Feb 3 12:08:13 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 12:08:13 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/DateType.java | 5 + src/java/org/apache/cassandra/db/marshal/TimeType.java | 6 -- 2 files changed, 5 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3ec7d8c0/src/java/org/apache/cassandra/db/marshal/DateType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/DateType.java b/src/java/org/apache/cassandra/db/marshal/DateType.java index 82ed876..5186ca8 100644 --- a/src/java/org/apache/cassandra/db/marshal/DateType.java +++ b/src/java/org/apache/cassandra/db/marshal/DateType.java @@ -31,6 +31,11 @@ import org.apache.cassandra.serializers.TimestampSerializer; import org.apache.cassandra.serializers.MarshalException; import org.apache.cassandra.utils.ByteBufferUtil; +/** + * This is the old version of TimestampType, but has been replaced as it wasn't comparing pre-epoch timestamps + * correctly. This is kept for backward compatibility but shouldn't be used in new code. + */ +@Deprecated public class DateType extends AbstractType { private static final Logger logger = LoggerFactory.getLogger(DateType.class); http://git-wip-us.apache.org/repos/asf/cassandra/blob/3ec7d8c0/src/java/org/apache/cassandra/db/marshal/TimeType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/TimeType.java b/src/java/org/apache/cassandra/db/marshal/TimeType.java index c241a38..86de574 100644 --- a/src/java/org/apache/cassandra/db/marshal/TimeType.java +++ b/src/java/org/apache/cassandra/db/marshal/TimeType.java @@ -52,12 +52,6 @@ public class TimeType extends AbstractType } @Override -public boolean isCompatibleWith(AbstractType previous) -{ -return super.isCompatibleWith(previous); -} - -@Override public boolean isValueCompatibleWithInternal(AbstractType otherType) { return this == otherType || otherType == LongType.instance;
[05/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8cb5a20c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8cb5a20c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8cb5a20c Branch: refs/heads/cassandra-3.3 Commit: 8cb5a20c6f55723eb6e05e75d54230751c340db6 Parents: f51e983 3ec7d8c Author: Sylvain LebresneAuthored: Wed Feb 3 12:09:37 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 12:09:37 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/DateType.java | 5 + src/java/org/apache/cassandra/db/marshal/TimeType.java | 6 -- 2 files changed, 5 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8cb5a20c/src/java/org/apache/cassandra/db/marshal/DateType.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8cb5a20c/src/java/org/apache/cassandra/db/marshal/TimeType.java -- diff --cc src/java/org/apache/cassandra/db/marshal/TimeType.java index 780b020,86de574..8cd221e --- a/src/java/org/apache/cassandra/db/marshal/TimeType.java +++ b/src/java/org/apache/cassandra/db/marshal/TimeType.java @@@ -41,12 -46,12 +41,6 @@@ public class TimeType extends AbstractT } @Override - public boolean isCompatibleWith(AbstractType previous) -public boolean isByteOrderComparable() --{ - return super.isCompatibleWith(previous); -return true; --} -- --@Override public boolean isValueCompatibleWithInternal(AbstractType otherType) { return this == otherType || otherType == LongType.instance;
[03/10] cassandra git commit: Remove unecessary override
Remove unecessary override Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/577accd8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/577accd8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/577accd8 Branch: refs/heads/cassandra-3.3 Commit: 577accd879001186fac830c3e2aa56a1a418358e Parents: 3ec7d8c Author: Sylvain LebresneAuthored: Wed Feb 3 14:24:33 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 14:24:33 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/SimpleDateType.java | 6 -- 1 file changed, 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/577accd8/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java b/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java index 6e435ee..cae9707 100644 --- a/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java +++ b/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java @@ -61,12 +61,6 @@ public class SimpleDateType extends AbstractType } @Override -public boolean isCompatibleWith(AbstractType previous) -{ -return super.isCompatibleWith(previous); -} - -@Override public boolean isValueCompatibleWithInternal(AbstractType otherType) { return this == otherType || otherType == Int32Type.instance;
[06/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/20813858 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/20813858 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/20813858 Branch: refs/heads/cassandra-3.0 Commit: 20813858297b375e1e3f7f4b09dcba2756f9c58f Parents: cb21f28 577accd Author: Sylvain LebresneAuthored: Wed Feb 3 14:24:54 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 14:24:54 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/SimpleDateType.java | 6 -- 1 file changed, 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/20813858/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java --
[01/10] cassandra git commit: Remove unecessary override
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 3ec7d8c05 -> 577accd87 refs/heads/cassandra-3.0 cb21f28ec -> 208138582 refs/heads/cassandra-3.3 d91583469 -> d7bea0091 refs/heads/trunk 00fdaf22b -> 44a5abc35 Remove unecessary override Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/577accd8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/577accd8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/577accd8 Branch: refs/heads/cassandra-2.2 Commit: 577accd879001186fac830c3e2aa56a1a418358e Parents: 3ec7d8c Author: Sylvain LebresneAuthored: Wed Feb 3 14:24:33 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 14:24:33 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/SimpleDateType.java | 6 -- 1 file changed, 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/577accd8/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java b/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java index 6e435ee..cae9707 100644 --- a/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java +++ b/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java @@ -61,12 +61,6 @@ public class SimpleDateType extends AbstractType } @Override -public boolean isCompatibleWith(AbstractType previous) -{ -return super.isCompatibleWith(previous); -} - -@Override public boolean isValueCompatibleWithInternal(AbstractType otherType) { return this == otherType || otherType == Int32Type.instance;
[04/10] cassandra git commit: Remove unecessary override
Remove unecessary override Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/577accd8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/577accd8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/577accd8 Branch: refs/heads/trunk Commit: 577accd879001186fac830c3e2aa56a1a418358e Parents: 3ec7d8c Author: Sylvain LebresneAuthored: Wed Feb 3 14:24:33 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 14:24:33 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/SimpleDateType.java | 6 -- 1 file changed, 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/577accd8/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java -- diff --git a/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java b/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java index 6e435ee..cae9707 100644 --- a/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java +++ b/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java @@ -61,12 +61,6 @@ public class SimpleDateType extends AbstractType } @Override -public boolean isCompatibleWith(AbstractType previous) -{ -return super.isCompatibleWith(previous); -} - -@Override public boolean isValueCompatibleWithInternal(AbstractType otherType) { return this == otherType || otherType == Int32Type.instance;
[07/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/20813858 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/20813858 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/20813858 Branch: refs/heads/trunk Commit: 20813858297b375e1e3f7f4b09dcba2756f9c58f Parents: cb21f28 577accd Author: Sylvain LebresneAuthored: Wed Feb 3 14:24:54 2016 +0100 Committer: Sylvain Lebresne Committed: Wed Feb 3 14:24:54 2016 +0100 -- src/java/org/apache/cassandra/db/marshal/SimpleDateType.java | 6 -- 1 file changed, 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/20813858/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java --
[jira] [Commented] (CASSANDRA-10779) Mutations do not block for completion under view lock contention
[ https://issues.apache.org/jira/browse/CASSANDRA-10779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130387#comment-15130387 ] T Jake Luciani commented on CASSANDRA-10779: Agreed the test is a non-issue +1 > Mutations do not block for completion under view lock contention > > > Key: CASSANDRA-10779 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10779 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths > Environment: Windows 7 64-bit, Cassandra v3.0.0, Java 1.8u60 >Reporter: Will Zhang >Assignee: Carl Yeksigian > Fix For: 3.0.3, 3.3 > > > Hi guys, > I encountered the following warning message when I was testing to upgrade > from v2.2.2 to v3.0.0. > It looks like a write time-out but in an uncaught exception. Could this be an > easy fix? > Log file section below. Thank you! > {code} > WARN [SharedPool-Worker-64] 2015-11-26 14:04:24,678 > AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-64,10,main]: {} > org.apache.cassandra.exceptions.WriteTimeoutException: Operation timed out - > received only 0 responses. > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:427) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:386) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Mutation.apply(Mutation.java:205) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.db.Keyspace.lambda$apply$59(Keyspace.java:435) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_60] > at > org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) > [apache-cassandra-3.0.0.jar:3.0.0] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60] > INFO [IndexSummaryManager:1] 2015-11-26 14:41:10,527 > IndexSummaryManager.java:257 - Redistributing index summaries > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Resolved] (CASSANDRA-10779) Mutations do not block for completion under view lock contention
[ https://issues.apache.org/jira/browse/CASSANDRA-10779?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Carl Yeksigian resolved CASSANDRA-10779. Resolution: Fixed Committed as [c4d83f1|https://git1-us-west.apache.org/repos/asf?p=cassandra.git;a=commit;h=c4d83f1ba31735963b451beb38a553c92145d5d4]. > Mutations do not block for completion under view lock contention > > > Key: CASSANDRA-10779 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10779 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths > Environment: Windows 7 64-bit, Cassandra v3.0.0, Java 1.8u60 >Reporter: Will Zhang >Assignee: Carl Yeksigian > Fix For: 3.0.3, 3.3 > > > Hi guys, > I encountered the following warning message when I was testing to upgrade > from v2.2.2 to v3.0.0. > It looks like a write time-out but in an uncaught exception. Could this be an > easy fix? > Log file section below. Thank you! > {code} > WARN [SharedPool-Worker-64] 2015-11-26 14:04:24,678 > AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-64,10,main]: {} > org.apache.cassandra.exceptions.WriteTimeoutException: Operation timed out - > received only 0 responses. > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:427) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:386) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Mutation.apply(Mutation.java:205) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.db.Keyspace.lambda$apply$59(Keyspace.java:435) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_60] > at > org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) > [apache-cassandra-3.0.0.jar:3.0.0] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60] > INFO [IndexSummaryManager:1] 2015-11-26 14:41:10,527 > IndexSummaryManager.java:257 - Redistributing index summaries > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
cassandra git commit: 3.0.3 release versions
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 c4d83f1ba -> 21380fc12 3.0.3 release versions Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/21380fc1 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/21380fc1 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/21380fc1 Branch: refs/heads/cassandra-3.0 Commit: 21380fc129c91bb17d27aa02378699e9d94a7ab6 Parents: c4d83f1 Author: T Jake LucianiAuthored: Wed Feb 3 08:56:26 2016 -0500 Committer: T Jake Luciani Committed: Wed Feb 3 08:56:26 2016 -0500 -- build.xml| 2 +- debian/changelog | 6 ++ 2 files changed, 7 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/21380fc1/build.xml -- diff --git a/build.xml b/build.xml index 9e8c135..f9ff00d 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ - + http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree"/> http://git-wip-us.apache.org/repos/asf/cassandra/blob/21380fc1/debian/changelog -- diff --git a/debian/changelog b/debian/changelog index f1232ab..0f3a46c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (3.0.3) unstable; urgency=medium + + * New release + + -- Jake Luciani Wed, 03 Feb 2016 08:54:57 -0500 + cassandra (3.0.1) unstable; urgency=medium * New release
[jira] [Commented] (CASSANDRA-11027) Duplicate column familiy initialization
[ https://issues.apache.org/jira/browse/CASSANDRA-11027?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130267#comment-15130267 ] Aleksey Yeschenko commented on CASSANDRA-11027: --- LGTM, though fix the comment on commit ("Make sure the keyspace is initialized and initialize the table." to remove the table part). > Duplicate column familiy initialization > --- > > Key: CASSANDRA-11027 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11027 > Project: Cassandra > Issue Type: Bug > Components: Distributed Metadata >Reporter: Sergio Bossa >Assignee: Sam Tunnicliffe > Fix For: 3.0.x, 3.x > > > Schema#addTable initializes the column family twice, as can be seen in: > https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/config/Schema.java#L605 > This doesn't seem to be right, with the second one probably being the one to > keep to avoid race conditions with looking up the cf from the schema (as > originally intended by CASSANDRA-10761?). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Reopened] (CASSANDRA-11107) rpc_address is required for native protocol
[ https://issues.apache.org/jira/browse/CASSANDRA-11107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] n0rad reopened CASSANDRA-11107: --- Reproduced In: 3.0.2, 2.2.4 (was: 2.2.4, 3.0.2) The problem is that I want to start the native protocol, but not the RPC. But the native protocol depend on rpc configuration which is not logic > rpc_address is required for native protocol > --- > > Key: CASSANDRA-11107 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11107 > Project: Cassandra > Issue Type: Bug > Components: Configuration >Reporter: n0rad >Priority: Minor > > I'm starting cassandra on a container with this /etc/hosts > {quote} > 127.0.0.1rkt-235c219a-f0dc-4958-9e03-5afe2581bbe1 localhost > ::1 rkt-235c219a-f0dc-4958-9e03-5afe2581bbe1 localhost > {quote} > I have the default configuration except : > {quote} > - seeds: "10.1.1.1" > listen_address : 10.1.1.1 > {quote} > cassandra will start listening on *127.0.0.1:9042* > if I set *rpc_address:10.1.1.1* , even if *start_rpc: false*, cassandra will > listen on 10.1.1.1 > Since rpc is not started, I assumed that *rpc_address* and > *broadcast_rpc_address* will be ignored > It took me a while to figure that. There may be something to do around this -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11107) Add {{native_transport_address}} and {{native_transport_broadcast_address}} yaml options
[ https://issues.apache.org/jira/browse/CASSANDRA-11107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-11107: - Summary: Add {{native_transport_address}} and {{native_transport_broadcast_address}} yaml options (was: rpc_address is required for native protocol) > Add {{native_transport_address}} and {{native_transport_broadcast_address}} > yaml options > > > Key: CASSANDRA-11107 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11107 > Project: Cassandra > Issue Type: Bug > Components: Configuration >Reporter: n0rad >Priority: Minor > > I'm starting cassandra on a container with this /etc/hosts > {quote} > 127.0.0.1rkt-235c219a-f0dc-4958-9e03-5afe2581bbe1 localhost > ::1 rkt-235c219a-f0dc-4958-9e03-5afe2581bbe1 localhost > {quote} > I have the default configuration except : > {quote} > - seeds: "10.1.1.1" > listen_address : 10.1.1.1 > {quote} > cassandra will start listening on *127.0.0.1:9042* > if I set *rpc_address:10.1.1.1* , even if *start_rpc: false*, cassandra will > listen on 10.1.1.1 > Since rpc is not started, I assumed that *rpc_address* and > *broadcast_rpc_address* will be ignored > It took me a while to figure that. There may be something to do around this -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11107) Add native_transport_address and native_transport_broadcast_address yaml options
[ https://issues.apache.org/jira/browse/CASSANDRA-11107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-11107: - Issue Type: Improvement (was: Bug) > Add native_transport_address and native_transport_broadcast_address yaml > options > > > Key: CASSANDRA-11107 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11107 > Project: Cassandra > Issue Type: Improvement > Components: Configuration >Reporter: n0rad >Priority: Minor > > I'm starting cassandra on a container with this /etc/hosts > {quote} > 127.0.0.1rkt-235c219a-f0dc-4958-9e03-5afe2581bbe1 localhost > ::1 rkt-235c219a-f0dc-4958-9e03-5afe2581bbe1 localhost > {quote} > I have the default configuration except : > {quote} > - seeds: "10.1.1.1" > listen_address : 10.1.1.1 > {quote} > cassandra will start listening on *127.0.0.1:9042* > if I set *rpc_address:10.1.1.1* , even if *start_rpc: false*, cassandra will > listen on 10.1.1.1 > Since rpc is not started, I assumed that *rpc_address* and > *broadcast_rpc_address* will be ignored > It took me a while to figure that. There may be something to do around this -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11107) Add native_transport_address and native_transport_broadcast_address yaml options
[ https://issues.apache.org/jira/browse/CASSANDRA-11107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-11107: - Summary: Add native_transport_address and native_transport_broadcast_address yaml options (was: Add {{native_transport_address}} and {{native_transport_broadcast_address}} yaml options) > Add native_transport_address and native_transport_broadcast_address yaml > options > > > Key: CASSANDRA-11107 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11107 > Project: Cassandra > Issue Type: Bug > Components: Configuration >Reporter: n0rad >Priority: Minor > > I'm starting cassandra on a container with this /etc/hosts > {quote} > 127.0.0.1rkt-235c219a-f0dc-4958-9e03-5afe2581bbe1 localhost > ::1 rkt-235c219a-f0dc-4958-9e03-5afe2581bbe1 localhost > {quote} > I have the default configuration except : > {quote} > - seeds: "10.1.1.1" > listen_address : 10.1.1.1 > {quote} > cassandra will start listening on *127.0.0.1:9042* > if I set *rpc_address:10.1.1.1* , even if *start_rpc: false*, cassandra will > listen on 10.1.1.1 > Since rpc is not started, I assumed that *rpc_address* and > *broadcast_rpc_address* will be ignored > It took me a while to figure that. There may be something to do around this -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11107) rpc_address is required for native protocol
[ https://issues.apache.org/jira/browse/CASSANDRA-11107?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130375#comment-15130375 ] Sylvain Lebresne commented on CASSANDRA-11107: -- It's certainly not a bug as this is well documented in the yaml (look at both the comment on {{rpc_address}} and the one on {{start_native_transport}}). Or to put it another way, you might find the naming confusing, but {{rpc_address}} is both a configuration for the thrift RPC and the native protocol server. That said, with the thrift deprecation coming in 4.0 (and so the removal of thrift rpc related options), it's probably worth transitioning to specific {{native_transport_address}} and {{native_transport_broadcast_address}}, which could default to the {{rpc_*}} ones if unset in 3.0 for backward compatibility. That's a minor improvement however so I'll update the description and type of this ticket. > rpc_address is required for native protocol > --- > > Key: CASSANDRA-11107 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11107 > Project: Cassandra > Issue Type: Bug > Components: Configuration >Reporter: n0rad >Priority: Minor > > I'm starting cassandra on a container with this /etc/hosts > {quote} > 127.0.0.1rkt-235c219a-f0dc-4958-9e03-5afe2581bbe1 localhost > ::1 rkt-235c219a-f0dc-4958-9e03-5afe2581bbe1 localhost > {quote} > I have the default configuration except : > {quote} > - seeds: "10.1.1.1" > listen_address : 10.1.1.1 > {quote} > cassandra will start listening on *127.0.0.1:9042* > if I set *rpc_address:10.1.1.1* , even if *start_rpc: false*, cassandra will > listen on 10.1.1.1 > Since rpc is not started, I assumed that *rpc_address* and > *broadcast_rpc_address* will be ignored > It took me a while to figure that. There may be something to do around this -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11106) Experiment with strategies for picking compaction candidates in LCS
[ https://issues.apache.org/jira/browse/CASSANDRA-11106?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcus Eriksson updated CASSANDRA-11106: Fix Version/s: 3.x > Experiment with strategies for picking compaction candidates in LCS > --- > > Key: CASSANDRA-11106 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11106 > Project: Cassandra > Issue Type: Improvement >Reporter: Marcus Eriksson > Labels: lcs > Fix For: 3.x > > > Ideas taken here: http://rocksdb.org/blog/2921/compaction_pri/ > Current strategy in LCS is that we keep track of the token that was last > compacted and then we start a compaction with the sstable containing the next > token (kOldestSmallestSeqFirst in the blog post above) > The rocksdb blog post above introduces a few ideas how this could be improved: > * pick the 'coldest' sstable (sstable with the oldest max timestamp) - we > want to keep the hot data (recently updated) in the lower levels to avoid > write amplification > * pick the sstable with the highest tombstone ratio, we want to get > tombstones to the top level as quickly as possible. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[3/6] cassandra git commit: Avoid double initialization of metadata for new tables
Avoid double initialization of metadata for new tables Patch by Sam Tunnicliffe; reviewed by Aleksey Yeschenko for CASSANDRA-11027 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cb21f28e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cb21f28e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cb21f28e Branch: refs/heads/trunk Commit: cb21f28ecadceaac78aba1c2de4670afc2c38daa Parents: 8cb5a20 Author: Sam TunnicliffeAuthored: Wed Jan 20 10:07:10 2016 + Committer: Sam Tunnicliffe Committed: Wed Feb 3 12:00:59 2016 + -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/Schema.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb21f28e/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index ef0da4c..6e313c3 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.3 + * Remove double initialization of newly added tables (CASSANDRA-11027) * Filter keys searcher results by target range (CASSANDRA-11104) * Fix deserialization of legacy read commands (CASSANDRA-11087) * Fix incorrect computation of deletion time in sstable metadata (CASSANDRA-11102) http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb21f28e/src/java/org/apache/cassandra/config/Schema.java -- diff --git a/src/java/org/apache/cassandra/config/Schema.java b/src/java/org/apache/cassandra/config/Schema.java index cf3f569..7ffa89e 100644 --- a/src/java/org/apache/cassandra/config/Schema.java +++ b/src/java/org/apache/cassandra/config/Schema.java @@ -606,8 +606,8 @@ public class Schema { assert getCFMetaData(cfm.ksName, cfm.cfName) == null; -// Make sure the keyspace is initialized and initialize the table. -Keyspace.open(cfm.ksName).initCf(cfm, true); +// Make sure the keyspace is initialized +Keyspace.open(cfm.ksName); // Update the keyspaces map with the updated metadata update(cfm.ksName, ks -> ks.withSwapped(ks.tables.with(cfm))); // Update the table ID <-> table name map (cfIdMap)
[1/6] cassandra git commit: Avoid double initialization of metadata for new tables
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 8cb5a20c6 -> cb21f28ec refs/heads/cassandra-3.3 35a7194e7 -> d91583469 refs/heads/trunk f1f52e7bb -> 00fdaf22b Avoid double initialization of metadata for new tables Patch by Sam Tunnicliffe; reviewed by Aleksey Yeschenko for CASSANDRA-11027 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cb21f28e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cb21f28e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cb21f28e Branch: refs/heads/cassandra-3.0 Commit: cb21f28ecadceaac78aba1c2de4670afc2c38daa Parents: 8cb5a20 Author: Sam TunnicliffeAuthored: Wed Jan 20 10:07:10 2016 + Committer: Sam Tunnicliffe Committed: Wed Feb 3 12:00:59 2016 + -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/Schema.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb21f28e/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index ef0da4c..6e313c3 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.3 + * Remove double initialization of newly added tables (CASSANDRA-11027) * Filter keys searcher results by target range (CASSANDRA-11104) * Fix deserialization of legacy read commands (CASSANDRA-11087) * Fix incorrect computation of deletion time in sstable metadata (CASSANDRA-11102) http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb21f28e/src/java/org/apache/cassandra/config/Schema.java -- diff --git a/src/java/org/apache/cassandra/config/Schema.java b/src/java/org/apache/cassandra/config/Schema.java index cf3f569..7ffa89e 100644 --- a/src/java/org/apache/cassandra/config/Schema.java +++ b/src/java/org/apache/cassandra/config/Schema.java @@ -606,8 +606,8 @@ public class Schema { assert getCFMetaData(cfm.ksName, cfm.cfName) == null; -// Make sure the keyspace is initialized and initialize the table. -Keyspace.open(cfm.ksName).initCf(cfm, true); +// Make sure the keyspace is initialized +Keyspace.open(cfm.ksName); // Update the keyspaces map with the updated metadata update(cfm.ksName, ks -> ks.withSwapped(ks.tables.with(cfm))); // Update the table ID <-> table name map (cfIdMap)
[6/6] cassandra git commit: Merge branch 'cassandra-3.3' into trunk
Merge branch 'cassandra-3.3' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/00fdaf22 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/00fdaf22 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/00fdaf22 Branch: refs/heads/trunk Commit: 00fdaf22b019fbef62999a8b575d663b01b3498c Parents: f1f52e7 d915834 Author: Sam TunnicliffeAuthored: Wed Feb 3 12:08:50 2016 + Committer: Sam Tunnicliffe Committed: Wed Feb 3 12:08:50 2016 + -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/Schema.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/00fdaf22/CHANGES.txt --
[4/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3
Merge branch 'cassandra-3.0' into cassandra-3.3 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d9158346 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d9158346 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d9158346 Branch: refs/heads/trunk Commit: d9158346943a8728d1457ca0eb015d92cfc2fa13 Parents: 35a7194 cb21f28 Author: Sam TunnicliffeAuthored: Wed Feb 3 12:03:52 2016 + Committer: Sam Tunnicliffe Committed: Wed Feb 3 12:03:52 2016 + -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/Schema.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d9158346/CHANGES.txt -- diff --cc CHANGES.txt index 5119626,6e313c3..2b67b90 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,8 -1,5 +1,9 @@@ -3.0.3 +3.3 + * Avoid infinite loop if owned range is smaller than number of + data dirs (CASSANDRA-11034) + * Avoid bootstrap hanging when existing nodes have no data to stream (CASSANDRA-11010) +Merged from 3.0: + * Remove double initialization of newly added tables (CASSANDRA-11027) * Filter keys searcher results by target range (CASSANDRA-11104) * Fix deserialization of legacy read commands (CASSANDRA-11087) * Fix incorrect computation of deletion time in sstable metadata (CASSANDRA-11102)
[5/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3
Merge branch 'cassandra-3.0' into cassandra-3.3 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d9158346 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d9158346 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d9158346 Branch: refs/heads/cassandra-3.3 Commit: d9158346943a8728d1457ca0eb015d92cfc2fa13 Parents: 35a7194 cb21f28 Author: Sam TunnicliffeAuthored: Wed Feb 3 12:03:52 2016 + Committer: Sam Tunnicliffe Committed: Wed Feb 3 12:03:52 2016 + -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/Schema.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d9158346/CHANGES.txt -- diff --cc CHANGES.txt index 5119626,6e313c3..2b67b90 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,8 -1,5 +1,9 @@@ -3.0.3 +3.3 + * Avoid infinite loop if owned range is smaller than number of + data dirs (CASSANDRA-11034) + * Avoid bootstrap hanging when existing nodes have no data to stream (CASSANDRA-11010) +Merged from 3.0: + * Remove double initialization of newly added tables (CASSANDRA-11027) * Filter keys searcher results by target range (CASSANDRA-11104) * Fix deserialization of legacy read commands (CASSANDRA-11087) * Fix incorrect computation of deletion time in sstable metadata (CASSANDRA-11102)
[2/6] cassandra git commit: Avoid double initialization of metadata for new tables
Avoid double initialization of metadata for new tables Patch by Sam Tunnicliffe; reviewed by Aleksey Yeschenko for CASSANDRA-11027 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cb21f28e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cb21f28e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cb21f28e Branch: refs/heads/cassandra-3.3 Commit: cb21f28ecadceaac78aba1c2de4670afc2c38daa Parents: 8cb5a20 Author: Sam TunnicliffeAuthored: Wed Jan 20 10:07:10 2016 + Committer: Sam Tunnicliffe Committed: Wed Feb 3 12:00:59 2016 + -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/Schema.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb21f28e/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index ef0da4c..6e313c3 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.3 + * Remove double initialization of newly added tables (CASSANDRA-11027) * Filter keys searcher results by target range (CASSANDRA-11104) * Fix deserialization of legacy read commands (CASSANDRA-11087) * Fix incorrect computation of deletion time in sstable metadata (CASSANDRA-11102) http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb21f28e/src/java/org/apache/cassandra/config/Schema.java -- diff --git a/src/java/org/apache/cassandra/config/Schema.java b/src/java/org/apache/cassandra/config/Schema.java index cf3f569..7ffa89e 100644 --- a/src/java/org/apache/cassandra/config/Schema.java +++ b/src/java/org/apache/cassandra/config/Schema.java @@ -606,8 +606,8 @@ public class Schema { assert getCFMetaData(cfm.ksName, cfm.cfName) == null; -// Make sure the keyspace is initialized and initialize the table. -Keyspace.open(cfm.ksName).initCf(cfm, true); +// Make sure the keyspace is initialized +Keyspace.open(cfm.ksName); // Update the keyspaces map with the updated metadata update(cfm.ksName, ks -> ks.withSwapped(ks.tables.with(cfm))); // Update the table ID <-> table name map (cfIdMap)
[jira] [Commented] (CASSANDRA-10721) Altering a UDT might break UDA deserialisation
[ https://issues.apache.org/jira/browse/CASSANDRA-10721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130397#comment-15130397 ] Robert Stupp commented on CASSANDRA-10721: -- Moved the {{referencesUserType}} function to {{AbstractType}}. This is now effectively a refactoring of the (replaced) {{references}} function to specifically check the user-type's name. Kicked off the CI tests for 3.0 and trunk (nothing special in 3.3 and trunk however - just a merge w/o conflicts). Can you take a look at the latest changes ([complete 3.0 diff is here|https://github.com/apache/cassandra/compare/20813858297b375e1e3f7f4b09dcba2756f9c58f...snazy:10721-udt-alter-3.0])? > Altering a UDT might break UDA deserialisation > -- > > Key: CASSANDRA-10721 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10721 > Project: Cassandra > Issue Type: Bug > Components: CQL, Distributed Metadata >Reporter: Aleksey Yeschenko >Assignee: Robert Stupp > Fix For: 3.0.x > > > CASSANDRA-10650 switched UDA's {{initcond}} serialisation in schema to its > CQL literal. This means that if any particular field is renamed in the UDT, > or of its type gets changes, we will not be able to parse initcond back. > We should either: > 1) Forbid renames and type switches in UDTs that are being used in UDAs, or > 2) Make sure we alter the UDAs in schema alongside the new UDT at all times -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-6216) Level Compaction should persist last compacted key per level
[ https://issues.apache.org/jira/browse/CASSANDRA-6216?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcus Eriksson updated CASSANDRA-6216: --- Issue Type: Sub-task (was: Improvement) Parent: CASSANDRA-11106 > Level Compaction should persist last compacted key per level > > > Key: CASSANDRA-6216 > URL: https://issues.apache.org/jira/browse/CASSANDRA-6216 > Project: Cassandra > Issue Type: Sub-task >Reporter: sankalp kohli >Assignee: sankalp kohli >Priority: Minor > Labels: compaction > Attachments: JIRA-6216.diff > > > Level compaction does not persist the last compacted key per level. This is > important for higher levels. > The sstables with higher token and in higher levels wont get a chance to > compact as the last compacted key will get reset after a restart. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11106) Experiment with strategies for picking compaction candidates in LCS
[ https://issues.apache.org/jira/browse/CASSANDRA-11106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130282#comment-15130282 ] Marcus Eriksson commented on CASSANDRA-11106: - [~kohlisankalp] true, converted it to a subtask of this since we are touching those parts here > Experiment with strategies for picking compaction candidates in LCS > --- > > Key: CASSANDRA-11106 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11106 > Project: Cassandra > Issue Type: Improvement >Reporter: Marcus Eriksson > Labels: lcs > > Ideas taken here: http://rocksdb.org/blog/2921/compaction_pri/ > Current strategy in LCS is that we keep track of the token that was last > compacted and then we start a compaction with the sstable containing the next > token (kOldestSmallestSeqFirst in the blog post above) > The rocksdb blog post above introduces a few ideas how this could be improved: > * pick the 'coldest' sstable (sstable with the oldest max timestamp) - we > want to keep the hot data (recently updated) in the lower levels to avoid > write amplification > * pick the sstable with the highest tombstone ratio, we want to get > tombstones to the top level as quickly as possible. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10779) Mutations do not block for completion under view lock contention
[ https://issues.apache.org/jira/browse/CASSANDRA-10779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130363#comment-15130363 ] Carl Yeksigian commented on CASSANDRA-10779: The test runs look good. I've opened a PR for the [dtest|https://github.com/riptano/cassandra-dtest/pull/782] to ignore that error; the test itself completed successfully. > Mutations do not block for completion under view lock contention > > > Key: CASSANDRA-10779 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10779 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths > Environment: Windows 7 64-bit, Cassandra v3.0.0, Java 1.8u60 >Reporter: Will Zhang >Assignee: Carl Yeksigian > Fix For: 3.0.3, 3.3 > > > Hi guys, > I encountered the following warning message when I was testing to upgrade > from v2.2.2 to v3.0.0. > It looks like a write time-out but in an uncaught exception. Could this be an > easy fix? > Log file section below. Thank you! > {code} > WARN [SharedPool-Worker-64] 2015-11-26 14:04:24,678 > AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-64,10,main]: {} > org.apache.cassandra.exceptions.WriteTimeoutException: Operation timed out - > received only 0 responses. > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:427) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:386) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Mutation.apply(Mutation.java:205) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.db.Keyspace.lambda$apply$59(Keyspace.java:435) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_60] > at > org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) > [apache-cassandra-3.0.0.jar:3.0.0] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60] > INFO [IndexSummaryManager:1] 2015-11-26 14:41:10,527 > IndexSummaryManager.java:257 - Redistributing index summaries > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[3/6] cassandra git commit: Fix Mutation.applyUnsafe to block
Fix Mutation.applyUnsafe to block Patch by Carl Yeksigian; reviewed by Jake Luciani for CASSANDRA-10779 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c4d83f1b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c4d83f1b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c4d83f1b Branch: refs/heads/trunk Commit: c4d83f1ba31735963b451beb38a553c92145d5d4 Parents: 2081385 Author: Carl YeksigianAuthored: Wed Feb 3 08:33:31 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 08:33:31 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java | 27 - 1 file changed, 16 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c4d83f1b/src/java/org/apache/cassandra/db/Mutation.java -- diff --git a/src/java/org/apache/cassandra/db/Mutation.java b/src/java/org/apache/cassandra/db/Mutation.java index 6b4c8e9..1ba3740 100644 --- a/src/java/org/apache/cassandra/db/Mutation.java +++ b/src/java/org/apache/cassandra/db/Mutation.java @@ -198,21 +198,22 @@ public class Mutation implements IMutation return new Mutation(ks, key, modifications); } -public CompletableFuture applyFuture() +private CompletableFuture applyFuture(boolean durableWrites) { Keyspace ks = Keyspace.open(keyspaceName); -return ks.apply(this, ks.getMetadata().params.durableWrites); +return ks.apply(this, durableWrites); } -/* - * This is equivalent to calling commit. Applies the changes to - * to the keyspace that is obtained by calling Keyspace.open(). - */ -public void apply() +public CompletableFuture applyFuture() +{ +return applyFuture(Keyspace.open(keyspaceName).getMetadata().params.durableWrites); +} + +public void apply(boolean durableWrites) { try { -Uninterruptibles.getUninterruptibly(applyFuture()); +Uninterruptibles.getUninterruptibly(applyFuture(durableWrites)); } catch (ExecutionException e) { @@ -220,14 +221,18 @@ public class Mutation implements IMutation } } -public void apply(boolean durableWrites) +/* + * This is equivalent to calling commit. Applies the changes to + * to the keyspace that is obtained by calling Keyspace.open(). + */ +public void apply() { -Keyspace.open(keyspaceName).apply(this, durableWrites); +apply(Keyspace.open(keyspaceName).getMetadata().params.durableWrites); } public void applyUnsafe() { -Keyspace.open(keyspaceName).apply(this, false); +apply(false); } public MessageOut createMessage()
[4/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3
Merge branch 'cassandra-3.0' into cassandra-3.3 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/233e785b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/233e785b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/233e785b Branch: refs/heads/trunk Commit: 233e785bdf1a0b75d36e3fec4ed10256f12eca04 Parents: d7bea00 c4d83f1 Author: Carl YeksigianAuthored: Wed Feb 3 08:34:14 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 08:34:14 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java | 27 - 1 file changed, 16 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/233e785b/src/java/org/apache/cassandra/db/Mutation.java --
[2/6] cassandra git commit: Fix Mutation.applyUnsafe to block
Fix Mutation.applyUnsafe to block Patch by Carl Yeksigian; reviewed by Jake Luciani for CASSANDRA-10779 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c4d83f1b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c4d83f1b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c4d83f1b Branch: refs/heads/cassandra-3.3 Commit: c4d83f1ba31735963b451beb38a553c92145d5d4 Parents: 2081385 Author: Carl YeksigianAuthored: Wed Feb 3 08:33:31 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 08:33:31 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java | 27 - 1 file changed, 16 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c4d83f1b/src/java/org/apache/cassandra/db/Mutation.java -- diff --git a/src/java/org/apache/cassandra/db/Mutation.java b/src/java/org/apache/cassandra/db/Mutation.java index 6b4c8e9..1ba3740 100644 --- a/src/java/org/apache/cassandra/db/Mutation.java +++ b/src/java/org/apache/cassandra/db/Mutation.java @@ -198,21 +198,22 @@ public class Mutation implements IMutation return new Mutation(ks, key, modifications); } -public CompletableFuture applyFuture() +private CompletableFuture applyFuture(boolean durableWrites) { Keyspace ks = Keyspace.open(keyspaceName); -return ks.apply(this, ks.getMetadata().params.durableWrites); +return ks.apply(this, durableWrites); } -/* - * This is equivalent to calling commit. Applies the changes to - * to the keyspace that is obtained by calling Keyspace.open(). - */ -public void apply() +public CompletableFuture applyFuture() +{ +return applyFuture(Keyspace.open(keyspaceName).getMetadata().params.durableWrites); +} + +public void apply(boolean durableWrites) { try { -Uninterruptibles.getUninterruptibly(applyFuture()); +Uninterruptibles.getUninterruptibly(applyFuture(durableWrites)); } catch (ExecutionException e) { @@ -220,14 +221,18 @@ public class Mutation implements IMutation } } -public void apply(boolean durableWrites) +/* + * This is equivalent to calling commit. Applies the changes to + * to the keyspace that is obtained by calling Keyspace.open(). + */ +public void apply() { -Keyspace.open(keyspaceName).apply(this, durableWrites); +apply(Keyspace.open(keyspaceName).getMetadata().params.durableWrites); } public void applyUnsafe() { -Keyspace.open(keyspaceName).apply(this, false); +apply(false); } public MessageOut createMessage()
[5/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3
Merge branch 'cassandra-3.0' into cassandra-3.3 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/233e785b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/233e785b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/233e785b Branch: refs/heads/cassandra-3.3 Commit: 233e785bdf1a0b75d36e3fec4ed10256f12eca04 Parents: d7bea00 c4d83f1 Author: Carl YeksigianAuthored: Wed Feb 3 08:34:14 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 08:34:14 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java | 27 - 1 file changed, 16 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/233e785b/src/java/org/apache/cassandra/db/Mutation.java --
[1/6] cassandra git commit: Fix Mutation.applyUnsafe to block
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 208138582 -> c4d83f1ba refs/heads/cassandra-3.3 d7bea0091 -> 233e785bd refs/heads/trunk 44a5abc35 -> efd54c77e Fix Mutation.applyUnsafe to block Patch by Carl Yeksigian; reviewed by Jake Luciani for CASSANDRA-10779 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c4d83f1b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c4d83f1b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c4d83f1b Branch: refs/heads/cassandra-3.0 Commit: c4d83f1ba31735963b451beb38a553c92145d5d4 Parents: 2081385 Author: Carl YeksigianAuthored: Wed Feb 3 08:33:31 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 08:33:31 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java | 27 - 1 file changed, 16 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c4d83f1b/src/java/org/apache/cassandra/db/Mutation.java -- diff --git a/src/java/org/apache/cassandra/db/Mutation.java b/src/java/org/apache/cassandra/db/Mutation.java index 6b4c8e9..1ba3740 100644 --- a/src/java/org/apache/cassandra/db/Mutation.java +++ b/src/java/org/apache/cassandra/db/Mutation.java @@ -198,21 +198,22 @@ public class Mutation implements IMutation return new Mutation(ks, key, modifications); } -public CompletableFuture applyFuture() +private CompletableFuture applyFuture(boolean durableWrites) { Keyspace ks = Keyspace.open(keyspaceName); -return ks.apply(this, ks.getMetadata().params.durableWrites); +return ks.apply(this, durableWrites); } -/* - * This is equivalent to calling commit. Applies the changes to - * to the keyspace that is obtained by calling Keyspace.open(). - */ -public void apply() +public CompletableFuture applyFuture() +{ +return applyFuture(Keyspace.open(keyspaceName).getMetadata().params.durableWrites); +} + +public void apply(boolean durableWrites) { try { -Uninterruptibles.getUninterruptibly(applyFuture()); +Uninterruptibles.getUninterruptibly(applyFuture(durableWrites)); } catch (ExecutionException e) { @@ -220,14 +221,18 @@ public class Mutation implements IMutation } } -public void apply(boolean durableWrites) +/* + * This is equivalent to calling commit. Applies the changes to + * to the keyspace that is obtained by calling Keyspace.open(). + */ +public void apply() { -Keyspace.open(keyspaceName).apply(this, durableWrites); +apply(Keyspace.open(keyspaceName).getMetadata().params.durableWrites); } public void applyUnsafe() { -Keyspace.open(keyspaceName).apply(this, false); +apply(false); } public MessageOut createMessage()
[6/6] cassandra git commit: Merge branch 'cassandra-3.3' into trunk
Merge branch 'cassandra-3.3' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/efd54c77 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/efd54c77 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/efd54c77 Branch: refs/heads/trunk Commit: efd54c77e0fce3cbc5087942ef3074eb95ad1887 Parents: 44a5abc 233e785 Author: Carl YeksigianAuthored: Wed Feb 3 08:34:31 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 08:34:31 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java | 27 - 1 file changed, 16 insertions(+), 11 deletions(-) --
[jira] [Created] (CASSANDRA-11115) Thrift removal
Sylvain Lebresne created CASSANDRA-5: Summary: Thrift removal Key: CASSANDRA-5 URL: https://issues.apache.org/jira/browse/CASSANDRA-5 Project: Cassandra Issue Type: Improvement Reporter: Sylvain Lebresne Fix For: 4.x Thrift removal [has been announced for 4.0|http://mail-archives.apache.org/mod_mbox/cassandra-user/201601.mbox/%3ccaldd-zgagnldu3pqbd6wp0jb0x73qjdr9phpxmmo+gq+2e5...@mail.gmail.com%3E]. This ticket is meant to serve as a general task for that removal, but also to track issue related to that, either things that we should do in 3.x to make that removal as smooth as possible, or sub-tasks that it makes sense to separate. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11067) Improve SASI syntax
[ https://issues.apache.org/jira/browse/CASSANDRA-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131208#comment-15131208 ] Jonathan Ellis commented on CASSANDRA-11067: I'm still uneasy about making = a synonym for LIKE. Every database I can think of treats = as full equality. I'm pretty sure that will surprise people. I think we should reject = queries against indexes that aren't going to actually give equality semantics, and require using LIKE instead. (I'm slightly uneasy about overloading LIKE as well, which is why originally I proposed something new like MATCHES. But LIKE already tends to vary from product to product so on balance I'm okay with abusing it a little more.) > Improve SASI syntax > --- > > Key: CASSANDRA-11067 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11067 > Project: Cassandra > Issue Type: Task > Components: CQL >Reporter: Jonathan Ellis >Assignee: Pavel Yaskevich > Fix For: 3.4 > > > I think everyone agrees that a LIKE operator would be ideal, but that's > probably not in scope for an initial 3.4 release. > Still, I'm uncomfortable with the initial approach of overloading = to mean > "satisfies index expression." The problem is that it will be very difficult > to back out of this behavior once people are using it. > I propose adding a new operator in the interim instead. Call it MATCHES, > maybe. With the exact same behavior that SASI currently exposes, just with a > separate operator rather than being rolled into =. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11067) Improve SASI syntax
[ https://issues.apache.org/jira/browse/CASSANDRA-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131093#comment-15131093 ] Sam Tunnicliffe commented on CASSANDRA-11067: - One more thing: the grammar only allows {{LIKE}} (upper case), can you make it case insensitive please? > Improve SASI syntax > --- > > Key: CASSANDRA-11067 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11067 > Project: Cassandra > Issue Type: Task > Components: CQL >Reporter: Jonathan Ellis >Assignee: Pavel Yaskevich > Fix For: 3.4 > > > I think everyone agrees that a LIKE operator would be ideal, but that's > probably not in scope for an initial 3.4 release. > Still, I'm uncomfortable with the initial approach of overloading = to mean > "satisfies index expression." The problem is that it will be very difficult > to back out of this behavior once people are using it. > I propose adding a new operator in the interim instead. Call it MATCHES, > maybe. With the exact same behavior that SASI currently exposes, just with a > separate operator rather than being rolled into =. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11067) Improve SASI syntax
[ https://issues.apache.org/jira/browse/CASSANDRA-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131217#comment-15131217 ] Pavel Yaskevich commented on CASSANDRA-11067: - Regarding validation for index options you've mentioned I'm not really sure by what means we are going to accomplish that, maybe by requiring users to specify what queries do they want to run, but that would require wider audience/discussion so let's maybe leave it for a separate ticket... > Improve SASI syntax > --- > > Key: CASSANDRA-11067 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11067 > Project: Cassandra > Issue Type: Task > Components: CQL >Reporter: Jonathan Ellis >Assignee: Pavel Yaskevich > Fix For: 3.4 > > > I think everyone agrees that a LIKE operator would be ideal, but that's > probably not in scope for an initial 3.4 release. > Still, I'm uncomfortable with the initial approach of overloading = to mean > "satisfies index expression." The problem is that it will be very difficult > to back out of this behavior once people are using it. > I propose adding a new operator in the interim instead. Call it MATCHES, > maybe. With the exact same behavior that SASI currently exposes, just with a > separate operator rather than being rolled into =. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-11118) Consider removing support for custom types
Robert Stupp created CASSANDRA-8: Summary: Consider removing support for custom types Key: CASSANDRA-8 URL: https://issues.apache.org/jira/browse/CASSANDRA-8 Project: Cassandra Issue Type: Wish Reporter: Robert Stupp Priority: Minor Custom types (and maybe all types that extend AbstractType but have no CQL3 counterpart) become difficult to be properly supported. There are a couple of reasons: * Custom types and even composite types need to be expressed using 'blob syntax' as in CASSANDRA-11064 to provide full end-to-end support (C* nodes and all drivers). * Custom-type implementations become more difficult to maintain (by their developers) as we add more functionality (e.g. JSON or CQL literal generation) and contracts (like the different comparison modes and implementations) to AbstractType * Operational support for custom types (installing and upgrading C* releases) is more difficult (provide the correct custom-type implementations for the specific C* release; not a new reason, of course) * We still maintain two type hierarchies for the "same thing" (column types): one starting at CQL3Type and one at AbstractType (plus serializers), which are closely related and coupled. * There is "no need" to maintain AbstractType as a client protocol requirement starting with 4.x as Thrift will be removed. In reality, the support of drivers for composite types or even custom types is fairly rudimentary, if existent. * I'm also a bit concerned that there might be hidden issues related to this _old and rarely used and even least thought-of stuff_. I mean, we (at least I) don't always think about these old types. Like CASSANDRA-11064 that has the potential to bring down a cluster. I would not propose to remove custom types in 4.x but officially deprecate the functionality in the near future and communicate an "official" date (version number) when it will be removed. In the mean time there might be a configuration option like {{enable_custom_types}} or {{allow_non_cql3_types}} which defaults to {{false}} and either issues warnings (in the log and via native protocol) when those types are used in DDL statements or completely prevents that (returning an error, prevent startup, whatever). We can also convert all non-CQL3 types to BLOB in the schema tables as the "implementation to remove custom types". TBH, I have absolutely no idea how many people really use composite types or even custom types. But I assume that "only a handful" of applications really use non-CQL3 types with C* 4.x (so without Thrift). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11067) Improve SASI syntax
[ https://issues.apache.org/jira/browse/CASSANDRA-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131227#comment-15131227 ] Jon Haddad commented on CASSANDRA-11067: Just for reference: MySQL: match(field) against ('search') postgres: something about @@ tsvector, I can't even tell it's so absurd oracle: CONTAINS(field, 'search', 1) sql server: CONTAINS(candidate_resume,”SQL Server”) My 2 cents: I'm partial to CONTAINS or MATCH rather than LIKE, since LIKE seems to usually be exact string search with a full table scan. > Improve SASI syntax > --- > > Key: CASSANDRA-11067 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11067 > Project: Cassandra > Issue Type: Task > Components: CQL >Reporter: Jonathan Ellis >Assignee: Pavel Yaskevich > Fix For: 3.4 > > > I think everyone agrees that a LIKE operator would be ideal, but that's > probably not in scope for an initial 3.4 release. > Still, I'm uncomfortable with the initial approach of overloading = to mean > "satisfies index expression." The problem is that it will be very difficult > to back out of this behavior once people are using it. > I propose adding a new operator in the interim instead. Call it MATCHES, > maybe. With the exact same behavior that SASI currently exposes, just with a > separate operator rather than being rolled into =. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11067) Improve SASI syntax
[ https://issues.apache.org/jira/browse/CASSANDRA-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131272#comment-15131272 ] Pavel Yaskevich commented on CASSANDRA-11067: - bq. I'm still uneasy about making = a synonym for LIKE. Every database I can think of treats = as full equality. I'm pretty sure that will surprise people. But the LIKE is not a synonym for "=", only if LIKE is used without '%' it means essentially an equals, and "=" is always an exact match right now. Also I would like to point out that all of the index types in SASI support strict equality (current "=") because even CONTAINS mode does preserve the original word form, so I'm not even sure what is the problem because each index has supportedOperations check and if one of the implementations doesn't support strict equality it's going to be rejected because even LIKE '' is transformed to EQ, which forces users to do LIKE with '%' which can only be PREFIX, CONTAINS or SUFFIX. > Improve SASI syntax > --- > > Key: CASSANDRA-11067 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11067 > Project: Cassandra > Issue Type: Task > Components: CQL >Reporter: Jonathan Ellis >Assignee: Pavel Yaskevich > Fix For: 3.4 > > > I think everyone agrees that a LIKE operator would be ideal, but that's > probably not in scope for an initial 3.4 release. > Still, I'm uncomfortable with the initial approach of overloading = to mean > "satisfies index expression." The problem is that it will be very difficult > to back out of this behavior once people are using it. > I propose adding a new operator in the interim instead. Call it MATCHES, > maybe. With the exact same behavior that SASI currently exposes, just with a > separate operator rather than being rolled into =. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11067) Improve SASI syntax
[ https://issues.apache.org/jira/browse/CASSANDRA-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131183#comment-15131183 ] Pavel Yaskevich commented on CASSANDRA-11067: - I've pushed to CASSANDRA-11067 squashed/rebased/updated version with all of the changes from the review - doc/error message are corrected and I've added a lot more LIKE_SUFFIX tests to SASIIndexTest. Going to try to make down-case LIKE work and let you know, the problem is it classes with rules from create statement. > Improve SASI syntax > --- > > Key: CASSANDRA-11067 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11067 > Project: Cassandra > Issue Type: Task > Components: CQL >Reporter: Jonathan Ellis >Assignee: Pavel Yaskevich > Fix For: 3.4 > > > I think everyone agrees that a LIKE operator would be ideal, but that's > probably not in scope for an initial 3.4 release. > Still, I'm uncomfortable with the initial approach of overloading = to mean > "satisfies index expression." The problem is that it will be very difficult > to back out of this behavior once people are using it. > I propose adding a new operator in the interim instead. Call it MATCHES, > maybe. With the exact same behavior that SASI currently exposes, just with a > separate operator rather than being rolled into =. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11001) Hadoop integration is incompatible with Cassandra Driver 3.0.0
[ https://issues.apache.org/jira/browse/CASSANDRA-11001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Stupp updated CASSANDRA-11001: - Fix Version/s: 3.0.x > Hadoop integration is incompatible with Cassandra Driver 3.0.0 > -- > > Key: CASSANDRA-11001 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11001 > Project: Cassandra > Issue Type: Bug >Reporter: Jacek Lewandowski >Assignee: Robert Stupp > Fix For: 3.0.x > > > When using Hadoop input format with SSL and Cassandra Driver 3.0.0-beta1, we > hit the following exception: > {noformat} > Exception in thread "main" java.lang.NoSuchFieldError: > DEFAULT_SSL_CIPHER_SUITES > at > org.apache.cassandra.hadoop.cql3.CqlConfigHelper.getSSLOptions(CqlConfigHelper.java:548) > at > org.apache.cassandra.hadoop.cql3.CqlConfigHelper.getCluster(CqlConfigHelper.java:315) > at > org.apache.cassandra.hadoop.cql3.CqlConfigHelper.getInputCluster(CqlConfigHelper.java:298) > at > org.apache.cassandra.hadoop.cql3.CqlInputFormat.getSplits(CqlInputFormat.java:131) > {noformat} > Should this be fixed with reflection so that Hadoop input/output formats are > compatible with both old and new driver? > [~jjordan], [~alexliu68] ? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[3/3] cassandra git commit: 3.3 version updates
3.3 version updates Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/78fe8c48 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/78fe8c48 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/78fe8c48 Branch: refs/heads/cassandra-3.3 Commit: 78fe8c487b53939c933718bc4e470b78e677df51 Parents: f240c95 Author: T Jake LucianiAuthored: Wed Feb 3 09:22:29 2016 -0500 Committer: T Jake Luciani Committed: Wed Feb 3 09:22:29 2016 -0500 -- NEWS.txt | 8 debian/changelog | 6 ++ 2 files changed, 14 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/78fe8c48/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 9dd4e25..92f3d3e 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -13,6 +13,14 @@ restore snapshots created with the previous major version using the 'sstableloader' tool. You can upgrade the file format of your snapshots using the provided 'sstableupgrade' tool. +3.3 +=== + +Upgrading +- +- Nothing specific to this release, but please see 3.0 if you are upgrading + from a previous version. + 3.2 === http://git-wip-us.apache.org/repos/asf/cassandra/blob/78fe8c48/debian/changelog -- diff --git a/debian/changelog b/debian/changelog index 7e455ac..b975a5e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (3.3) unstable; urgency=medium + + * New release + + -- Jake Luciani Wed, 03 Feb 2016 09:00:11 -0500 + cassandra (3.2) unstable; urgency=medium * New release
[1/3] cassandra git commit: 3.0.3 release versions
Repository: cassandra Updated Branches: refs/heads/cassandra-3.3 233e785bd -> 78fe8c487 3.0.3 release versions Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/21380fc1 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/21380fc1 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/21380fc1 Branch: refs/heads/cassandra-3.3 Commit: 21380fc129c91bb17d27aa02378699e9d94a7ab6 Parents: c4d83f1 Author: T Jake LucianiAuthored: Wed Feb 3 08:56:26 2016 -0500 Committer: T Jake Luciani Committed: Wed Feb 3 08:56:26 2016 -0500 -- build.xml| 2 +- debian/changelog | 6 ++ 2 files changed, 7 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/21380fc1/build.xml -- diff --git a/build.xml b/build.xml index 9e8c135..f9ff00d 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ - + http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree"/> http://git-wip-us.apache.org/repos/asf/cassandra/blob/21380fc1/debian/changelog -- diff --git a/debian/changelog b/debian/changelog index f1232ab..0f3a46c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (3.0.3) unstable; urgency=medium + + * New release + + -- Jake Luciani Wed, 03 Feb 2016 08:54:57 -0500 + cassandra (3.0.1) unstable; urgency=medium * New release
[1/6] cassandra git commit: Use Throwables.propagate on ExecutionException
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 21380fc12 -> 5f1e4bcad refs/heads/cassandra-3.3 78fe8c487 -> de24ee94f refs/heads/trunk 617bf46ef -> 940ae5168 Use Throwables.propagate on ExecutionException Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5f1e4bca Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5f1e4bca Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5f1e4bca Branch: refs/heads/cassandra-3.0 Commit: 5f1e4bcad7d36feb97096c6149ad3c43f26f0fd9 Parents: 21380fc Author: Carl YeksigianAuthored: Wed Feb 3 09:26:01 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 09:26:01 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java| 3 ++- .../cassandra/db/commitlog/CommitLogReplayer.java | 14 -- .../apache/cassandra/service/paxos/PaxosState.java| 3 ++- 3 files changed, 16 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f1e4bca/src/java/org/apache/cassandra/db/Mutation.java -- diff --git a/src/java/org/apache/cassandra/db/Mutation.java b/src/java/org/apache/cassandra/db/Mutation.java index 1ba3740..9a26456 100644 --- a/src/java/org/apache/cassandra/db/Mutation.java +++ b/src/java/org/apache/cassandra/db/Mutation.java @@ -24,6 +24,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicLong; +import com.google.common.base.Throwables; import com.google.common.util.concurrent.Uninterruptibles; import org.apache.commons.lang3.StringUtils; import org.apache.cassandra.config.CFMetaData; @@ -217,7 +218,7 @@ public class Mutation implements IMutation } catch (ExecutionException e) { -throw new RuntimeException(e.getCause()); +Throwables.propagate(e.getCause()); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f1e4bca/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java -- diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java index b4472ed..33750f8 100644 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java @@ -31,6 +31,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.zip.CRC32; import com.google.common.base.Predicate; +import com.google.common.base.Throwables; import com.google.common.collect.HashMultimap; import com.google.common.collect.Iterables; import com.google.common.collect.Multimap; @@ -568,7 +569,7 @@ public class CommitLogReplayer Runnable runnable = new WrappedRunnable() { -public void runMayThrow() throws ExecutionException +public void runMayThrow() { if (Schema.instance.getKSMetaData(mutation.getKeyspaceName()) == null) return; @@ -603,7 +604,16 @@ public class CommitLogReplayer if (newMutation != null) { assert !newMutation.isEmpty(); - Uninterruptibles.getUninterruptibly(Keyspace.open(newMutation.getKeyspaceName()).applyFromCommitLog(newMutation)); + +try +{ + Uninterruptibles.getUninterruptibly(Keyspace.open(newMutation.getKeyspaceName()).applyFromCommitLog(newMutation)); +} +catch (ExecutionException e) +{ +Throwables.propagate(e.getCause()); +} + keyspacesRecovered.add(keyspace); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f1e4bca/src/java/org/apache/cassandra/service/paxos/PaxosState.java -- diff --git a/src/java/org/apache/cassandra/service/paxos/PaxosState.java b/src/java/org/apache/cassandra/service/paxos/PaxosState.java index 3ecac99..d4fed51 100644 --- a/src/java/org/apache/cassandra/service/paxos/PaxosState.java +++ b/src/java/org/apache/cassandra/service/paxos/PaxosState.java @@ -23,6 +23,7 @@ package org.apache.cassandra.service.paxos; import java.util.concurrent.ExecutionException; import java.util.concurrent.locks.Lock; +import com.google.common.base.Throwables; import com.google.common.util.concurrent.Striped; import com.google.common.util.concurrent.Uninterruptibles; @@ -145,7 +146,7 @@ public
[3/6] cassandra git commit: Use Throwables.propagate on ExecutionException
Use Throwables.propagate on ExecutionException Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5f1e4bca Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5f1e4bca Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5f1e4bca Branch: refs/heads/trunk Commit: 5f1e4bcad7d36feb97096c6149ad3c43f26f0fd9 Parents: 21380fc Author: Carl YeksigianAuthored: Wed Feb 3 09:26:01 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 09:26:01 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java| 3 ++- .../cassandra/db/commitlog/CommitLogReplayer.java | 14 -- .../apache/cassandra/service/paxos/PaxosState.java| 3 ++- 3 files changed, 16 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f1e4bca/src/java/org/apache/cassandra/db/Mutation.java -- diff --git a/src/java/org/apache/cassandra/db/Mutation.java b/src/java/org/apache/cassandra/db/Mutation.java index 1ba3740..9a26456 100644 --- a/src/java/org/apache/cassandra/db/Mutation.java +++ b/src/java/org/apache/cassandra/db/Mutation.java @@ -24,6 +24,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicLong; +import com.google.common.base.Throwables; import com.google.common.util.concurrent.Uninterruptibles; import org.apache.commons.lang3.StringUtils; import org.apache.cassandra.config.CFMetaData; @@ -217,7 +218,7 @@ public class Mutation implements IMutation } catch (ExecutionException e) { -throw new RuntimeException(e.getCause()); +Throwables.propagate(e.getCause()); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f1e4bca/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java -- diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java index b4472ed..33750f8 100644 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java @@ -31,6 +31,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.zip.CRC32; import com.google.common.base.Predicate; +import com.google.common.base.Throwables; import com.google.common.collect.HashMultimap; import com.google.common.collect.Iterables; import com.google.common.collect.Multimap; @@ -568,7 +569,7 @@ public class CommitLogReplayer Runnable runnable = new WrappedRunnable() { -public void runMayThrow() throws ExecutionException +public void runMayThrow() { if (Schema.instance.getKSMetaData(mutation.getKeyspaceName()) == null) return; @@ -603,7 +604,16 @@ public class CommitLogReplayer if (newMutation != null) { assert !newMutation.isEmpty(); - Uninterruptibles.getUninterruptibly(Keyspace.open(newMutation.getKeyspaceName()).applyFromCommitLog(newMutation)); + +try +{ + Uninterruptibles.getUninterruptibly(Keyspace.open(newMutation.getKeyspaceName()).applyFromCommitLog(newMutation)); +} +catch (ExecutionException e) +{ +Throwables.propagate(e.getCause()); +} + keyspacesRecovered.add(keyspace); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f1e4bca/src/java/org/apache/cassandra/service/paxos/PaxosState.java -- diff --git a/src/java/org/apache/cassandra/service/paxos/PaxosState.java b/src/java/org/apache/cassandra/service/paxos/PaxosState.java index 3ecac99..d4fed51 100644 --- a/src/java/org/apache/cassandra/service/paxos/PaxosState.java +++ b/src/java/org/apache/cassandra/service/paxos/PaxosState.java @@ -23,6 +23,7 @@ package org.apache.cassandra.service.paxos; import java.util.concurrent.ExecutionException; import java.util.concurrent.locks.Lock; +import com.google.common.base.Throwables; import com.google.common.util.concurrent.Striped; import com.google.common.util.concurrent.Uninterruptibles; @@ -145,7 +146,7 @@ public class PaxosState } catch (ExecutionException e) { -throw new RuntimeException(e.getCause()); +
[6/6] cassandra git commit: Merge branch 'cassandra-3.3' into trunk
Merge branch 'cassandra-3.3' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/940ae516 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/940ae516 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/940ae516 Branch: refs/heads/trunk Commit: 940ae51683b6a9eddd396439541710e0492f2d2e Parents: 617bf46 de24ee9 Author: Carl YeksigianAuthored: Wed Feb 3 09:30:27 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 09:30:27 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java| 3 ++- .../cassandra/db/commitlog/CommitLogReplayer.java | 14 -- .../apache/cassandra/service/paxos/PaxosState.java| 3 ++- 3 files changed, 16 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/940ae516/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java --
[4/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3
Merge branch 'cassandra-3.0' into cassandra-3.3 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/de24ee94 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/de24ee94 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/de24ee94 Branch: refs/heads/trunk Commit: de24ee94f355042f24f04c3dec8c1c5e4ec3 Parents: 78fe8c4 5f1e4bc Author: Carl YeksigianAuthored: Wed Feb 3 09:29:20 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 09:29:20 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java| 3 ++- .../cassandra/db/commitlog/CommitLogReplayer.java | 14 -- .../apache/cassandra/service/paxos/PaxosState.java| 3 ++- 3 files changed, 16 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/de24ee94/src/java/org/apache/cassandra/db/Mutation.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/de24ee94/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java -- diff --cc src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java index 55bdf07,33750f8..985a036 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java @@@ -30,8 -30,8 +30,9 @@@ import java.util.concurrent.Future import java.util.concurrent.atomic.AtomicInteger; import java.util.zip.CRC32; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Predicate; + import com.google.common.base.Throwables; import com.google.common.collect.HashMultimap; import com.google.common.collect.Iterables; import com.google.common.collect.Multimap; @@@ -90,65 -85,6 +91,74 @@@ public class CommitLogReplaye private final ReplayFilter replayFilter; private final CommitLogArchiver archiver; +/* + * Wrapper around initiating mutations read from the log to make it possible + * to spy on initiated mutations for test + */ +@VisibleForTesting +public static class MutationInitiator +{ +protected Future initiateMutation(final Mutation mutation, + final long segmentId, + final int serializedSize, + final long entryLocation, + final CommitLogReplayer clr) +{ +Runnable runnable = new WrappedRunnable() +{ - public void runMayThrow() throws ExecutionException ++public void runMayThrow() +{ +if (Schema.instance.getKSMetaData(mutation.getKeyspaceName()) == null) +return; +if (clr.pointInTimeExceeded(mutation)) +return; + +final Keyspace keyspace = Keyspace.open(mutation.getKeyspaceName()); + +// Rebuild the mutation, omitting column families that +//a) the user has requested that we ignore, +//b) have already been flushed, +// or c) are part of a cf that was dropped. +// Keep in mind that the cf.name() is suspect. do every thing based on the cfid instead. +Mutation newMutation = null; +for (PartitionUpdate update : clr.replayFilter.filter(mutation)) +{ +if (Schema.instance.getCF(update.metadata().cfId) == null) +continue; // dropped + +ReplayPosition rp = clr.cfPositions.get(update.metadata().cfId); + +// replay if current segment is newer than last flushed one or, +// if it is the last known segment, if we are after the replay position +if (segmentId > rp.segment || (segmentId == rp.segment && entryLocation > rp.position)) +{ +if (newMutation == null) +newMutation = new Mutation(mutation.getKeyspaceName(), mutation.key()); +newMutation.add(update); +clr.replayedCount.incrementAndGet(); +} +} +if (newMutation != null) +{ +assert !newMutation.isEmpty(); -
[2/6] cassandra git commit: Use Throwables.propagate on ExecutionException
Use Throwables.propagate on ExecutionException Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5f1e4bca Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5f1e4bca Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5f1e4bca Branch: refs/heads/cassandra-3.3 Commit: 5f1e4bcad7d36feb97096c6149ad3c43f26f0fd9 Parents: 21380fc Author: Carl YeksigianAuthored: Wed Feb 3 09:26:01 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 09:26:01 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java| 3 ++- .../cassandra/db/commitlog/CommitLogReplayer.java | 14 -- .../apache/cassandra/service/paxos/PaxosState.java| 3 ++- 3 files changed, 16 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f1e4bca/src/java/org/apache/cassandra/db/Mutation.java -- diff --git a/src/java/org/apache/cassandra/db/Mutation.java b/src/java/org/apache/cassandra/db/Mutation.java index 1ba3740..9a26456 100644 --- a/src/java/org/apache/cassandra/db/Mutation.java +++ b/src/java/org/apache/cassandra/db/Mutation.java @@ -24,6 +24,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicLong; +import com.google.common.base.Throwables; import com.google.common.util.concurrent.Uninterruptibles; import org.apache.commons.lang3.StringUtils; import org.apache.cassandra.config.CFMetaData; @@ -217,7 +218,7 @@ public class Mutation implements IMutation } catch (ExecutionException e) { -throw new RuntimeException(e.getCause()); +Throwables.propagate(e.getCause()); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f1e4bca/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java -- diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java index b4472ed..33750f8 100644 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java @@ -31,6 +31,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.zip.CRC32; import com.google.common.base.Predicate; +import com.google.common.base.Throwables; import com.google.common.collect.HashMultimap; import com.google.common.collect.Iterables; import com.google.common.collect.Multimap; @@ -568,7 +569,7 @@ public class CommitLogReplayer Runnable runnable = new WrappedRunnable() { -public void runMayThrow() throws ExecutionException +public void runMayThrow() { if (Schema.instance.getKSMetaData(mutation.getKeyspaceName()) == null) return; @@ -603,7 +604,16 @@ public class CommitLogReplayer if (newMutation != null) { assert !newMutation.isEmpty(); - Uninterruptibles.getUninterruptibly(Keyspace.open(newMutation.getKeyspaceName()).applyFromCommitLog(newMutation)); + +try +{ + Uninterruptibles.getUninterruptibly(Keyspace.open(newMutation.getKeyspaceName()).applyFromCommitLog(newMutation)); +} +catch (ExecutionException e) +{ +Throwables.propagate(e.getCause()); +} + keyspacesRecovered.add(keyspace); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f1e4bca/src/java/org/apache/cassandra/service/paxos/PaxosState.java -- diff --git a/src/java/org/apache/cassandra/service/paxos/PaxosState.java b/src/java/org/apache/cassandra/service/paxos/PaxosState.java index 3ecac99..d4fed51 100644 --- a/src/java/org/apache/cassandra/service/paxos/PaxosState.java +++ b/src/java/org/apache/cassandra/service/paxos/PaxosState.java @@ -23,6 +23,7 @@ package org.apache.cassandra.service.paxos; import java.util.concurrent.ExecutionException; import java.util.concurrent.locks.Lock; +import com.google.common.base.Throwables; import com.google.common.util.concurrent.Striped; import com.google.common.util.concurrent.Uninterruptibles; @@ -145,7 +146,7 @@ public class PaxosState } catch (ExecutionException e) { -throw new RuntimeException(e.getCause()); +
[3/6] cassandra git commit: ninja-fix propagate usage
ninja-fix propagate usage Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b9bdd9ec Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b9bdd9ec Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b9bdd9ec Branch: refs/heads/trunk Commit: b9bdd9ec648ad42d88b1377fe0e1e4ff3d162a91 Parents: 5f1e4bc Author: Carl YeksigianAuthored: Wed Feb 3 09:42:18 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 09:42:18 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java| 2 +- src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java | 2 +- src/java/org/apache/cassandra/service/paxos/PaxosState.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9bdd9ec/src/java/org/apache/cassandra/db/Mutation.java -- diff --git a/src/java/org/apache/cassandra/db/Mutation.java b/src/java/org/apache/cassandra/db/Mutation.java index 9a26456..c6ad9b8 100644 --- a/src/java/org/apache/cassandra/db/Mutation.java +++ b/src/java/org/apache/cassandra/db/Mutation.java @@ -218,7 +218,7 @@ public class Mutation implements IMutation } catch (ExecutionException e) { -Throwables.propagate(e.getCause()); +throw Throwables.propagate(e.getCause()); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9bdd9ec/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java -- diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java index 33750f8..7169b2f 100644 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java @@ -611,7 +611,7 @@ public class CommitLogReplayer } catch (ExecutionException e) { -Throwables.propagate(e.getCause()); +throw Throwables.propagate(e.getCause()); } keyspacesRecovered.add(keyspace); http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9bdd9ec/src/java/org/apache/cassandra/service/paxos/PaxosState.java -- diff --git a/src/java/org/apache/cassandra/service/paxos/PaxosState.java b/src/java/org/apache/cassandra/service/paxos/PaxosState.java index d4fed51..0b3af8f 100644 --- a/src/java/org/apache/cassandra/service/paxos/PaxosState.java +++ b/src/java/org/apache/cassandra/service/paxos/PaxosState.java @@ -146,7 +146,7 @@ public class PaxosState } catch (ExecutionException e) { -Throwables.propagate(e.getCause()); +throw Throwables.propagate(e.getCause()); } } else
[jira] [Commented] (CASSANDRA-10779) Mutations do not block for completion under view lock contention
[ https://issues.apache.org/jira/browse/CASSANDRA-10779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130418#comment-15130418 ] Sylvain Lebresne commented on CASSANDRA-10779: -- bq. Agreed the test is a non-issue +1 I'm not sure I agree. That message is logged due to a timeout, which is not a real error as far as C* is concerned, and logging like that could easily flood the log with a not too useful message. In fact, it appears the place where the exception is throw was explicitly trying to ignore timeouts, but the timeout is wrapped by a {{RuntimeException}} so it get through. I think we better fix that. In general, the MV tests don't do anything terribly nasty, so having them log anything at ERROR is definitively a bad smell. > Mutations do not block for completion under view lock contention > > > Key: CASSANDRA-10779 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10779 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths > Environment: Windows 7 64-bit, Cassandra v3.0.0, Java 1.8u60 >Reporter: Will Zhang >Assignee: Carl Yeksigian > Fix For: 3.0.3, 3.3 > > > Hi guys, > I encountered the following warning message when I was testing to upgrade > from v2.2.2 to v3.0.0. > It looks like a write time-out but in an uncaught exception. Could this be an > easy fix? > Log file section below. Thank you! > {code} > WARN [SharedPool-Worker-64] 2015-11-26 14:04:24,678 > AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-64,10,main]: {} > org.apache.cassandra.exceptions.WriteTimeoutException: Operation timed out - > received only 0 responses. > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:427) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:386) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Mutation.apply(Mutation.java:205) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.db.Keyspace.lambda$apply$59(Keyspace.java:435) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_60] > at > org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) > [apache-cassandra-3.0.0.jar:3.0.0] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60] > INFO [IndexSummaryManager:1] 2015-11-26 14:41:10,527 > IndexSummaryManager.java:257 - Redistributing index summaries > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[2/3] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3
Merge branch 'cassandra-3.0' into cassandra-3.3 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f240c95f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f240c95f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f240c95f Branch: refs/heads/cassandra-3.3 Commit: f240c95f5de32585b00c530fe248965d05fdf84d Parents: 233e785 21380fc Author: T Jake LucianiAuthored: Wed Feb 3 08:57:50 2016 -0500 Committer: T Jake Luciani Committed: Wed Feb 3 08:57:50 2016 -0500 -- --
[jira] [Commented] (CASSANDRA-8385) Clean up generics in uses of AbstractType
[ https://issues.apache.org/jira/browse/CASSANDRA-8385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130453#comment-15130453 ] Sylvain Lebresne commented on CASSANDRA-8385: - [~blambov] I don't know if you have the courage to go through that again now, but if it's still bothering you, I think we'd be good to go with this now. > Clean up generics in uses of AbstractType > - > > Key: CASSANDRA-8385 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8385 > Project: Cassandra > Issue Type: Improvement > Components: Local Write-Read Paths >Reporter: Branimir Lambov >Assignee: Branimir Lambov >Priority: Trivial > Attachments: 8385.patch > > > Almost all uses of AbstractType are from code that doesn't know or care what > the specific type is and would be better served by a non-generic version of > the concept. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Reopened] (CASSANDRA-10779) Mutations do not block for completion under view lock contention
[ https://issues.apache.org/jira/browse/CASSANDRA-10779?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne reopened CASSANDRA-10779: -- > Mutations do not block for completion under view lock contention > > > Key: CASSANDRA-10779 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10779 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths > Environment: Windows 7 64-bit, Cassandra v3.0.0, Java 1.8u60 >Reporter: Will Zhang >Assignee: Carl Yeksigian > Fix For: 3.0.3, 3.3 > > > Hi guys, > I encountered the following warning message when I was testing to upgrade > from v2.2.2 to v3.0.0. > It looks like a write time-out but in an uncaught exception. Could this be an > easy fix? > Log file section below. Thank you! > {code} > WARN [SharedPool-Worker-64] 2015-11-26 14:04:24,678 > AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-64,10,main]: {} > org.apache.cassandra.exceptions.WriteTimeoutException: Operation timed out - > received only 0 responses. > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:427) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:386) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Mutation.apply(Mutation.java:205) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.db.Keyspace.lambda$apply$59(Keyspace.java:435) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_60] > at > org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) > [apache-cassandra-3.0.0.jar:3.0.0] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60] > INFO [IndexSummaryManager:1] 2015-11-26 14:41:10,527 > IndexSummaryManager.java:257 - Redistributing index summaries > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10099) Improve concurrency in CompactionStrategyManager
[ https://issues.apache.org/jira/browse/CASSANDRA-10099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130534#comment-15130534 ] Marcus Eriksson commented on CASSANDRA-10099: - [~yukim] agreed, but I think we should do both After CASSANDRA-6696 and especially CASSANDRA-10540 we can have very many compaction strategy instances (one per owned vnode range, typically 768 with rf=3 and 256 tokens), so even if we don't loop, this can take a long time. But since each instance is totally independent from the other instances we don't need the global synchronization - we just need to make sure that noone switches out the compaction strategy under our feet. I'll push an updated branch with both approaches unless you disagree? > Improve concurrency in CompactionStrategyManager > > > Key: CASSANDRA-10099 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10099 > Project: Cassandra > Issue Type: Improvement >Reporter: Yuki Morishita >Assignee: Marcus Eriksson > Fix For: 2.1.x, 2.2.x, 3.x > > > Continue discussion from CASSANDRA-9882. > CompactionStrategyManager(WrappingCompactionStrategy for <3.0) tracks SSTable > changes mainly for separating repaired / unrepaired SSTables (+ LCS manages > level). > This is blocking operation, and can lead to block of flush etc. when > determining next background task takes longer. > Explore the way to mitigate this concurrency issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9115) Improve vnode allocation hash bit distribution
[ https://issues.apache.org/jira/browse/CASSANDRA-9115?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-9115: Assignee: (was: Branimir Lambov) > Improve vnode allocation hash bit distribution > -- > > Key: CASSANDRA-9115 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9115 > Project: Cassandra > Issue Type: Improvement > Components: Configuration >Reporter: Benedict > > Following on from CASSANDRA-7032, we should explore if it is possible to > further improve the vnode allocation strategy to consider hash bit > distribution for the selected vnodes, so that our hash based data structures > can ensure good behaviour -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[5/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3
Merge branch 'cassandra-3.0' into cassandra-3.3 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/de24ee94 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/de24ee94 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/de24ee94 Branch: refs/heads/cassandra-3.3 Commit: de24ee94f355042f24f04c3dec8c1c5e4ec3 Parents: 78fe8c4 5f1e4bc Author: Carl YeksigianAuthored: Wed Feb 3 09:29:20 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 09:29:20 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java| 3 ++- .../cassandra/db/commitlog/CommitLogReplayer.java | 14 -- .../apache/cassandra/service/paxos/PaxosState.java| 3 ++- 3 files changed, 16 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/de24ee94/src/java/org/apache/cassandra/db/Mutation.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/de24ee94/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java -- diff --cc src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java index 55bdf07,33750f8..985a036 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java @@@ -30,8 -30,8 +30,9 @@@ import java.util.concurrent.Future import java.util.concurrent.atomic.AtomicInteger; import java.util.zip.CRC32; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Predicate; + import com.google.common.base.Throwables; import com.google.common.collect.HashMultimap; import com.google.common.collect.Iterables; import com.google.common.collect.Multimap; @@@ -90,65 -85,6 +91,74 @@@ public class CommitLogReplaye private final ReplayFilter replayFilter; private final CommitLogArchiver archiver; +/* + * Wrapper around initiating mutations read from the log to make it possible + * to spy on initiated mutations for test + */ +@VisibleForTesting +public static class MutationInitiator +{ +protected Future initiateMutation(final Mutation mutation, + final long segmentId, + final int serializedSize, + final long entryLocation, + final CommitLogReplayer clr) +{ +Runnable runnable = new WrappedRunnable() +{ - public void runMayThrow() throws ExecutionException ++public void runMayThrow() +{ +if (Schema.instance.getKSMetaData(mutation.getKeyspaceName()) == null) +return; +if (clr.pointInTimeExceeded(mutation)) +return; + +final Keyspace keyspace = Keyspace.open(mutation.getKeyspaceName()); + +// Rebuild the mutation, omitting column families that +//a) the user has requested that we ignore, +//b) have already been flushed, +// or c) are part of a cf that was dropped. +// Keep in mind that the cf.name() is suspect. do every thing based on the cfid instead. +Mutation newMutation = null; +for (PartitionUpdate update : clr.replayFilter.filter(mutation)) +{ +if (Schema.instance.getCF(update.metadata().cfId) == null) +continue; // dropped + +ReplayPosition rp = clr.cfPositions.get(update.metadata().cfId); + +// replay if current segment is newer than last flushed one or, +// if it is the last known segment, if we are after the replay position +if (segmentId > rp.segment || (segmentId == rp.segment && entryLocation > rp.position)) +{ +if (newMutation == null) +newMutation = new Mutation(mutation.getKeyspaceName(), mutation.key()); +newMutation.add(update); +clr.replayedCount.incrementAndGet(); +} +} +if (newMutation != null) +{ +assert !newMutation.isEmpty(); -
[6/6] cassandra git commit: Merge branch 'cassandra-3.3' into trunk
Merge branch 'cassandra-3.3' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c164e51e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c164e51e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c164e51e Branch: refs/heads/trunk Commit: c164e51e77b6a2ad72dac30eef39ad4e819391c9 Parents: 940ae51 5669c69 Author: Carl YeksigianAuthored: Wed Feb 3 09:44:17 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 09:44:17 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java| 2 +- src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java | 2 +- src/java/org/apache/cassandra/service/paxos/PaxosState.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c164e51e/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java --
[4/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3
Merge branch 'cassandra-3.0' into cassandra-3.3 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5669c696 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5669c696 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5669c696 Branch: refs/heads/trunk Commit: 5669c6967bbdd540f27aeebf5a2c258bc4defbe3 Parents: de24ee9 b9bdd9e Author: Carl YeksigianAuthored: Wed Feb 3 09:44:01 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 09:44:01 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java| 2 +- src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java | 2 +- src/java/org/apache/cassandra/service/paxos/PaxosState.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5669c696/src/java/org/apache/cassandra/db/Mutation.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5669c696/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java -- diff --cc src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java index 985a036,7169b2f..e0518a9 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java @@@ -91,74 -85,6 +91,74 @@@ public class CommitLogReplaye private final ReplayFilter replayFilter; private final CommitLogArchiver archiver; +/* + * Wrapper around initiating mutations read from the log to make it possible + * to spy on initiated mutations for test + */ +@VisibleForTesting +public static class MutationInitiator +{ +protected Future initiateMutation(final Mutation mutation, + final long segmentId, + final int serializedSize, + final long entryLocation, + final CommitLogReplayer clr) +{ +Runnable runnable = new WrappedRunnable() +{ +public void runMayThrow() +{ +if (Schema.instance.getKSMetaData(mutation.getKeyspaceName()) == null) +return; +if (clr.pointInTimeExceeded(mutation)) +return; + +final Keyspace keyspace = Keyspace.open(mutation.getKeyspaceName()); + +// Rebuild the mutation, omitting column families that +//a) the user has requested that we ignore, +//b) have already been flushed, +// or c) are part of a cf that was dropped. +// Keep in mind that the cf.name() is suspect. do every thing based on the cfid instead. +Mutation newMutation = null; +for (PartitionUpdate update : clr.replayFilter.filter(mutation)) +{ +if (Schema.instance.getCF(update.metadata().cfId) == null) +continue; // dropped + +ReplayPosition rp = clr.cfPositions.get(update.metadata().cfId); + +// replay if current segment is newer than last flushed one or, +// if it is the last known segment, if we are after the replay position +if (segmentId > rp.segment || (segmentId == rp.segment && entryLocation > rp.position)) +{ +if (newMutation == null) +newMutation = new Mutation(mutation.getKeyspaceName(), mutation.key()); +newMutation.add(update); +clr.replayedCount.incrementAndGet(); +} +} +if (newMutation != null) +{ +assert !newMutation.isEmpty(); + +try +{ + Uninterruptibles.getUninterruptibly(Keyspace.open(newMutation.getKeyspaceName()).applyFromCommitLog(newMutation)); +} +catch (ExecutionException e) +{ - Throwables.propagate(e.getCause()); ++throw Throwables.propagate(e.getCause()); +} + +
[1/6] cassandra git commit: ninja-fix propagate usage
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 5f1e4bcad -> b9bdd9ec6 refs/heads/cassandra-3.3 de24ee94f -> 5669c6967 refs/heads/trunk 940ae5168 -> c164e51e7 ninja-fix propagate usage Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b9bdd9ec Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b9bdd9ec Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b9bdd9ec Branch: refs/heads/cassandra-3.0 Commit: b9bdd9ec648ad42d88b1377fe0e1e4ff3d162a91 Parents: 5f1e4bc Author: Carl YeksigianAuthored: Wed Feb 3 09:42:18 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 09:42:18 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java| 2 +- src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java | 2 +- src/java/org/apache/cassandra/service/paxos/PaxosState.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9bdd9ec/src/java/org/apache/cassandra/db/Mutation.java -- diff --git a/src/java/org/apache/cassandra/db/Mutation.java b/src/java/org/apache/cassandra/db/Mutation.java index 9a26456..c6ad9b8 100644 --- a/src/java/org/apache/cassandra/db/Mutation.java +++ b/src/java/org/apache/cassandra/db/Mutation.java @@ -218,7 +218,7 @@ public class Mutation implements IMutation } catch (ExecutionException e) { -Throwables.propagate(e.getCause()); +throw Throwables.propagate(e.getCause()); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9bdd9ec/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java -- diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java index 33750f8..7169b2f 100644 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java @@ -611,7 +611,7 @@ public class CommitLogReplayer } catch (ExecutionException e) { -Throwables.propagate(e.getCause()); +throw Throwables.propagate(e.getCause()); } keyspacesRecovered.add(keyspace); http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9bdd9ec/src/java/org/apache/cassandra/service/paxos/PaxosState.java -- diff --git a/src/java/org/apache/cassandra/service/paxos/PaxosState.java b/src/java/org/apache/cassandra/service/paxos/PaxosState.java index d4fed51..0b3af8f 100644 --- a/src/java/org/apache/cassandra/service/paxos/PaxosState.java +++ b/src/java/org/apache/cassandra/service/paxos/PaxosState.java @@ -146,7 +146,7 @@ public class PaxosState } catch (ExecutionException e) { -Throwables.propagate(e.getCause()); +throw Throwables.propagate(e.getCause()); } } else
[2/6] cassandra git commit: ninja-fix propagate usage
ninja-fix propagate usage Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b9bdd9ec Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b9bdd9ec Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b9bdd9ec Branch: refs/heads/cassandra-3.3 Commit: b9bdd9ec648ad42d88b1377fe0e1e4ff3d162a91 Parents: 5f1e4bc Author: Carl YeksigianAuthored: Wed Feb 3 09:42:18 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 09:42:18 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java| 2 +- src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java | 2 +- src/java/org/apache/cassandra/service/paxos/PaxosState.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9bdd9ec/src/java/org/apache/cassandra/db/Mutation.java -- diff --git a/src/java/org/apache/cassandra/db/Mutation.java b/src/java/org/apache/cassandra/db/Mutation.java index 9a26456..c6ad9b8 100644 --- a/src/java/org/apache/cassandra/db/Mutation.java +++ b/src/java/org/apache/cassandra/db/Mutation.java @@ -218,7 +218,7 @@ public class Mutation implements IMutation } catch (ExecutionException e) { -Throwables.propagate(e.getCause()); +throw Throwables.propagate(e.getCause()); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9bdd9ec/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java -- diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java index 33750f8..7169b2f 100644 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java @@ -611,7 +611,7 @@ public class CommitLogReplayer } catch (ExecutionException e) { -Throwables.propagate(e.getCause()); +throw Throwables.propagate(e.getCause()); } keyspacesRecovered.add(keyspace); http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9bdd9ec/src/java/org/apache/cassandra/service/paxos/PaxosState.java -- diff --git a/src/java/org/apache/cassandra/service/paxos/PaxosState.java b/src/java/org/apache/cassandra/service/paxos/PaxosState.java index d4fed51..0b3af8f 100644 --- a/src/java/org/apache/cassandra/service/paxos/PaxosState.java +++ b/src/java/org/apache/cassandra/service/paxos/PaxosState.java @@ -146,7 +146,7 @@ public class PaxosState } catch (ExecutionException e) { -Throwables.propagate(e.getCause()); +throw Throwables.propagate(e.getCause()); } } else
[jira] [Commented] (CASSANDRA-10099) Improve concurrency in CompactionStrategyManager
[ https://issues.apache.org/jira/browse/CASSANDRA-10099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130525#comment-15130525 ] Yuki Morishita commented on CASSANDRA-10099: [~krummas] I don't think granularly controlling lock in CompactionStrategyManager helps much, and we will have little concurrency issue as you mentioned. I noticed that all 3 compaction strategies loop in {{getNextBackgroundTask}} to eagerly create compaction task while holding lock(synchronized), but I think we can just give up if we cannot create one is fine. We can try in next round, and this will release the lock early so we do not block flushing memtable. WDYT? > Improve concurrency in CompactionStrategyManager > > > Key: CASSANDRA-10099 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10099 > Project: Cassandra > Issue Type: Improvement >Reporter: Yuki Morishita >Assignee: Marcus Eriksson > Fix For: 2.1.x, 2.2.x, 3.x > > > Continue discussion from CASSANDRA-9882. > CompactionStrategyManager(WrappingCompactionStrategy for <3.0) tracks SSTable > changes mainly for separating repaired / unrepaired SSTables (+ LCS manages > level). > This is blocking operation, and can lead to block of flush etc. when > determining next background task takes longer. > Explore the way to mitigate this concurrency issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[5/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3
Merge branch 'cassandra-3.0' into cassandra-3.3 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5669c696 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5669c696 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5669c696 Branch: refs/heads/cassandra-3.3 Commit: 5669c6967bbdd540f27aeebf5a2c258bc4defbe3 Parents: de24ee9 b9bdd9e Author: Carl YeksigianAuthored: Wed Feb 3 09:44:01 2016 -0500 Committer: Carl Yeksigian Committed: Wed Feb 3 09:44:01 2016 -0500 -- src/java/org/apache/cassandra/db/Mutation.java| 2 +- src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java | 2 +- src/java/org/apache/cassandra/service/paxos/PaxosState.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5669c696/src/java/org/apache/cassandra/db/Mutation.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5669c696/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java -- diff --cc src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java index 985a036,7169b2f..e0518a9 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java @@@ -91,74 -85,6 +91,74 @@@ public class CommitLogReplaye private final ReplayFilter replayFilter; private final CommitLogArchiver archiver; +/* + * Wrapper around initiating mutations read from the log to make it possible + * to spy on initiated mutations for test + */ +@VisibleForTesting +public static class MutationInitiator +{ +protected Future initiateMutation(final Mutation mutation, + final long segmentId, + final int serializedSize, + final long entryLocation, + final CommitLogReplayer clr) +{ +Runnable runnable = new WrappedRunnable() +{ +public void runMayThrow() +{ +if (Schema.instance.getKSMetaData(mutation.getKeyspaceName()) == null) +return; +if (clr.pointInTimeExceeded(mutation)) +return; + +final Keyspace keyspace = Keyspace.open(mutation.getKeyspaceName()); + +// Rebuild the mutation, omitting column families that +//a) the user has requested that we ignore, +//b) have already been flushed, +// or c) are part of a cf that was dropped. +// Keep in mind that the cf.name() is suspect. do every thing based on the cfid instead. +Mutation newMutation = null; +for (PartitionUpdate update : clr.replayFilter.filter(mutation)) +{ +if (Schema.instance.getCF(update.metadata().cfId) == null) +continue; // dropped + +ReplayPosition rp = clr.cfPositions.get(update.metadata().cfId); + +// replay if current segment is newer than last flushed one or, +// if it is the last known segment, if we are after the replay position +if (segmentId > rp.segment || (segmentId == rp.segment && entryLocation > rp.position)) +{ +if (newMutation == null) +newMutation = new Mutation(mutation.getKeyspaceName(), mutation.key()); +newMutation.add(update); +clr.replayedCount.incrementAndGet(); +} +} +if (newMutation != null) +{ +assert !newMutation.isEmpty(); + +try +{ + Uninterruptibles.getUninterruptibly(Keyspace.open(newMutation.getKeyspaceName()).applyFromCommitLog(newMutation)); +} +catch (ExecutionException e) +{ - Throwables.propagate(e.getCause()); ++throw Throwables.propagate(e.getCause()); +} + +
[jira] [Commented] (CASSANDRA-10779) Mutations do not block for completion under view lock contention
[ https://issues.apache.org/jira/browse/CASSANDRA-10779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130504#comment-15130504 ] Carl Yeksigian commented on CASSANDRA-10779: I mistakenly wrapped the ExecutionException's cause in a RuntimeException, when we should have been propogating it. Changed to use Throwables.propagate instead so that we get back the WriteTimeoutException instead of a RE. > Mutations do not block for completion under view lock contention > > > Key: CASSANDRA-10779 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10779 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths > Environment: Windows 7 64-bit, Cassandra v3.0.0, Java 1.8u60 >Reporter: Will Zhang >Assignee: Carl Yeksigian > Fix For: 3.0.3, 3.3 > > > Hi guys, > I encountered the following warning message when I was testing to upgrade > from v2.2.2 to v3.0.0. > It looks like a write time-out but in an uncaught exception. Could this be an > easy fix? > Log file section below. Thank you! > {code} > WARN [SharedPool-Worker-64] 2015-11-26 14:04:24,678 > AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-64,10,main]: {} > org.apache.cassandra.exceptions.WriteTimeoutException: Operation timed out - > received only 0 responses. > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:427) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:386) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Mutation.apply(Mutation.java:205) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.db.Keyspace.lambda$apply$59(Keyspace.java:435) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_60] > at > org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) > [apache-cassandra-3.0.0.jar:3.0.0] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60] > INFO [IndexSummaryManager:1] 2015-11-26 14:41:10,527 > IndexSummaryManager.java:257 - Redistributing index summaries > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11053) COPY FROM on large datasets: fix progress report and debug performance
[ https://issues.apache.org/jira/browse/CASSANDRA-11053?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15130553#comment-15130553 ] Brian Hess commented on CASSANDRA-11053: - [~Stefania] - I believe that is the correct invocation. However, that performance is about half of what I saw when I ran against the same setup (r3.2xlarge client writing to a cluster of 8 i2.2xlarge machines). The rate I had was 98K writes/sec (total time was 209 seconds). > COPY FROM on large datasets: fix progress report and debug performance > -- > > Key: CASSANDRA-11053 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11053 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Stefania >Assignee: Stefania > Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x > > Attachments: copy_from_large_benchmark.txt, > copy_from_large_benchmark_2.txt, parent_profile.txt, parent_profile_2.txt, > worker_profiles.txt, worker_profiles_2.txt > > > Running COPY from on a large dataset (20G divided in 20M records) revealed > two issues: > * The progress report is incorrect, it is very slow until almost the end of > the test at which point it catches up extremely quickly. > * The performance in rows per second is similar to running smaller tests with > a smaller cluster locally (approx 35,000 rows per second). As a comparison, > cassandra-stress manages 50,000 rows per second under the same set-up, > therefore resulting 1.5 times faster. > See attached file _copy_from_large_benchmark.txt_ for the benchmark details. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-7980) cassandra-stress should support partial clustering column generation
[ https://issues.apache.org/jira/browse/CASSANDRA-7980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-7980: Assignee: (was: Branimir Lambov) > cassandra-stress should support partial clustering column generation > > > Key: CASSANDRA-7980 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7980 > Project: Cassandra > Issue Type: Improvement > Components: Testing >Reporter: Benedict >Priority: Minor > > cassandra-stress generates its data randomly, in tiers, so that we can scroll > through the partitions it generates without having to generate their > entirety. The problem is that to support very large partitions (important for > benchmarking certain cases, and acceptance testing) we have to have a large > number of clustering columns - generally more than we would otherwise have, > which changes the performance characteristics. We should effectively split > each clustering column into a number of byte-ranges that become tiers for > visitation. The only real complexity here is in obeying the size/count > distribution range specified, which would be difficult for exponential > distributions, however we could require the user specify the ranges, and > distributions for each range, upfront. We could even treat them exactly like > other column specifications, but as sub-specs within a given column in the > yaml. Or, we could simply accept that we imperfectly follow the distribution > in these situations. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[1/4] cassandra git commit: 3.0.3 release versions
Repository: cassandra Updated Branches: refs/heads/trunk efd54c77e -> 617bf46ef 3.0.3 release versions Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/21380fc1 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/21380fc1 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/21380fc1 Branch: refs/heads/trunk Commit: 21380fc129c91bb17d27aa02378699e9d94a7ab6 Parents: c4d83f1 Author: T Jake LucianiAuthored: Wed Feb 3 08:56:26 2016 -0500 Committer: T Jake Luciani Committed: Wed Feb 3 08:56:26 2016 -0500 -- build.xml| 2 +- debian/changelog | 6 ++ 2 files changed, 7 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/21380fc1/build.xml -- diff --git a/build.xml b/build.xml index 9e8c135..f9ff00d 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ - + http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree"/> http://git-wip-us.apache.org/repos/asf/cassandra/blob/21380fc1/debian/changelog -- diff --git a/debian/changelog b/debian/changelog index f1232ab..0f3a46c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (3.0.3) unstable; urgency=medium + + * New release + + -- Jake Luciani Wed, 03 Feb 2016 08:54:57 -0500 + cassandra (3.0.1) unstable; urgency=medium * New release
[3/4] cassandra git commit: 3.3 version updates
3.3 version updates Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/78fe8c48 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/78fe8c48 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/78fe8c48 Branch: refs/heads/trunk Commit: 78fe8c487b53939c933718bc4e470b78e677df51 Parents: f240c95 Author: T Jake LucianiAuthored: Wed Feb 3 09:22:29 2016 -0500 Committer: T Jake Luciani Committed: Wed Feb 3 09:22:29 2016 -0500 -- NEWS.txt | 8 debian/changelog | 6 ++ 2 files changed, 14 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/78fe8c48/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 9dd4e25..92f3d3e 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -13,6 +13,14 @@ restore snapshots created with the previous major version using the 'sstableloader' tool. You can upgrade the file format of your snapshots using the provided 'sstableupgrade' tool. +3.3 +=== + +Upgrading +- +- Nothing specific to this release, but please see 3.0 if you are upgrading + from a previous version. + 3.2 === http://git-wip-us.apache.org/repos/asf/cassandra/blob/78fe8c48/debian/changelog -- diff --git a/debian/changelog b/debian/changelog index 7e455ac..b975a5e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (3.3) unstable; urgency=medium + + * New release + + -- Jake Luciani Wed, 03 Feb 2016 09:00:11 -0500 + cassandra (3.2) unstable; urgency=medium * New release
[4/4] cassandra git commit: Merge branch 'cassandra-3.3' into trunk
Merge branch 'cassandra-3.3' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/617bf46e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/617bf46e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/617bf46e Branch: refs/heads/trunk Commit: 617bf46ef87df7a3875d567f255ef182fa25fee2 Parents: efd54c7 78fe8c4 Author: T Jake LucianiAuthored: Wed Feb 3 09:24:17 2016 -0500 Committer: T Jake Luciani Committed: Wed Feb 3 09:24:17 2016 -0500 -- --
[2/4] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3
Merge branch 'cassandra-3.0' into cassandra-3.3 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f240c95f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f240c95f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f240c95f Branch: refs/heads/trunk Commit: f240c95f5de32585b00c530fe248965d05fdf84d Parents: 233e785 21380fc Author: T Jake LucianiAuthored: Wed Feb 3 08:57:50 2016 -0500 Committer: T Jake Luciani Committed: Wed Feb 3 08:57:50 2016 -0500 -- --
[jira] [Resolved] (CASSANDRA-10779) Mutations do not block for completion under view lock contention
[ https://issues.apache.org/jira/browse/CASSANDRA-10779?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Carl Yeksigian resolved CASSANDRA-10779. Resolution: Fixed Third time is the charm. Committed in [5f1e4bc|https://git1-us-west.apache.org/repos/asf?p=cassandra.git;a=commit;h=5f1e4bcad7d36feb97096c6149ad3c43f26f0fd9]. > Mutations do not block for completion under view lock contention > > > Key: CASSANDRA-10779 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10779 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths > Environment: Windows 7 64-bit, Cassandra v3.0.0, Java 1.8u60 >Reporter: Will Zhang >Assignee: Carl Yeksigian > Fix For: 3.0.3, 3.3 > > > Hi guys, > I encountered the following warning message when I was testing to upgrade > from v2.2.2 to v3.0.0. > It looks like a write time-out but in an uncaught exception. Could this be an > easy fix? > Log file section below. Thank you! > {code} > WARN [SharedPool-Worker-64] 2015-11-26 14:04:24,678 > AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-64,10,main]: {} > org.apache.cassandra.exceptions.WriteTimeoutException: Operation timed out - > received only 0 responses. > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:427) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:386) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at org.apache.cassandra.db.Mutation.apply(Mutation.java:205) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.db.Keyspace.lambda$apply$59(Keyspace.java:435) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_60] > at > org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) > ~[apache-cassandra-3.0.0.jar:3.0.0] > at > org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) > [apache-cassandra-3.0.0.jar:3.0.0] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60] > INFO [IndexSummaryManager:1] 2015-11-26 14:41:10,527 > IndexSummaryManager.java:257 - Redistributing index summaries > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11053) COPY FROM on large datasets: fix progress report and debug performance
[ https://issues.apache.org/jira/browse/CASSANDRA-11053?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131446#comment-15131446 ] Stefania commented on CASSANDRA-11053: -- Could you check the ctool invocations in _copy_from_large_benchmark_2.txt_ attached to see if there are any differences? I'm running cassandra 2.1 from source but that should not make such a big difference. The data generation commands are also in the same file and repeated here: {code} make dirs make gen make data100B make data1KB {code} It's not indicated in the file but I also truncate the table in use before running a test. > COPY FROM on large datasets: fix progress report and debug performance > -- > > Key: CASSANDRA-11053 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11053 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Stefania >Assignee: Stefania > Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x > > Attachments: copy_from_large_benchmark.txt, > copy_from_large_benchmark_2.txt, parent_profile.txt, parent_profile_2.txt, > worker_profiles.txt, worker_profiles_2.txt > > > Running COPY from on a large dataset (20G divided in 20M records) revealed > two issues: > * The progress report is incorrect, it is very slow until almost the end of > the test at which point it catches up extremely quickly. > * The performance in rows per second is similar to running smaller tests with > a smaller cluster locally (approx 35,000 rows per second). As a comparison, > cassandra-stress manages 50,000 rows per second under the same set-up, > therefore resulting 1.5 times faster. > See attached file _copy_from_large_benchmark.txt_ for the benchmark details. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-10819) Generic Java UDF types
[ https://issues.apache.org/jira/browse/CASSANDRA-10819?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131358#comment-15131358 ] DOAN DuyHai edited comment on CASSANDRA-10819 at 2/3/16 11:27 PM: -- Some remark after code review: {code:java} private static String javaSourceName(TypeToken type) { String n = type.toString(); return n.startsWith("java.lang.") ? n.substring("java.lang.".length()) : n; } {code} rather {code}n.replaceAll("java\\.lang\\.",""){code} ? Because now with the generics kept, we can have *java.lang.Map* Otherwise LGTM was (Author: doanduyhai): Some remark after code review: {code:java} private static String javaSourceName(TypeToken type) { String n = type.toString(); return n.startsWith("java.lang.") ? n.substring("java.lang.".length()) : n; } {code} rather {code}n.replaceAll("java\\.lang\\.",""){code} ? > Generic Java UDF types > -- > > Key: CASSANDRA-10819 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10819 > Project: Cassandra > Issue Type: Improvement > Components: CQL >Reporter: Robert Stupp >Assignee: Robert Stupp >Priority: Minor > Labels: UDF, doc-impacting > Fix For: 3.x > > > At the moment we only generate raw type signatures for Java UDF methods. E.g. > a CQL argument type {{map }} is just mapped to {{java.util.Map}} > but could be mapped to {{java.util.Map }}. > It's a probably simple but nice improvement and feels to be a LHF. > Depending on the complexity it might be doable for 3.0.x, too. > Thanks for the heads-up, [~doanduyhai]! -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11067) Improve SASI syntax
[ https://issues.apache.org/jira/browse/CASSANDRA-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131330#comment-15131330 ] Pavel Yaskevich commented on CASSANDRA-11067: - [~beobal] I've fixed LIKE to be case-insensitive and pushed amended commit to the issue branch, going to trigger CI build. > Improve SASI syntax > --- > > Key: CASSANDRA-11067 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11067 > Project: Cassandra > Issue Type: Task > Components: CQL >Reporter: Jonathan Ellis >Assignee: Pavel Yaskevich > Fix For: 3.4 > > > I think everyone agrees that a LIKE operator would be ideal, but that's > probably not in scope for an initial 3.4 release. > Still, I'm uncomfortable with the initial approach of overloading = to mean > "satisfies index expression." The problem is that it will be very difficult > to back out of this behavior once people are using it. > I propose adding a new operator in the interim instead. Call it MATCHES, > maybe. With the exact same behavior that SASI currently exposes, just with a > separate operator rather than being rolled into =. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11067) Improve SASI syntax
[ https://issues.apache.org/jira/browse/CASSANDRA-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131479#comment-15131479 ] Jonathan Ellis commented on CASSANDRA-11067: bq. only if LIKE is used without '%' it means essentially an equals, and "=" is always an exact match right now. But you're talking about exact match for search terms, right? I'm talking about exact match for the entire column. So, {code} SELECT * FROM sasi WHERE bio = 'distributing' {code} should return zero rows, but {code} SELECT * FROM sasi WHERE bio = 'Software Engineer, works on the freight distribution at nights and likes arguing' {code} should return one row. If that's how it already works, I apologize for the noise! > Improve SASI syntax > --- > > Key: CASSANDRA-11067 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11067 > Project: Cassandra > Issue Type: Task > Components: CQL >Reporter: Jonathan Ellis >Assignee: Pavel Yaskevich > Fix For: 3.4 > > > I think everyone agrees that a LIKE operator would be ideal, but that's > probably not in scope for an initial 3.4 release. > Still, I'm uncomfortable with the initial approach of overloading = to mean > "satisfies index expression." The problem is that it will be very difficult > to back out of this behavior once people are using it. > I propose adding a new operator in the interim instead. Call it MATCHES, > maybe. With the exact same behavior that SASI currently exposes, just with a > separate operator rather than being rolled into =. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11119) Add bytes-to-compact estimate
[ https://issues.apache.org/jira/browse/CASSANDRA-9?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131506#comment-15131506 ] Brandon Williams commented on CASSANDRA-9: -- FWIW, I have seen people confused about pending tasks, and ultimately I just end up explaining that it sucks and don't worry about it, so +1. > Add bytes-to-compact estimate > - > > Key: CASSANDRA-9 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9 > Project: Cassandra > Issue Type: Bug > Components: Compaction >Reporter: Jonathan Ellis > Fix For: 3.x > > > Pending tasks is essentially useless at letting operators know how far behind > compaction is. For STCS, because compaction tasks can vary in size by > several orders of magnitude, so "4 more tasks" is a very wide range. For > LCS, I think the problem is that we only look at first-order work (how much > larger is level X than it "should" be?) and not cascading effects, > particularly in L0 (if we push this into L1, how much does that push into L2 > etc?). > I propose adding an estimate of bytes-to-compact (and deprecating estimated > tasks). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11035) Use cardinality estimation to pick better compaction candidates for STCS (SizeTieredCompactionStrategy)
[ https://issues.apache.org/jira/browse/CASSANDRA-11035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131519#comment-15131519 ] Jonathan Ellis commented on CASSANDRA-11035: I actually think we may want this disabled for STCS-in-L0, since what you have there is a whole bunch of recently flushed data that probably doesn't overwrite itself much. So the overhead of a quadratic cardinality comparison is not going to pay off much in terms of better compaction. > Use cardinality estimation to pick better compaction candidates for STCS > (SizeTieredCompactionStrategy) > --- > > Key: CASSANDRA-11035 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11035 > Project: Cassandra > Issue Type: Improvement > Components: Compaction >Reporter: Wei Deng > > This was initially mentioned in this blog post > http://www.datastax.com/dev/blog/improving-compaction-in-cassandra-with-cardinality-estimation > but I couldn't find any existing JIRA for it. As stated by [~jbellis], > "Potentially even more useful would be using cardinality estimation to pick > better compaction candidates. Instead of blindly merging sstables of a > similar size a la SizeTieredCompactionStrategy." The L0 STCS in LCS should > benefit as well. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11067) Improve SASI syntax
[ https://issues.apache.org/jira/browse/CASSANDRA-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131552#comment-15131552 ] Pavel Yaskevich commented on CASSANDRA-11067: - The problem which that approach is some of the tokenization doesn't cause changes to internal structure of the text so requiring always to use "=" is not aways adequate. I would say we need to let indexing implementations decide what ops to support and how to support them, because "=" for tokenized/stemmed results is a norm. > Improve SASI syntax > --- > > Key: CASSANDRA-11067 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11067 > Project: Cassandra > Issue Type: Task > Components: CQL >Reporter: Jonathan Ellis >Assignee: Pavel Yaskevich > Fix For: 3.4 > > > I think everyone agrees that a LIKE operator would be ideal, but that's > probably not in scope for an initial 3.4 release. > Still, I'm uncomfortable with the initial approach of overloading = to mean > "satisfies index expression." The problem is that it will be very difficult > to back out of this behavior once people are using it. > I propose adding a new operator in the interim instead. Call it MATCHES, > maybe. With the exact same behavior that SASI currently exposes, just with a > separate operator rather than being rolled into =. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11067) Improve SASI syntax
[ https://issues.apache.org/jira/browse/CASSANDRA-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131658#comment-15131658 ] Pavel Yaskevich commented on CASSANDRA-11067: - Sure, here is one of the scenarios: - I create an index on the column - first_name and I just set up 'mode' = 'PREFIX' - all the queries I do need to be on the strict equality e.g. `SELECT * FROM users WHERE first_name = 'Pavel' LIMIT 10;` - But then I realize that what I really want is results to be case insensitive still do a strict equality on the word itself, so I add option to the index - set analyzer class to NonTokenizingAnalyzer and set "case_sensitive" to "false" - `SELECT * FROM users WHERE first_name = 'Pavel' LIMIT 10;` would still produce results (probably more since it can match PaVel, pavel etc.) because analyzer would process input text and down-case and match it internally with already down-cased index although the original data is not touched at all. But if we do query enforce LIKE it would mean that my `first_name =` is going to start failing with something like following "InvalidRequest("Use LIKE instead of EQ for column 'first_name'") instead, which doesn't really make much sense to me as a user because I still want to do my strict equality queries. > Improve SASI syntax > --- > > Key: CASSANDRA-11067 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11067 > Project: Cassandra > Issue Type: Task > Components: CQL >Reporter: Jonathan Ellis >Assignee: Pavel Yaskevich > Fix For: 3.4 > > > I think everyone agrees that a LIKE operator would be ideal, but that's > probably not in scope for an initial 3.4 release. > Still, I'm uncomfortable with the initial approach of overloading = to mean > "satisfies index expression." The problem is that it will be very difficult > to back out of this behavior once people are using it. > I propose adding a new operator in the interim instead. Call it MATCHES, > maybe. With the exact same behavior that SASI currently exposes, just with a > separate operator rather than being rolled into =. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11119) Add bytes-to-compact estimate
[ https://issues.apache.org/jira/browse/CASSANDRA-9?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131501#comment-15131501 ] Jonathan Ellis commented on CASSANDRA-9: We can actually get pretty accurate with STCS thanks to HyperLogLog. For LCS we're probably still looking at some pretty rough estimates. > Add bytes-to-compact estimate > - > > Key: CASSANDRA-9 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9 > Project: Cassandra > Issue Type: Bug > Components: Compaction >Reporter: Jonathan Ellis > Fix For: 3.x > > > Pending tasks is essentially useless at letting operators know how far behind > compaction is. For STCS, because compaction tasks can vary in size by > several orders of magnitude, so "4 more tasks" is a very wide range. For > LCS, I think the problem is that we only look at first-order work (how much > larger is level X than it "should" be?) and not cascading effects, > particularly in L0 (if we push this into L1, how much does that push into L2 > etc?). > I propose adding an estimate of bytes-to-compact (and deprecating estimated > tasks). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11067) Improve SASI syntax
[ https://issues.apache.org/jira/browse/CASSANDRA-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131534#comment-15131534 ] Pavel Yaskevich commented on CASSANDRA-11067: - If you don't add an analyzer to the column which does stemming and tokenization it would work exactly how you describe - "distributing" would return 0 results and whole string would be 1, it's tokenization feature which makes it work the way it does in the example because after tokenization every term in the of that string is a separate entity and even more in case of "distributing" only it's stem is going to be saved which is "distribut" that's why matching "distributing" vs. "distribution" which is an original value is going to produce results, but to make it work there are multiple additional SASI options needed, by default it's not going to do any of that. > Improve SASI syntax > --- > > Key: CASSANDRA-11067 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11067 > Project: Cassandra > Issue Type: Task > Components: CQL >Reporter: Jonathan Ellis >Assignee: Pavel Yaskevich > Fix For: 3.4 > > > I think everyone agrees that a LIKE operator would be ideal, but that's > probably not in scope for an initial 3.4 release. > Still, I'm uncomfortable with the initial approach of overloading = to mean > "satisfies index expression." The problem is that it will be very difficult > to back out of this behavior once people are using it. > I propose adding a new operator in the interim instead. Call it MATCHES, > maybe. With the exact same behavior that SASI currently exposes, just with a > separate operator rather than being rolled into =. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11067) Improve SASI syntax
[ https://issues.apache.org/jira/browse/CASSANDRA-11067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131570#comment-15131570 ] Pavel Yaskevich commented on CASSANDRA-11067: - [~beobal] FYI, all CI tests are complete, dtest has 0 errors and testall has unrelated failure which happens in the trunk as well. > Improve SASI syntax > --- > > Key: CASSANDRA-11067 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11067 > Project: Cassandra > Issue Type: Task > Components: CQL >Reporter: Jonathan Ellis >Assignee: Pavel Yaskevich > Fix For: 3.4 > > > I think everyone agrees that a LIKE operator would be ideal, but that's > probably not in scope for an initial 3.4 release. > Still, I'm uncomfortable with the initial approach of overloading = to mean > "satisfies index expression." The problem is that it will be very difficult > to back out of this behavior once people are using it. > I propose adding a new operator in the interim instead. Call it MATCHES, > maybe. With the exact same behavior that SASI currently exposes, just with a > separate operator rather than being rolled into =. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-11119) Add bytes-to-compact estimate
Jonathan Ellis created CASSANDRA-9: -- Summary: Add bytes-to-compact estimate Key: CASSANDRA-9 URL: https://issues.apache.org/jira/browse/CASSANDRA-9 Project: Cassandra Issue Type: Bug Components: Compaction Reporter: Jonathan Ellis Fix For: 3.x Pending tasks is essentially useless at letting operators know how far behind compaction is. For STCS, because compaction tasks can vary in size by several orders of magnitude, so "4 more tasks" is a very wide range. For LCS, I think the problem is that we only look at first-order work (how much larger is level X than it "should" be?) and not cascading effects, particularly in L0 (if we push this into L1, how much does that push into L2 etc?). I propose adding an estimate of bytes-to-compact (and deprecating estimated tasks). -- This message was sent by Atlassian JIRA (v6.3.4#6332)