[01/10] cassandra git commit: (cqlsh) encode input correctly when saving history
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 deafdbe37 -> 3aaae7aa5 refs/heads/cassandra-3.0 a60a80b83 -> bee7917b4 refs/heads/cassandra-3.3 8ab41c8d0 -> 83ad9ce7d refs/heads/trunk f82646e81 -> 190e14a07 (cqlsh) encode input correctly when saving history patch by matthieu.nantern; reviewed by pauloricardomg for CASSANDRA-10948 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3aaae7aa Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3aaae7aa Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3aaae7aa Branch: refs/heads/cassandra-2.2 Commit: 3aaae7aa59f3a08a657f4e7c93c848864117378f Parents: deafdbe Author: Matthieu NanternAuthored: Tue Dec 29 10:15:14 2015 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:03:20 2016 +0100 -- CHANGES.txt | 1 + bin/cqlsh.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3aaae7aa/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 1a92fd6..37a0137 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -23,6 +23,7 @@ * Better handling of SSL connection errors inter-node (CASSANDRA-10816) * Disable reloading of GossipingPropertyFileSnitch (CASSANDRA-9474) * Verify tables in pseudo-system keyspaces at startup (CASSANDRA-10761) + * (cqlsh) encode input correctly when saving history Merged from 2.1: * Fix bad gossip generation seen in long-running clusters (CASSANDRA-10969) * Avoid NPE when incremental repair fails (CASSANDRA-10909) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3aaae7aa/bin/cqlsh.py -- diff --git a/bin/cqlsh.py b/bin/cqlsh.py index c03a3c2..17c42a6 100644 --- a/bin/cqlsh.py +++ b/bin/cqlsh.py @@ -1123,7 +1123,7 @@ class Shell(cmd.Cmd): new_hist = srcstr.replace("\n", " ").rstrip() if nl_count > 1 and self.last_hist != new_hist: -readline.add_history(new_hist) +readline.add_history(new_hist.encode(self.encoding)) self.last_hist = new_hist cmdword = tokens[0][1]
[02/10] cassandra git commit: (cqlsh) encode input correctly when saving history
(cqlsh) encode input correctly when saving history patch by matthieu.nantern; reviewed by pauloricardomg for CASSANDRA-10948 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3aaae7aa Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3aaae7aa Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3aaae7aa Branch: refs/heads/cassandra-3.0 Commit: 3aaae7aa59f3a08a657f4e7c93c848864117378f Parents: deafdbe Author: Matthieu NanternAuthored: Tue Dec 29 10:15:14 2015 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:03:20 2016 +0100 -- CHANGES.txt | 1 + bin/cqlsh.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3aaae7aa/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 1a92fd6..37a0137 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -23,6 +23,7 @@ * Better handling of SSL connection errors inter-node (CASSANDRA-10816) * Disable reloading of GossipingPropertyFileSnitch (CASSANDRA-9474) * Verify tables in pseudo-system keyspaces at startup (CASSANDRA-10761) + * (cqlsh) encode input correctly when saving history Merged from 2.1: * Fix bad gossip generation seen in long-running clusters (CASSANDRA-10969) * Avoid NPE when incremental repair fails (CASSANDRA-10909) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3aaae7aa/bin/cqlsh.py -- diff --git a/bin/cqlsh.py b/bin/cqlsh.py index c03a3c2..17c42a6 100644 --- a/bin/cqlsh.py +++ b/bin/cqlsh.py @@ -1123,7 +1123,7 @@ class Shell(cmd.Cmd): new_hist = srcstr.replace("\n", " ").rstrip() if nl_count > 1 and self.last_hist != new_hist: -readline.add_history(new_hist) +readline.add_history(new_hist.encode(self.encoding)) self.last_hist = new_hist cmdword = tokens[0][1]
[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/83ad9ce7 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/83ad9ce7 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/83ad9ce7 Branch: refs/heads/cassandra-3.3 Commit: 83ad9ce7d696fe07353340118c11f8a31f0f767b Parents: 8ab41c8 bee7917 Author: Sylvain LebresneAuthored: Fri Jan 22 16:08:21 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:08:21 2016 +0100 -- CHANGES.txt | 3 ++- bin/cqlsh.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/83ad9ce7/CHANGES.txt -- diff --cc CHANGES.txt index 8a41b2e,fa4042c..2e1f8c3 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -15,8 -11,18 +15,8 @@@ Merged from 3.0 tombstone (CASSANDRA-10743) * MV should use the maximum timestamp of the primary key (CASSANDRA-10910) * Fix potential assertion error during compaction (CASSANDRA-10944) - * Fix counting of received sstables in streaming (CASSANDRA-10949) - * Implement hints compression (CASSANDRA-9428) - * Fix potential assertion error when reading static columns (CASSANDRA-10903) - * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711) - * Avoid building PartitionUpdate in toString (CASSANDRA-10897) - * Reduce heap spent when receiving many SSTables (CASSANDRA-10797) - * Add back support for 3rd party auth providers to bulk loader (CASSANDRA-10873) - * Eliminate the dependency on jgrapht for UDT resolution (CASSANDRA-10653) - * (Hadoop) Close Clusters and Sessions in Hadoop Input/Output classes (CASSANDRA-10837) - * Fix sstableloader not working with upper case keyspace name (CASSANDRA-10806) Merged from 2.2: --2.2.5 ++ * (cqlsh) encode input correctly when saving history * Fix potential NPE on ORDER BY queries with IN (CASSANDRA-10955) * Start L0 STCS-compactions even if there is a L0 -> L1 compaction going (CASSANDRA-10979) @@@ -42,53 -59,6 +42,54 @@@ Merged from 2.1 * Retry sending gossip syn multiple times during shadow round (CASSANDRA-8072) * Fix pending range calculation during moves (CASSANDRA-10887) * Sane default (200Mbps) for inter-DC streaming througput (CASSANDRA-8708) + + +3.2 + * Make sure tokens don't exist in several data directories (CASSANDRA-6696) + * Add requireAuthorization method to IAuthorizer (CASSANDRA-10852) + * Move static JVM options to conf/jvm.options file (CASSANDRA-10494) + * Fix CassandraVersion to accept x.y version string (CASSANDRA-10931) + * Add forceUserDefinedCleanup to allow more flexible cleanup (CASSANDRA-10708) + * (cqlsh) allow setting TTL with COPY (CASSANDRA-9494) + * Fix counting of received sstables in streaming (CASSANDRA-10949) + * Implement hints compression (CASSANDRA-9428) + * Fix potential assertion error when reading static columns (CASSANDRA-10903) + * Fix EstimatedHistogram creation in nodetool tablehistograms (CASSANDRA-10859) + * Establish bootstrap stream sessions sequentially (CASSANDRA-6992) + * Sort compactionhistory output by timestamp (CASSANDRA-10464) + * More efficient BTree removal (CASSANDRA-9991) + * Make tablehistograms accept the same syntax as tablestats (CASSANDRA-10149) + * Group pending compactions based on table (CASSANDRA-10718) + * Add compressor name in sstablemetadata output (CASSANDRA-9879) + * Fix type casting for counter columns (CASSANDRA-10824) + * Prevent running Cassandra as root (CASSANDRA-8142) + * bound maximum in-flight commit log replay mutation bytes to 64 megabytes (CASSANDRA-8639) + * Normalize all scripts (CASSANDRA-10679) + * Make compression ratio much more accurate (CASSANDRA-10225) + * Optimize building of Clustering object when only one is created (CASSANDRA-10409) + * Make index building pluggable (CASSANDRA-10681) + * Add sstable flush observer (CASSANDRA-10678) + * Improve NTS endpoints calculation (CASSANDRA-10200) + * Improve performance of the folderSize function (CASSANDRA-10677) + * Add support for type casting in selection clause (CASSANDRA-10310) + * Added graphing option to cassandra-stress (CASSANDRA-7918) + * Abort in-progress queries that time out (CASSANDRA-7392) + * Add transparent data encryption core classes (CASSANDRA-9945) +Merged from 3.0: ++ * Better handling of SSL connection errors inter-node (CASSANDRA-10816) + * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711) + * Avoid building PartitionUpdate in toString (CASSANDRA-10897) + * Reduce heap spent when receiving many SSTables (CASSANDRA-10797) + * Add back support for 3rd party auth providers to bulk
[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/190e14a0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/190e14a0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/190e14a0 Branch: refs/heads/trunk Commit: 190e14a076a13cbd759aa4e8ec2b0a635e8cc2c1 Parents: f82646e 83ad9ce Author: Sylvain LebresneAuthored: Fri Jan 22 16:08:36 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:08:36 2016 +0100 -- CHANGES.txt | 3 ++- bin/cqlsh.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/190e14a0/CHANGES.txt --
[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/bee7917b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bee7917b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bee7917b Branch: refs/heads/trunk Commit: bee7917b4dcca9779ff7b2ee9b97a7c4299ceacd Parents: a60a80b 3aaae7a Author: Sylvain LebresneAuthored: Fri Jan 22 16:03:52 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:03:52 2016 +0100 -- CHANGES.txt | 1 + bin/cqlsh.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/bee7917b/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/bee7917b/bin/cqlsh.py --
[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/e1cc0150 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e1cc0150 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e1cc0150 Branch: refs/heads/cassandra-3.3 Commit: e1cc0150de45b64387d69df7af79fc715d5bbab0 Parents: bee7917 dd2006b Author: Sylvain LebresneAuthored: Fri Jan 22 16:24:15 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:24:15 2016 +0100 -- CHANGES.txt | 1 + .../db/compaction/CompactionManager.java| 25 +--- .../cassandra/service/StorageService.java | 1 + 3 files changed, 19 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1cc0150/CHANGES.txt -- diff --cc CHANGES.txt index fa4042c,dcaccfc..4a0bca8 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,29 -1,7 +1,30 @@@ +3.0.3 + * Update CQL documentation (CASSANDRA-10899) + * Check the column name, not cell name, for dropped columns when reading + legacy sstables (CASSANDRA-11018) + * Don't attempt to index clustering values of static rows (CASSANDRA-11021) + * Remove checksum files after replaying hints (CASSANDRA-10947) + * Support passing base table metadata to custom 2i validation (CASSANDRA-10924) + * Ensure stale index entries are purged during reads (CASSANDRA-11013) + * Fix AssertionError when removing from list using UPDATE (CASSANDRA-10954) + * Fix UnsupportedOperationException when reading old sstable with range + tombstone (CASSANDRA-10743) + * MV should use the maximum timestamp of the primary key (CASSANDRA-10910) + * Fix potential assertion error during compaction (CASSANDRA-10944) + * Fix counting of received sstables in streaming (CASSANDRA-10949) + * Implement hints compression (CASSANDRA-9428) + * Fix potential assertion error when reading static columns (CASSANDRA-10903) + * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711) + * Avoid building PartitionUpdate in toString (CASSANDRA-10897) + * Reduce heap spent when receiving many SSTables (CASSANDRA-10797) + * Add back support for 3rd party auth providers to bulk loader (CASSANDRA-10873) + * Eliminate the dependency on jgrapht for UDT resolution (CASSANDRA-10653) + * (Hadoop) Close Clusters and Sessions in Hadoop Input/Output classes (CASSANDRA-10837) + * Fix sstableloader not working with upper case keyspace name (CASSANDRA-10806) +Merged from 2.2: 2.2.5 + * Apply change to compaction throughput in real time (CASSANDRA-10025) * Fix potential NPE on ORDER BY queries with IN (CASSANDRA-10955) - * Avoid over-fetching during the page of range queries (CASSANDRA-8521) * Start L0 STCS-compactions even if there is a L0 -> L1 compaction going (CASSANDRA-10979) * Make UUID LSB unique per process (CASSANDRA-7925) http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1cc0150/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1cc0150/src/java/org/apache/cassandra/service/StorageService.java --
[03/10] cassandra git commit: Make changes to compaction throughput be applied in real time
Make changes to compaction throughput be applied in real time patch by soumava; reviewed by kohlisankalp for CASSANDRA-10025 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dd2006b0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dd2006b0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dd2006b0 Branch: refs/heads/cassandra-3.3 Commit: dd2006b0c1053e9b536ac5ec66f38646d764cb6f Parents: 3aaae7a Author: Soumava GhoshAuthored: Fri Jan 22 16:19:50 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:19:50 2016 +0100 -- CHANGES.txt | 1 + .../db/compaction/CompactionManager.java| 25 +--- .../cassandra/service/StorageService.java | 1 + 3 files changed, 19 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd2006b0/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 37a0137..dcaccfc 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.5 + * Apply change to compaction throughput in real time (CASSANDRA-10025) * Fix potential NPE on ORDER BY queries with IN (CASSANDRA-10955) * Avoid over-fetching during the page of range queries (CASSANDRA-8521) * Start L0 STCS-compactions even if there is a L0 -> L1 compaction http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd2006b0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java index ae2b6fb..c51ed7d 100644 --- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java @@ -114,24 +114,33 @@ public class CompactionManager implements CompactionManagerMBean private final RateLimiter compactionRateLimiter = RateLimiter.create(Double.MAX_VALUE); /** - * Gets compaction rate limiter. When compaction_throughput_mb_per_sec is 0 or node is bootstrapping, - * this returns rate limiter with the rate of Double.MAX_VALUE bytes per second. + * Gets compaction rate limiter. * Rate unit is bytes per sec. * * @return RateLimiter with rate limit set */ public RateLimiter getRateLimiter() { -double currentThroughput = DatabaseDescriptor.getCompactionThroughputMbPerSec() * 1024.0 * 1024.0; -// if throughput is set to 0, throttling is disabled -if (currentThroughput == 0 || StorageService.instance.isBootstrapMode()) -currentThroughput = Double.MAX_VALUE; -if (compactionRateLimiter.getRate() != currentThroughput) -compactionRateLimiter.setRate(currentThroughput); +setRate(DatabaseDescriptor.getCompactionThroughputMbPerSec()); return compactionRateLimiter; } /** + * Sets the rate for the rate limiter. When compaction_throughput_mb_per_sec is 0 or node is bootstrapping, + * this sets the rate to Double.MAX_VALUE bytes per second. + * @param throughPutMbPerSec throughput to set in mb per second + */ +public void setRate(final double throughPutMbPerSec) +{ +double throughput = throughPutMbPerSec * 1024.0 * 1024.0; +// if throughput is set to 0, throttling is disabled +if (throughput == 0 || StorageService.instance.isBootstrapMode()) +throughput = Double.MAX_VALUE; +if (compactionRateLimiter.getRate() != throughput) +compactionRateLimiter.setRate(throughput); +} + +/** * Call this whenever a compaction might be needed on the given columnfamily. * It's okay to over-call (within reason) if a call is unnecessary, it will * turn into a no-op in the bucketing/candidate-scan phase. http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd2006b0/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 34419e9..09c20e9 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1158,6 +1158,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE public void setCompactionThroughputMbPerSec(int value) { DatabaseDescriptor.setCompactionThroughputMbPerSec(value); +CompactionManager.instance.setRate(value);
[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/e1cc0150 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e1cc0150 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e1cc0150 Branch: refs/heads/trunk Commit: e1cc0150de45b64387d69df7af79fc715d5bbab0 Parents: bee7917 dd2006b Author: Sylvain LebresneAuthored: Fri Jan 22 16:24:15 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:24:15 2016 +0100 -- CHANGES.txt | 1 + .../db/compaction/CompactionManager.java| 25 +--- .../cassandra/service/StorageService.java | 1 + 3 files changed, 19 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1cc0150/CHANGES.txt -- diff --cc CHANGES.txt index fa4042c,dcaccfc..4a0bca8 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,29 -1,7 +1,30 @@@ +3.0.3 + * Update CQL documentation (CASSANDRA-10899) + * Check the column name, not cell name, for dropped columns when reading + legacy sstables (CASSANDRA-11018) + * Don't attempt to index clustering values of static rows (CASSANDRA-11021) + * Remove checksum files after replaying hints (CASSANDRA-10947) + * Support passing base table metadata to custom 2i validation (CASSANDRA-10924) + * Ensure stale index entries are purged during reads (CASSANDRA-11013) + * Fix AssertionError when removing from list using UPDATE (CASSANDRA-10954) + * Fix UnsupportedOperationException when reading old sstable with range + tombstone (CASSANDRA-10743) + * MV should use the maximum timestamp of the primary key (CASSANDRA-10910) + * Fix potential assertion error during compaction (CASSANDRA-10944) + * Fix counting of received sstables in streaming (CASSANDRA-10949) + * Implement hints compression (CASSANDRA-9428) + * Fix potential assertion error when reading static columns (CASSANDRA-10903) + * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711) + * Avoid building PartitionUpdate in toString (CASSANDRA-10897) + * Reduce heap spent when receiving many SSTables (CASSANDRA-10797) + * Add back support for 3rd party auth providers to bulk loader (CASSANDRA-10873) + * Eliminate the dependency on jgrapht for UDT resolution (CASSANDRA-10653) + * (Hadoop) Close Clusters and Sessions in Hadoop Input/Output classes (CASSANDRA-10837) + * Fix sstableloader not working with upper case keyspace name (CASSANDRA-10806) +Merged from 2.2: 2.2.5 + * Apply change to compaction throughput in real time (CASSANDRA-10025) * Fix potential NPE on ORDER BY queries with IN (CASSANDRA-10955) - * Avoid over-fetching during the page of range queries (CASSANDRA-8521) * Start L0 STCS-compactions even if there is a L0 -> L1 compaction going (CASSANDRA-10979) * Make UUID LSB unique per process (CASSANDRA-7925) http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1cc0150/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1cc0150/src/java/org/apache/cassandra/service/StorageService.java --
[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/e1cc0150 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e1cc0150 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e1cc0150 Branch: refs/heads/cassandra-3.0 Commit: e1cc0150de45b64387d69df7af79fc715d5bbab0 Parents: bee7917 dd2006b Author: Sylvain LebresneAuthored: Fri Jan 22 16:24:15 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:24:15 2016 +0100 -- CHANGES.txt | 1 + .../db/compaction/CompactionManager.java| 25 +--- .../cassandra/service/StorageService.java | 1 + 3 files changed, 19 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1cc0150/CHANGES.txt -- diff --cc CHANGES.txt index fa4042c,dcaccfc..4a0bca8 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,29 -1,7 +1,30 @@@ +3.0.3 + * Update CQL documentation (CASSANDRA-10899) + * Check the column name, not cell name, for dropped columns when reading + legacy sstables (CASSANDRA-11018) + * Don't attempt to index clustering values of static rows (CASSANDRA-11021) + * Remove checksum files after replaying hints (CASSANDRA-10947) + * Support passing base table metadata to custom 2i validation (CASSANDRA-10924) + * Ensure stale index entries are purged during reads (CASSANDRA-11013) + * Fix AssertionError when removing from list using UPDATE (CASSANDRA-10954) + * Fix UnsupportedOperationException when reading old sstable with range + tombstone (CASSANDRA-10743) + * MV should use the maximum timestamp of the primary key (CASSANDRA-10910) + * Fix potential assertion error during compaction (CASSANDRA-10944) + * Fix counting of received sstables in streaming (CASSANDRA-10949) + * Implement hints compression (CASSANDRA-9428) + * Fix potential assertion error when reading static columns (CASSANDRA-10903) + * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711) + * Avoid building PartitionUpdate in toString (CASSANDRA-10897) + * Reduce heap spent when receiving many SSTables (CASSANDRA-10797) + * Add back support for 3rd party auth providers to bulk loader (CASSANDRA-10873) + * Eliminate the dependency on jgrapht for UDT resolution (CASSANDRA-10653) + * (Hadoop) Close Clusters and Sessions in Hadoop Input/Output classes (CASSANDRA-10837) + * Fix sstableloader not working with upper case keyspace name (CASSANDRA-10806) +Merged from 2.2: 2.2.5 + * Apply change to compaction throughput in real time (CASSANDRA-10025) * Fix potential NPE on ORDER BY queries with IN (CASSANDRA-10955) - * Avoid over-fetching during the page of range queries (CASSANDRA-8521) * Start L0 STCS-compactions even if there is a L0 -> L1 compaction going (CASSANDRA-10979) * Make UUID LSB unique per process (CASSANDRA-7925) http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1cc0150/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1cc0150/src/java/org/apache/cassandra/service/StorageService.java --
[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/2f984e33 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2f984e33 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2f984e33 Branch: refs/heads/trunk Commit: 2f984e330ed6e58582359afa3bb4d5b9cf6e6440 Parents: 190e14a 7074dda Author: Sylvain LebresneAuthored: Fri Jan 22 16:25:15 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:25:15 2016 +0100 -- CHANGES.txt | 1 + .../db/compaction/CompactionManager.java| 25 +--- .../cassandra/service/StorageService.java | 1 + 3 files changed, 19 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2f984e33/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2f984e33/src/java/org/apache/cassandra/service/StorageService.java --
[02/10] cassandra git commit: Make changes to compaction throughput be applied in real time
Make changes to compaction throughput be applied in real time patch by soumava; reviewed by kohlisankalp for CASSANDRA-10025 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dd2006b0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dd2006b0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dd2006b0 Branch: refs/heads/cassandra-3.0 Commit: dd2006b0c1053e9b536ac5ec66f38646d764cb6f Parents: 3aaae7a Author: Soumava GhoshAuthored: Fri Jan 22 16:19:50 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:19:50 2016 +0100 -- CHANGES.txt | 1 + .../db/compaction/CompactionManager.java| 25 +--- .../cassandra/service/StorageService.java | 1 + 3 files changed, 19 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd2006b0/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 37a0137..dcaccfc 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.5 + * Apply change to compaction throughput in real time (CASSANDRA-10025) * Fix potential NPE on ORDER BY queries with IN (CASSANDRA-10955) * Avoid over-fetching during the page of range queries (CASSANDRA-8521) * Start L0 STCS-compactions even if there is a L0 -> L1 compaction http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd2006b0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java index ae2b6fb..c51ed7d 100644 --- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java @@ -114,24 +114,33 @@ public class CompactionManager implements CompactionManagerMBean private final RateLimiter compactionRateLimiter = RateLimiter.create(Double.MAX_VALUE); /** - * Gets compaction rate limiter. When compaction_throughput_mb_per_sec is 0 or node is bootstrapping, - * this returns rate limiter with the rate of Double.MAX_VALUE bytes per second. + * Gets compaction rate limiter. * Rate unit is bytes per sec. * * @return RateLimiter with rate limit set */ public RateLimiter getRateLimiter() { -double currentThroughput = DatabaseDescriptor.getCompactionThroughputMbPerSec() * 1024.0 * 1024.0; -// if throughput is set to 0, throttling is disabled -if (currentThroughput == 0 || StorageService.instance.isBootstrapMode()) -currentThroughput = Double.MAX_VALUE; -if (compactionRateLimiter.getRate() != currentThroughput) -compactionRateLimiter.setRate(currentThroughput); +setRate(DatabaseDescriptor.getCompactionThroughputMbPerSec()); return compactionRateLimiter; } /** + * Sets the rate for the rate limiter. When compaction_throughput_mb_per_sec is 0 or node is bootstrapping, + * this sets the rate to Double.MAX_VALUE bytes per second. + * @param throughPutMbPerSec throughput to set in mb per second + */ +public void setRate(final double throughPutMbPerSec) +{ +double throughput = throughPutMbPerSec * 1024.0 * 1024.0; +// if throughput is set to 0, throttling is disabled +if (throughput == 0 || StorageService.instance.isBootstrapMode()) +throughput = Double.MAX_VALUE; +if (compactionRateLimiter.getRate() != throughput) +compactionRateLimiter.setRate(throughput); +} + +/** * Call this whenever a compaction might be needed on the given columnfamily. * It's okay to over-call (within reason) if a call is unnecessary, it will * turn into a no-op in the bucketing/candidate-scan phase. http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd2006b0/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 34419e9..09c20e9 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1158,6 +1158,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE public void setCompactionThroughputMbPerSec(int value) { DatabaseDescriptor.setCompactionThroughputMbPerSec(value); +CompactionManager.instance.setRate(value);
[01/10] cassandra git commit: Make changes to compaction throughput be applied in real time
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 3aaae7aa5 -> dd2006b0c refs/heads/cassandra-3.0 bee7917b4 -> e1cc0150d refs/heads/cassandra-3.3 83ad9ce7d -> 7074ddab8 refs/heads/trunk 190e14a07 -> 2f984e330 Make changes to compaction throughput be applied in real time patch by soumava; reviewed by kohlisankalp for CASSANDRA-10025 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dd2006b0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dd2006b0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dd2006b0 Branch: refs/heads/cassandra-2.2 Commit: dd2006b0c1053e9b536ac5ec66f38646d764cb6f Parents: 3aaae7a Author: Soumava GhoshAuthored: Fri Jan 22 16:19:50 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:19:50 2016 +0100 -- CHANGES.txt | 1 + .../db/compaction/CompactionManager.java| 25 +--- .../cassandra/service/StorageService.java | 1 + 3 files changed, 19 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd2006b0/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 37a0137..dcaccfc 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.5 + * Apply change to compaction throughput in real time (CASSANDRA-10025) * Fix potential NPE on ORDER BY queries with IN (CASSANDRA-10955) * Avoid over-fetching during the page of range queries (CASSANDRA-8521) * Start L0 STCS-compactions even if there is a L0 -> L1 compaction http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd2006b0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java index ae2b6fb..c51ed7d 100644 --- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java @@ -114,24 +114,33 @@ public class CompactionManager implements CompactionManagerMBean private final RateLimiter compactionRateLimiter = RateLimiter.create(Double.MAX_VALUE); /** - * Gets compaction rate limiter. When compaction_throughput_mb_per_sec is 0 or node is bootstrapping, - * this returns rate limiter with the rate of Double.MAX_VALUE bytes per second. + * Gets compaction rate limiter. * Rate unit is bytes per sec. * * @return RateLimiter with rate limit set */ public RateLimiter getRateLimiter() { -double currentThroughput = DatabaseDescriptor.getCompactionThroughputMbPerSec() * 1024.0 * 1024.0; -// if throughput is set to 0, throttling is disabled -if (currentThroughput == 0 || StorageService.instance.isBootstrapMode()) -currentThroughput = Double.MAX_VALUE; -if (compactionRateLimiter.getRate() != currentThroughput) -compactionRateLimiter.setRate(currentThroughput); +setRate(DatabaseDescriptor.getCompactionThroughputMbPerSec()); return compactionRateLimiter; } /** + * Sets the rate for the rate limiter. When compaction_throughput_mb_per_sec is 0 or node is bootstrapping, + * this sets the rate to Double.MAX_VALUE bytes per second. + * @param throughPutMbPerSec throughput to set in mb per second + */ +public void setRate(final double throughPutMbPerSec) +{ +double throughput = throughPutMbPerSec * 1024.0 * 1024.0; +// if throughput is set to 0, throttling is disabled +if (throughput == 0 || StorageService.instance.isBootstrapMode()) +throughput = Double.MAX_VALUE; +if (compactionRateLimiter.getRate() != throughput) +compactionRateLimiter.setRate(throughput); +} + +/** * Call this whenever a compaction might be needed on the given columnfamily. * It's okay to over-call (within reason) if a call is unnecessary, it will * turn into a no-op in the bucketing/candidate-scan phase. http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd2006b0/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 34419e9..09c20e9 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1158,6 +1158,7 @@ public class StorageService extends
[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/7074ddab Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7074ddab Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7074ddab Branch: refs/heads/trunk Commit: 7074ddab84e37c232710cafc1ab06a812ef3f226 Parents: 83ad9ce e1cc015 Author: Sylvain LebresneAuthored: Fri Jan 22 16:25:05 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:25:05 2016 +0100 -- CHANGES.txt | 1 + .../db/compaction/CompactionManager.java| 25 +--- .../cassandra/service/StorageService.java | 1 + 3 files changed, 19 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7074ddab/CHANGES.txt -- diff --cc CHANGES.txt index 2e1f8c3,4a0bca8..94b723c --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -15,8 -11,19 +15,9 @@@ Merged from 3.0 tombstone (CASSANDRA-10743) * MV should use the maximum timestamp of the primary key (CASSANDRA-10910) * Fix potential assertion error during compaction (CASSANDRA-10944) - * Fix counting of received sstables in streaming (CASSANDRA-10949) - * Implement hints compression (CASSANDRA-9428) - * Fix potential assertion error when reading static columns (CASSANDRA-10903) - * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711) - * Avoid building PartitionUpdate in toString (CASSANDRA-10897) - * Reduce heap spent when receiving many SSTables (CASSANDRA-10797) - * Add back support for 3rd party auth providers to bulk loader (CASSANDRA-10873) - * Eliminate the dependency on jgrapht for UDT resolution (CASSANDRA-10653) - * (Hadoop) Close Clusters and Sessions in Hadoop Input/Output classes (CASSANDRA-10837) - * Fix sstableloader not working with upper case keyspace name (CASSANDRA-10806) Merged from 2.2: -2.2.5 + * Apply change to compaction throughput in real time (CASSANDRA-10025) + * (cqlsh) encode input correctly when saving history * Fix potential NPE on ORDER BY queries with IN (CASSANDRA-10955) * Start L0 STCS-compactions even if there is a L0 -> L1 compaction going (CASSANDRA-10979) http://git-wip-us.apache.org/repos/asf/cassandra/blob/7074ddab/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7074ddab/src/java/org/apache/cassandra/service/StorageService.java --
[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/7074ddab Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7074ddab Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7074ddab Branch: refs/heads/cassandra-3.3 Commit: 7074ddab84e37c232710cafc1ab06a812ef3f226 Parents: 83ad9ce e1cc015 Author: Sylvain LebresneAuthored: Fri Jan 22 16:25:05 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:25:05 2016 +0100 -- CHANGES.txt | 1 + .../db/compaction/CompactionManager.java| 25 +--- .../cassandra/service/StorageService.java | 1 + 3 files changed, 19 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7074ddab/CHANGES.txt -- diff --cc CHANGES.txt index 2e1f8c3,4a0bca8..94b723c --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -15,8 -11,19 +15,9 @@@ Merged from 3.0 tombstone (CASSANDRA-10743) * MV should use the maximum timestamp of the primary key (CASSANDRA-10910) * Fix potential assertion error during compaction (CASSANDRA-10944) - * Fix counting of received sstables in streaming (CASSANDRA-10949) - * Implement hints compression (CASSANDRA-9428) - * Fix potential assertion error when reading static columns (CASSANDRA-10903) - * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711) - * Avoid building PartitionUpdate in toString (CASSANDRA-10897) - * Reduce heap spent when receiving many SSTables (CASSANDRA-10797) - * Add back support for 3rd party auth providers to bulk loader (CASSANDRA-10873) - * Eliminate the dependency on jgrapht for UDT resolution (CASSANDRA-10653) - * (Hadoop) Close Clusters and Sessions in Hadoop Input/Output classes (CASSANDRA-10837) - * Fix sstableloader not working with upper case keyspace name (CASSANDRA-10806) Merged from 2.2: -2.2.5 + * Apply change to compaction throughput in real time (CASSANDRA-10025) + * (cqlsh) encode input correctly when saving history * Fix potential NPE on ORDER BY queries with IN (CASSANDRA-10955) * Start L0 STCS-compactions even if there is a L0 -> L1 compaction going (CASSANDRA-10979) http://git-wip-us.apache.org/repos/asf/cassandra/blob/7074ddab/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7074ddab/src/java/org/apache/cassandra/service/StorageService.java --
[04/10] cassandra git commit: Make changes to compaction throughput be applied in real time
Make changes to compaction throughput be applied in real time patch by soumava; reviewed by kohlisankalp for CASSANDRA-10025 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dd2006b0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dd2006b0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dd2006b0 Branch: refs/heads/trunk Commit: dd2006b0c1053e9b536ac5ec66f38646d764cb6f Parents: 3aaae7a Author: Soumava GhoshAuthored: Fri Jan 22 16:19:50 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:19:50 2016 +0100 -- CHANGES.txt | 1 + .../db/compaction/CompactionManager.java| 25 +--- .../cassandra/service/StorageService.java | 1 + 3 files changed, 19 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd2006b0/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 37a0137..dcaccfc 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.5 + * Apply change to compaction throughput in real time (CASSANDRA-10025) * Fix potential NPE on ORDER BY queries with IN (CASSANDRA-10955) * Avoid over-fetching during the page of range queries (CASSANDRA-8521) * Start L0 STCS-compactions even if there is a L0 -> L1 compaction http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd2006b0/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java index ae2b6fb..c51ed7d 100644 --- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java @@ -114,24 +114,33 @@ public class CompactionManager implements CompactionManagerMBean private final RateLimiter compactionRateLimiter = RateLimiter.create(Double.MAX_VALUE); /** - * Gets compaction rate limiter. When compaction_throughput_mb_per_sec is 0 or node is bootstrapping, - * this returns rate limiter with the rate of Double.MAX_VALUE bytes per second. + * Gets compaction rate limiter. * Rate unit is bytes per sec. * * @return RateLimiter with rate limit set */ public RateLimiter getRateLimiter() { -double currentThroughput = DatabaseDescriptor.getCompactionThroughputMbPerSec() * 1024.0 * 1024.0; -// if throughput is set to 0, throttling is disabled -if (currentThroughput == 0 || StorageService.instance.isBootstrapMode()) -currentThroughput = Double.MAX_VALUE; -if (compactionRateLimiter.getRate() != currentThroughput) -compactionRateLimiter.setRate(currentThroughput); +setRate(DatabaseDescriptor.getCompactionThroughputMbPerSec()); return compactionRateLimiter; } /** + * Sets the rate for the rate limiter. When compaction_throughput_mb_per_sec is 0 or node is bootstrapping, + * this sets the rate to Double.MAX_VALUE bytes per second. + * @param throughPutMbPerSec throughput to set in mb per second + */ +public void setRate(final double throughPutMbPerSec) +{ +double throughput = throughPutMbPerSec * 1024.0 * 1024.0; +// if throughput is set to 0, throttling is disabled +if (throughput == 0 || StorageService.instance.isBootstrapMode()) +throughput = Double.MAX_VALUE; +if (compactionRateLimiter.getRate() != throughput) +compactionRateLimiter.setRate(throughput); +} + +/** * Call this whenever a compaction might be needed on the given columnfamily. * It's okay to over-call (within reason) if a call is unnecessary, it will * turn into a no-op in the bucketing/candidate-scan phase. http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd2006b0/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 34419e9..09c20e9 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1158,6 +1158,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE public void setCompactionThroughputMbPerSec(int value) { DatabaseDescriptor.setCompactionThroughputMbPerSec(value); +CompactionManager.instance.setRate(value); }
[jira] [Commented] (CASSANDRA-11037) cqlsh bash script cannot be called through symlink
[ https://issues.apache.org/jira/browse/CASSANDRA-11037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15113187#comment-15113187 ] Benjamin Zarzycki commented on CASSANDRA-11037: --- [~carlyeks] That makes way more sense. Thanks for that. :) I updated my github repo and will update the JIRA thread. > cqlsh bash script cannot be called through symlink > -- > > Key: CASSANDRA-11037 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11037 > Project: Cassandra > Issue Type: Bug > Components: Tools > Environment: BASH >Reporter: Benjamin Zarzycki >Priority: Trivial > Labels: lhf > Fix For: 2.2.0 > > Original Estimate: 0h > Remaining Estimate: 0h > > cqlsh bash script cannot be called through a symlink -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10661) Integrate SASI to Cassandra
[ https://issues.apache.org/jira/browse/CASSANDRA-10661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112994#comment-15112994 ] Pavel Yaskevich commented on CASSANDRA-10661: - [~beobal] How about `unfilteredCluster`? Since we are on the same page about this, here is what I'm thinking - we are going to avoid README.md we have in xedin/sasi and I'm going to put it into doc/SASI.md, squash all 17 commits into one and push to trunk, sounds good? > Integrate SASI to Cassandra > --- > > Key: CASSANDRA-10661 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10661 > Project: Cassandra > Issue Type: Improvement > Components: Local Write-Read Paths >Reporter: Pavel Yaskevich >Assignee: Pavel Yaskevich > Labels: sasi > Fix For: 3.x > > > We have recently released new secondary index engine > (https://github.com/xedin/sasi) build using SecondaryIndex API, there are > still couple of things to work out regarding 3.x since it's currently > targeted on 2.0 released. I want to make this an umbrella issue to all of the > things related to integration of SASI, which are also tracked in > [sasi_issues|https://github.com/xedin/sasi/issues], into mainline Cassandra > 3.x release. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10134) Always require replace_address to replace existing address
[ https://issues.apache.org/jira/browse/CASSANDRA-10134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15113072#comment-15113072 ] Tyler Hobbs commented on CASSANDRA-10134: - To mitigate the slow startup time, I think we can do a couple of things: * If there is only one node in the seed list, and it's the local broadcast address, skip the shadow round * Otherwise, check for a {{-Dcassandra.fast_unsafe_join}} flag (or something similar), and skip the shadow round if that's set. We could then set this flag in ccm and/or the dtests that utilize multiple nodes. Outside of tests, I don't think a 30s delay on starting a new cluster is terrible. However, we should make sure to clearly document the new {{-D}} flag (in NEWS.txt and elsewhere) so that others can use it for their tests as well. Also, even though this is a bug fix, I'm a little nervous about putting it in 2.2 at this point (given that gossip changes are prone to gotcha's). What do you think about 3.0+? > Always require replace_address to replace existing address > -- > > Key: CASSANDRA-10134 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10134 > Project: Cassandra > Issue Type: Improvement > Components: Distributed Metadata >Reporter: Tyler Hobbs >Assignee: Stefania > Fix For: 2.2.x, 3.0.x, 3.x > > > Normally, when a node is started from a clean state with the same address as > an existing down node, it will fail to start with an error like this: > {noformat} > ERROR [main] 2015-08-19 15:07:51,577 CassandraDaemon.java:554 - Exception > encountered during startup > java.lang.RuntimeException: A node with address /127.0.0.3 already exists, > cancelling join. Use cassandra.replace_address if you want to replace this > node. > at > org.apache.cassandra.service.StorageService.checkForEndpointCollision(StorageService.java:543) > ~[main/:na] > at > org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:783) > ~[main/:na] > at > org.apache.cassandra.service.StorageService.initServer(StorageService.java:720) > ~[main/:na] > at > org.apache.cassandra.service.StorageService.initServer(StorageService.java:611) > ~[main/:na] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:378) > [main/:na] > at > org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:537) > [main/:na] > at > org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:626) > [main/:na] > {noformat} > However, if {{auto_bootstrap}} is set to false or the node is in its own seed > list, it will not throw this error and will start normally. The new node > then takes over the host ID of the old node (even if the tokens are > different), and the only message you will see is a warning in the other > nodes' logs: > {noformat} > logger.warn("Changing {}'s host ID from {} to {}", endpoint, storedId, > hostId); > {noformat} > This could cause an operator to accidentally wipe out the token information > for a down node without replacing it. To fix this, we should check for an > endpoint collision even if {{auto_bootstrap}} is false or the node is a seed. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10661) Integrate SASI to Cassandra
[ https://issues.apache.org/jira/browse/CASSANDRA-10661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15113071#comment-15113071 ] Pavel Yaskevich commented on CASSANDRA-10661: - [~doanduyhai] Regarding CONTAINS mode - it's more expensive to build since it has to extract the suffixes (which is exactly what search people are doing) which makes it as expensive to query as PREFIX columns. Regarding sorting - this is currently not a priority since it would require extensive changes to Cassandra interfaces to support that, MAX_ROWS currently is the same restriction per result page as in CQL3. > Integrate SASI to Cassandra > --- > > Key: CASSANDRA-10661 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10661 > Project: Cassandra > Issue Type: Improvement > Components: Local Write-Read Paths >Reporter: Pavel Yaskevich >Assignee: Pavel Yaskevich > Labels: sasi > Fix For: 3.x > > > We have recently released new secondary index engine > (https://github.com/xedin/sasi) build using SecondaryIndex API, there are > still couple of things to work out regarding 3.x since it's currently > targeted on 2.0 released. I want to make this an umbrella issue to all of the > things related to integration of SASI, which are also tracked in > [sasi_issues|https://github.com/xedin/sasi/issues], into mainline Cassandra > 3.x release. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10661) Integrate SASI to Cassandra
[ https://issues.apache.org/jira/browse/CASSANDRA-10661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15113138#comment-15113138 ] DOAN DuyHai commented on CASSANDRA-10661: - Thanks for the clarifications > Integrate SASI to Cassandra > --- > > Key: CASSANDRA-10661 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10661 > Project: Cassandra > Issue Type: Improvement > Components: Local Write-Read Paths >Reporter: Pavel Yaskevich >Assignee: Pavel Yaskevich > Labels: sasi > Fix For: 3.x > > > We have recently released new secondary index engine > (https://github.com/xedin/sasi) build using SecondaryIndex API, there are > still couple of things to work out regarding 3.x since it's currently > targeted on 2.0 released. I want to make this an umbrella issue to all of the > things related to integration of SASI, which are also tracked in > [sasi_issues|https://github.com/xedin/sasi/issues], into mainline Cassandra > 3.x release. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-11060) Allow DTCS old SSTable filtering to use min timestamp instead of max
Sam Bisbee created CASSANDRA-11060: -- Summary: Allow DTCS old SSTable filtering to use min timestamp instead of max Key: CASSANDRA-11060 URL: https://issues.apache.org/jira/browse/CASSANDRA-11060 Project: Cassandra Issue Type: Improvement Reporter: Sam Bisbee We have observed a DTCS behavior when using TTLs where SSTables are never or very rarely fully expired due to compaction, allowing expired data to be "stuck" in large partially expired SSTables. This is because compaction filtering is performed on the max timestamp, which continues to grow as SSTables are compacted together. This means they will never move past max_sstable_age_days. With a sufficiently large TTL, like 30 days, this allows old but not expired SSTables to continue combining and never become fully expired, even with a max_sstable_age_days of 1. As a result we have seen expired data hang around in large SSTables for over six months longer than it should have. This is obviously wasteful and a disk capacity issue. As a result we have been running an extended version of DTCS called MTCS in some deployments. The only change is that it uses min timestamp instead of max for compaction filtering (filterOldSSTables()). This allows SSTables to move beyond max_sstable_age_days and stop compacting, which means the entire SSTable can become fully expired and be dropped off disk as intended. You can see and test MTCS here: https://github.com/threatstack/mtcs I am not advocating that MTCS be its own stand alone compaction strategy. However, I would like to see a configuration option for DTCS that allows you to specify whether old SSTables should be filtered on min or max timestamp. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10661) Integrate SASI to Cassandra
[ https://issues.apache.org/jira/browse/CASSANDRA-10661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15113157#comment-15113157 ] Pavel Yaskevich commented on CASSANDRA-10661: - No problem! Just to clarify a bit more - ORDER BY I mean is "real SQL" ORDER BY (the one which sorts keys) and not currently built-in one which depends on CLUSTERING ORDER, that one would still work the same way with indexes as it works right now. > Integrate SASI to Cassandra > --- > > Key: CASSANDRA-10661 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10661 > Project: Cassandra > Issue Type: Improvement > Components: Local Write-Read Paths >Reporter: Pavel Yaskevich >Assignee: Pavel Yaskevich > Labels: sasi > Fix For: 3.x > > > We have recently released new secondary index engine > (https://github.com/xedin/sasi) build using SecondaryIndex API, there are > still couple of things to work out regarding 3.x since it's currently > targeted on 2.0 released. I want to make this an umbrella issue to all of the > things related to integration of SASI, which are also tracked in > [sasi_issues|https://github.com/xedin/sasi/issues], into mainline Cassandra > 3.x release. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10134) Always require replace_address to replace existing address
[ https://issues.apache.org/jira/browse/CASSANDRA-10134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15113161#comment-15113161 ] Joel Knighton commented on CASSANDRA-10134: --- I'd be pretty comfortable reviewing the patch + Tyler's suggestions for inclusion in 2.2+. This is one of the more straightforward parts of gossip. If we're restricting this to newer versions because of the extent of the changes, it might be worth going a little farther with this. The intent is to improve safety, but as implemented, a node with auto_bootstrap: false or acting as a seed can still replace an existing address if it is partitioned from all seeds or otherwise unable to communicate with all seeds during the shadow round. If we expose "in a shadow round" in some form (exposed through gossip or otherwise), we can restrict successfully exiting the shadow round to nodes who have either successfully gossiped with a seed node or learned all seed nodes are in their shadow round. This would also remove the delay on start up, but it would require starting seed nodes in a new cluster with multiple seeds concurrently. This (or some variation on it) is a bit safer, but it may not be worth the effort. > Always require replace_address to replace existing address > -- > > Key: CASSANDRA-10134 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10134 > Project: Cassandra > Issue Type: Improvement > Components: Distributed Metadata >Reporter: Tyler Hobbs >Assignee: Stefania > Fix For: 2.2.x, 3.0.x, 3.x > > > Normally, when a node is started from a clean state with the same address as > an existing down node, it will fail to start with an error like this: > {noformat} > ERROR [main] 2015-08-19 15:07:51,577 CassandraDaemon.java:554 - Exception > encountered during startup > java.lang.RuntimeException: A node with address /127.0.0.3 already exists, > cancelling join. Use cassandra.replace_address if you want to replace this > node. > at > org.apache.cassandra.service.StorageService.checkForEndpointCollision(StorageService.java:543) > ~[main/:na] > at > org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:783) > ~[main/:na] > at > org.apache.cassandra.service.StorageService.initServer(StorageService.java:720) > ~[main/:na] > at > org.apache.cassandra.service.StorageService.initServer(StorageService.java:611) > ~[main/:na] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:378) > [main/:na] > at > org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:537) > [main/:na] > at > org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:626) > [main/:na] > {noformat} > However, if {{auto_bootstrap}} is set to false or the node is in its own seed > list, it will not throw this error and will start normally. The new node > then takes over the host ID of the old node (even if the tokens are > different), and the only message you will see is a warning in the other > nodes' logs: > {noformat} > logger.warn("Changing {}'s host ID from {} to {}", endpoint, storedId, > hostId); > {noformat} > This could cause an operator to accidentally wipe out the token information > for a down node without replacing it. To fix this, we should check for an > endpoint collision even if {{auto_bootstrap}} is false or the node is a seed. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11003) cqlsh: LWT operations not handled correctly in 3.0+
[ https://issues.apache.org/jira/browse/CASSANDRA-11003?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-11003: Summary: cqlsh: LWT operations not handled correctly in 3.0+ (was: cqlsh.py: Shell instance has no attribute 'parse_for_table_meta') > cqlsh: LWT operations not handled correctly in 3.0+ > --- > > Key: CASSANDRA-11003 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11003 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Eduard Tudenhoefner >Assignee: Eduard Tudenhoefner > Fix For: 3.0.x, 3.x > > Attachments: 11003-cassandra-3.0.txt > > > {code} > $ cqlsh -u cassandra -p cassandra > Connected to abc at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 3.0.1.816 | DSE 5.0.0 | CQL spec 3.4.0 | Native > protocol v4] > Use HELP for help. > cassandra@cqlsh> SOME COMMAND; > Shell instance has no attribute 'parse_for_table_meta' > {code} > I think this is happening because of a bad merge > (https://github.com/apache/cassandra/commit/2800bf1082e773daf0af29516b61c711acda626b#diff-1cce67f7d76864f07aaf4d986d6fc051). > We just need to rename *parse_for_update_meta* to *parse_for_table_meta* -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11003) cqlsh.py: Shell instance has no attribute 'parse_for_table_meta'
[ https://issues.apache.org/jira/browse/CASSANDRA-11003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15113176#comment-15113176 ] Tyler Hobbs commented on CASSANDRA-11003: - Thanks for the patch! Your fix is fine, but I actually prefer the name {{parse_for_update_meta}}, because it clearly serves a different purpose than {{parse_for_select_meta}}, so I've used that name. By the way, this only affects LWT inserts and updates. I'll edit the title to reflect that. I have created a new dtest to cover this: https://github.com/riptano/cassandra-dtest/pull/768 Branch and pending CI runs: ||branch||testall||dtest|| |[CASSANDRA-11003|https://github.com/thobbs/cassandra/tree/CASSANDRA-11003]|[testall|http://cassci.datastax.com/view/Dev/view/thobbs/job/thobbs-CASSANDRA-11003-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/thobbs/job/thobbs-CASSANDRA-11003-dtest]| |[CASSANDRA-11003-3.3|https://github.com/thobbs/cassandra/tree/CASSANDRA-11003-3.3]|[testall|http://cassci.datastax.com/view/Dev/view/thobbs/job/thobbs-CASSANDRA-11003-3.3-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/thobbs/job/thobbs-CASSANDRA-11003-3.3-dtest]| |[CASSANDRA-11003-trunk|https://github.com/thobbs/cassandra/tree/CASSANDRA-11003-trunk]|[testall|http://cassci.datastax.com/view/Dev/view/thobbs/job/thobbs-CASSANDRA-11003-trunk-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/thobbs/job/thobbs-CASSANDRA-11003-trunk-dtest]| > cqlsh.py: Shell instance has no attribute 'parse_for_table_meta' > > > Key: CASSANDRA-11003 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11003 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Eduard Tudenhoefner >Assignee: Eduard Tudenhoefner > Fix For: 3.0.x, 3.x > > Attachments: 11003-cassandra-3.0.txt > > > {code} > $ cqlsh -u cassandra -p cassandra > Connected to abc at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 3.0.1.816 | DSE 5.0.0 | CQL spec 3.4.0 | Native > protocol v4] > Use HELP for help. > cassandra@cqlsh> SOME COMMAND; > Shell instance has no attribute 'parse_for_table_meta' > {code} > I think this is happening because of a bad merge > (https://github.com/apache/cassandra/commit/2800bf1082e773daf0af29516b61c711acda626b#diff-1cce67f7d76864f07aaf4d986d6fc051). > We just need to rename *parse_for_update_meta* to *parse_for_table_meta* -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11003) cqlsh: LWT operations not handled correctly in 3.0+
[ https://issues.apache.org/jira/browse/CASSANDRA-11003?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-11003: Labels: cqlsh (was: ) > cqlsh: LWT operations not handled correctly in 3.0+ > --- > > Key: CASSANDRA-11003 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11003 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Eduard Tudenhoefner >Assignee: Eduard Tudenhoefner > Labels: cqlsh > Fix For: 3.0.x, 3.x > > Attachments: 11003-cassandra-3.0.txt > > > {code} > $ cqlsh -u cassandra -p cassandra > Connected to abc at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 3.0.1.816 | DSE 5.0.0 | CQL spec 3.4.0 | Native > protocol v4] > Use HELP for help. > cassandra@cqlsh> SOME COMMAND; > Shell instance has no attribute 'parse_for_table_meta' > {code} > I think this is happening because of a bad merge > (https://github.com/apache/cassandra/commit/2800bf1082e773daf0af29516b61c711acda626b#diff-1cce67f7d76864f07aaf4d986d6fc051). > We just need to rename *parse_for_update_meta* to *parse_for_table_meta* -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10661) Integrate SASI to Cassandra
[ https://issues.apache.org/jira/browse/CASSANDRA-10661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15113051#comment-15113051 ] DOAN DuyHai commented on CASSANDRA-10661: - Hello [~xedin], it's me again. I've had some discussion with search people and they told me that wildcard searches (name like "\*x\*") are very expensive. Classical data structure like suffix trees are adapted for suffix searching (name like "xxx\*"). For prefix search (name like "\*xxx") they're creating a *reversed* index. Does it mean that the CONTAINS mode (formerly named SUFFIX) is more expensive than the NORMAL search mode ? If yes, how much expensive is it (x2 ? order of magnitude ?) Second question, more related to the impl, since you query the nodes following the token range and do not hit all nodes like normal secondary index, does it imply that *sorting* (ORDER BY) is no longer relevant since you do not retrieve all possible results ? (I've seen in QueryPlan.MAX_ROWS that there is a hard-coded limit of 10 000 results) Sorry to annoy you with my questions but they are important so that we, evangelists, can give the right use-cases for users and especially deter them from mis-using SASI when it's not appropriate or when the search cost is prohibitive. > Integrate SASI to Cassandra > --- > > Key: CASSANDRA-10661 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10661 > Project: Cassandra > Issue Type: Improvement > Components: Local Write-Read Paths >Reporter: Pavel Yaskevich >Assignee: Pavel Yaskevich > Labels: sasi > Fix For: 3.x > > > We have recently released new secondary index engine > (https://github.com/xedin/sasi) build using SecondaryIndex API, there are > still couple of things to work out regarding 3.x since it's currently > targeted on 2.0 released. I want to make this an umbrella issue to all of the > things related to integration of SASI, which are also tracked in > [sasi_issues|https://github.com/xedin/sasi/issues], into mainline Cassandra > 3.x release. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10211) SliceQueryFilter warnings should print the partition key
[ https://issues.apache.org/jira/browse/CASSANDRA-10211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112797#comment-15112797 ] Soumava Ghosh commented on CASSANDRA-10211: --- I'm working on a patch for the other branches. > SliceQueryFilter warnings should print the partition key > > > Key: CASSANDRA-10211 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10211 > Project: Cassandra > Issue Type: Improvement >Reporter: Soumava Ghosh >Assignee: Soumava Ghosh >Priority: Minor > Fix For: 2.1.x > > Attachments: 10211-2.1.txt > > > Currently the SliceQueryFilter does not log the partition key while logging > the warning/error when the number of tombstones exceed the limits set by the > tombstone_warn_threshold and the tombstone_failure_threshold. Logging the > partition key would be really helpful for debugging. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8911) Consider Mutation-based Repairs
[ https://issues.apache.org/jira/browse/CASSANDRA-8911?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] T Jake Luciani updated CASSANDRA-8911: -- Fix Version/s: 3.x > Consider Mutation-based Repairs > --- > > Key: CASSANDRA-8911 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8911 > Project: Cassandra > Issue Type: Improvement >Reporter: Tyler Hobbs > Fix For: 3.x > > > We should consider a mutation-based repair to replace the existing streaming > repair. While we're at it, we could do away with a lot of the complexity > around merkle trees. > I have not planned this out in detail, but here's roughly what I'm thinking: > * Instead of building an entire merkle tree up front, just send the "leaves" > one-by-one. Instead of dealing with token ranges, make the leaves primary > key ranges. The PK ranges would need to be contiguous, so that the start of > each range would match the end of the previous range. (The first and last > leaves would need to be open-ended on one end of the PK range.) This would be > similar to doing a read with paging. > * Once one page of data is read, compute a hash of it and send it to the > other replicas along with the PK range that it covers and a row count. > * When the replicas receive the hash, the perform a read over the same PK > range (using a LIMIT of the row count + 1) and compare hashes (unless the row > counts don't match, in which case this can be skipped). > * If there is a mismatch, the replica will send a mutation covering that > page's worth of data (ignoring the row count this time) to the source node. > Here are the advantages that I can think of: > * With the current repair behavior of streaming, vnode-enabled clusters may > need to stream hundreds of small SSTables. This results in increased compact > ion load on the receiving node. With the mutation-based approach, memtables > would naturally merge these. > * It's simple to throttle. For example, you could give a number of rows/sec > that should be repaired. > * It's easy to see what PK range has been repaired so far. This could make > it simpler to resume a repair that fails midway. > * Inconsistencies start to be repaired almost right away. > * Less special code \(?\) > * Wide partitions are no longer a problem. > There are a few problems I can think of: > * Counters. I don't know if this can be made safe, or if they need to be > skipped. > * To support incremental repair, we need to be able to read from only > repaired sstables. Probably not too difficult to do. -- 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=15112903#comment-15112903 ] T Jake Luciani commented on CASSANDRA-10779: I don't see how this is going to help. The issue is lock contention and blocking just makes it worse :) I'll run some mvbench runs with your patch to back this up. I think we need to make the completable future approach send the response as Carl mentioned above > 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: Tyler Hobbs > Fix For: 3.0.x, 3.x > > > 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-10657) Re-enable/improve value skipping
[ https://issues.apache.org/jira/browse/CASSANDRA-10657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112938#comment-15112938 ] Philip Thompson commented on CASSANDRA-10657: - This broke alter_rf_and_run_read_repair_test, the test for CASSANDRA-10655. As this is a follow-up to 10655, is the new behavior expected? Failure is [here|http://cassci.datastax.com/job/trunk_dtest/940/testReport/read_repair_test/TestReadRepair/alter_rf_and_run_read_repair_test/] Potentially [now] invalid assumption from test {code} # Alter so RF=n but don't repair, then execute a query which selects only a subset of the columns. Run this at # CL ALL on one of the nodes which doesn't currently have the data, triggering a read repair. Although we're # only selecting a single column, the expectation is that the entire row is read on each replica to construct # the digest responses as well as the full data reads for repair. So we expect that after the read repair, all # replicas will have the entire row {code} > Re-enable/improve value skipping > > > Key: CASSANDRA-10657 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10657 > Project: Cassandra > Issue Type: Improvement >Reporter: Sylvain Lebresne >Assignee: Sylvain Lebresne > Fix For: 3.4 > > > This is a followup to CASSANDRA-10655, to re-enable the optimization of > skipping values for the columns that are not requested by users in a CQL > query. See CASSANDRA-10655 for why it was disabled, the goal here is to > re-enable it minus the bugs. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[1/3] cassandra git commit: Bump 2.2 version to 2.2.5 in build.xml
Repository: cassandra Updated Branches: refs/heads/cassandra-3.3 94604ceda -> acb7fed1d Bump 2.2 version to 2.2.5 in build.xml Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b4d67c9e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b4d67c9e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b4d67c9e Branch: refs/heads/cassandra-3.3 Commit: b4d67c9e5db9aaff349354fbd285d434b6db296f Parents: 3b244a3 Author: Tyler HobbsAuthored: Fri Jan 22 12:00:32 2016 -0600 Committer: Tyler Hobbs Committed: Fri Jan 22 12:00:32 2016 -0600 -- build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b4d67c9e/build.xml -- diff --git a/build.xml b/build.xml index 72ceb65..e5fefed 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ - + http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree"/>
[2/3] 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/2f8e5f34 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2f8e5f34 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2f8e5f34 Branch: refs/heads/cassandra-3.3 Commit: 2f8e5f34642790f2e75573a4fc4e4e43d49b52e4 Parents: 0b05203 b4d67c9 Author: Tyler HobbsAuthored: Fri Jan 22 12:01:23 2016 -0600 Committer: Tyler Hobbs Committed: Fri Jan 22 12:01:23 2016 -0600 -- --
[3/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/acb7fed1 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/acb7fed1 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/acb7fed1 Branch: refs/heads/cassandra-3.3 Commit: acb7fed1dc4a7429008d4b619222d1934ea9539a Parents: 94604ce 2f8e5f3 Author: Tyler HobbsAuthored: Fri Jan 22 12:01:52 2016 -0600 Committer: Tyler Hobbs Committed: Fri Jan 22 12:01:52 2016 -0600 -- --
[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=15112892#comment-15112892 ] Tyler Hobbs commented on CASSANDRA-10779: - Since {{Striped}} actually uses {{ReentrantLocks}}, it turns out a blocking solution works for my purposes. I've pushed a second branch with blocking lock acquisition. As discussed, it uses {{bulkGet()}} to ensure lock acquisition order is consistent (avoiding deadlock): ||branch||testall||dtest|| |[CASSANDRA-10779-v2|https://github.com/thobbs/cassandra/tree/CASSANDRA-10779-v2]|[testall|http://cassci.datastax.com/view/Dev/view/thobbs/job/thobbs-CASSANDRA-10779-v2-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/thobbs/job/thobbs-CASSANDRA-10779-v2-dtest]| |[CASSANDRA-10779-v2-3.3|https://github.com/thobbs/cassandra/tree/CASSANDRA-10779-v2-3.3]|[testall|http://cassci.datastax.com/view/Dev/view/thobbs/job/thobbs-CASSANDRA-10779-v2-3.3-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/thobbs/job/thobbs-CASSANDRA-10779-v2-3.3-dtest]| |[CASSANDRA-10779-v2-trunk|https://github.com/thobbs/cassandra/tree/CASSANDRA-10779-v2-trunk]|[testall|http://cassci.datastax.com/view/Dev/view/thobbs/job/thobbs-CASSANDRA-10779-v2-trunk-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/thobbs/job/thobbs-CASSANDRA-10779-v2-trunk-dtest]| The trunk merge was the only non-trivial one. > 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: Tyler Hobbs > Fix For: 3.0.x, 3.x > > > 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-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=15112923#comment-15112923 ] Carl Yeksigian commented on CASSANDRA-10779: This ticket isn't about solving the contention, but about making the behavior correct in the face of contention. This patch fixes that issue by making sure we don't respond back before we have actually completed the work. While moving to CompletableFutures would solve both, it's a far more invasive change than this one, so it makes sense to know what the change in performance is. > 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: Tyler Hobbs > Fix For: 3.0.x, 3.x > > > 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-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=15112920#comment-15112920 ] Tyler Hobbs commented on CASSANDRA-10779: - Well, the _real_ issue is responding before a mutation has been applied, which is a correctness/durability issue. We just need to make sure to fix that in a way that doesn't severely hamper performance. I was already talking with [~carlyeks] about benchmarking these solutions before committing (which I think we do need to do), but I'm not convinced that this approach will have worse performance than the current solution under contention. > 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: Tyler Hobbs > Fix For: 3.0.x, 3.x > > > 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: Bump 2.2 version to 2.2.5 in build.xml
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 3b244a3d1 -> b4d67c9e5 Bump 2.2 version to 2.2.5 in build.xml Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b4d67c9e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b4d67c9e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b4d67c9e Branch: refs/heads/cassandra-2.2 Commit: b4d67c9e5db9aaff349354fbd285d434b6db296f Parents: 3b244a3 Author: Tyler HobbsAuthored: Fri Jan 22 12:00:32 2016 -0600 Committer: Tyler Hobbs Committed: Fri Jan 22 12:00:32 2016 -0600 -- build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b4d67c9e/build.xml -- diff --git a/build.xml b/build.xml index 72ceb65..e5fefed 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ - + http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree"/>
[1/2] cassandra git commit: Bump 2.2 version to 2.2.5 in build.xml
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 0b05203fe -> 2f8e5f346 Bump 2.2 version to 2.2.5 in build.xml Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b4d67c9e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b4d67c9e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b4d67c9e Branch: refs/heads/cassandra-3.0 Commit: b4d67c9e5db9aaff349354fbd285d434b6db296f Parents: 3b244a3 Author: Tyler HobbsAuthored: Fri Jan 22 12:00:32 2016 -0600 Committer: Tyler Hobbs Committed: Fri Jan 22 12:00:32 2016 -0600 -- build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b4d67c9e/build.xml -- diff --git a/build.xml b/build.xml index 72ceb65..e5fefed 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ - + http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree"/>
[2/2] 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/2f8e5f34 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2f8e5f34 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2f8e5f34 Branch: refs/heads/cassandra-3.0 Commit: 2f8e5f34642790f2e75573a4fc4e4e43d49b52e4 Parents: 0b05203 b4d67c9 Author: Tyler HobbsAuthored: Fri Jan 22 12:01:23 2016 -0600 Committer: Tyler Hobbs Committed: Fri Jan 22 12:01:23 2016 -0600 -- --
[2/4] 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/2f8e5f34 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2f8e5f34 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2f8e5f34 Branch: refs/heads/trunk Commit: 2f8e5f34642790f2e75573a4fc4e4e43d49b52e4 Parents: 0b05203 b4d67c9 Author: Tyler HobbsAuthored: Fri Jan 22 12:01:23 2016 -0600 Committer: Tyler Hobbs Committed: Fri Jan 22 12:01:23 2016 -0600 -- --
[1/4] cassandra git commit: Bump 2.2 version to 2.2.5 in build.xml
Repository: cassandra Updated Branches: refs/heads/trunk 35672e871 -> 11c8ca6b5 Bump 2.2 version to 2.2.5 in build.xml Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b4d67c9e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b4d67c9e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b4d67c9e Branch: refs/heads/trunk Commit: b4d67c9e5db9aaff349354fbd285d434b6db296f Parents: 3b244a3 Author: Tyler HobbsAuthored: Fri Jan 22 12:00:32 2016 -0600 Committer: Tyler Hobbs Committed: Fri Jan 22 12:00:32 2016 -0600 -- build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b4d67c9e/build.xml -- diff --git a/build.xml b/build.xml index 72ceb65..e5fefed 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ - + http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree"/>
[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/11c8ca6b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/11c8ca6b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/11c8ca6b Branch: refs/heads/trunk Commit: 11c8ca6b56ef915e90db5315014f8be0eb0ad0ff Parents: 35672e8 acb7fed Author: Tyler HobbsAuthored: Fri Jan 22 12:08:10 2016 -0600 Committer: Tyler Hobbs Committed: Fri Jan 22 12:08:10 2016 -0600 -- --
[3/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/acb7fed1 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/acb7fed1 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/acb7fed1 Branch: refs/heads/trunk Commit: acb7fed1dc4a7429008d4b619222d1934ea9539a Parents: 94604ce 2f8e5f3 Author: Tyler HobbsAuthored: Fri Jan 22 12:01:52 2016 -0600 Committer: Tyler Hobbs Committed: Fri Jan 22 12:01:52 2016 -0600 -- --
[jira] [Commented] (CASSANDRA-11050) SSTables not loaded after dropping column
[ https://issues.apache.org/jira/browse/CASSANDRA-11050?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112935#comment-15112935 ] Aleksey Yeschenko commented on CASSANDRA-11050: --- [~slebresne] The issue you mention with the second approach is actually not that terrible. If one drops a column, the schema digest will change, even if {{dropped_columns}} table itself is not involved in the computation. It will change simply b/c of a different set of columns in {{system_schema.columns}} - one fewer if we drop one. Now, there could be an issue if you drop then recreate a column. Then again, the timestamps in schema tables will be different in that case, so the change will still be detected. Unless there is an extremely unlikely clock jump to that precise previous timestamp? So, your option 2 is safe, IMO (special case {{SchemaKeyspace::calculateSchemaDigest}} to ignore {{dropped_columns}}). > SSTables not loaded after dropping column > - > > Key: CASSANDRA-11050 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11050 > Project: Cassandra > Issue Type: Bug > Components: Distributed Metadata >Reporter: amorton >Assignee: amorton > Attachments: 11050-3.0.patch > > > The {{system_schema.dropped_tables}} table is not flushed when schema is > updated, this can result in SSTables not being loaded at startup and failure > to start if the commit log contains mutations with the column. > Reproduce on cassandra-3.0 branch by starting a node and running following in > cqlsh: > {code} > create keyspace dev WITH replication = {'class':'SimpleStrategy', > 'replication_factor':1}; > use dev; > create table foo ( > foo text primary key, > bar text, > baz text > ); > insert into foo (foo, bar, baz) values ('foo','this is bar', 'this is baz'); > alter table foo > drop baz; > {code} > Stop the node and restart, the following errors are raised and the node does > not start: > {code} > ERROR 16:38:19 Exception in thread Thread[SSTableBatchOpen:1,5,main] > java.lang.RuntimeException: Unknown column baz during deserialization > at > org.apache.cassandra.db.SerializationHeader$Component.toHeader(SerializationHeader.java:331) > ~[main/:na] > at > org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:485) > ~[main/:na] > at > org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:374) > ~[main/:na] > at > org.apache.cassandra.io.sstable.format.SSTableReader$4.run(SSTableReader.java:533) > ~[main/:na] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_60] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[na:1.8.0_60] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > ~[na:1.8.0_60] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > [na:1.8.0_60] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60] > ... > ERROR 16:38:19 Exiting due to error while processing commit log during > initialization. > org.apache.cassandra.db.commitlog.CommitLogReplayer$CommitLogReplayException: > Unexpected error deserializing mutation; saved to > /var/folders/r2/rkv1jz3j0j74r9s1zm5xx9wcgn/T/mutation5408885979635225676dat. > This may be caused by replaying a mutation against a table with the same > name but incompatible schema. Exception follows: java.lang.RuntimeException: > Unknown column baz during deserialization > at > org.apache.cassandra.db.commitlog.CommitLogReplayer.handleReplayError(CommitLogReplayer.java:633) > [main/:na] > at > org.apache.cassandra.db.commitlog.CommitLogReplayer.replayMutation(CommitLogReplayer.java:556) > [main/:na] > at > org.apache.cassandra.db.commitlog.CommitLogReplayer.replaySyncSection(CommitLogReplayer.java:509) > [main/:na] > at > org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:404) > [main/:na] > at > org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:151) > [main/:na] > at > org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:189) > [main/:na] > at > org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:169) > [main/:na] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:283) > [main/:na] > at > org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:551) > [main/:na] > at > org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:679) > [main/:na] > {code} > {{dropped_columns}} is not in the list of tables to flush, > {{SchemaKeyspace.ALL}}. > It's a simple patch to add it, attached.
[jira] [Commented] (CASSANDRA-10990) Support streaming of older version sstables in 3.0
[ https://issues.apache.org/jira/browse/CASSANDRA-10990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112830#comment-15112830 ] Paulo Motta commented on CASSANDRA-10990: - Many thanks for the detailed explanation and clarification [~slebresne]! I believe the purpose of this ticket is more to allow streaming of old sstables to 3.0 vnodes via {{sstableloader}} as well as support bootstrap and move on 3.0 nodes that did not complete {{upgradesstables}} (dense nodes) than to actually provide full 2.x-3.0 streaming compatibility (we can leave this to CASSANDRA-8110). There seems to be additional complications with repair due to different digest formats, so we can address that in a separate ticket if necessary. I was able to achieve streaming of pre-3.0 sstables fairly transparently with the addition of a {{RewindableDataInputStreamPlus}} wrapper input stream that allows rewinding a source stream, so we can leverage the exactly same code path of reading pre-3.0 sstables ({{OldFormatIterator}}) to do the static compact table handling. Currently, the {{RewindableDataInputStreamPlus}} works in memory, so next step is to spill the buffer to disk if its sizes goes above a certain treshold. I agree we need to do extensive testing before calling this supported. I propose to extend CASSANDRA-10563 upgrade dtests to perform a bootstrap of a new node, without performing {{upgradesstables}} on upgraded nodes (so they will contain only old sstables), and check that all streamed data will be readable via thrift and/or cql. I updated the previous branch with the latest changes. > Support streaming of older version sstables in 3.0 > -- > > Key: CASSANDRA-10990 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10990 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Jeremy Hanna >Assignee: Paulo Motta > > In 2.0 we introduced support for streaming older versioned sstables > (CASSANDRA-5772). In 3.0, because of the rewrite of the storage layer, this > became no longer supported. So currently, while 3.0 can read sstables in the > 2.1/2.2 format, it cannot stream the older versioned sstables. We should do > some work to make this still possible to be consistent with what > CASSANDRA-5772 provided. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10955) Multi-partitions queries with ORDER BY can result in a NPE
[ https://issues.apache.org/jira/browse/CASSANDRA-10955?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112302#comment-15112302 ] Sam Tunnicliffe commented on CASSANDRA-10955: - +1 > Multi-partitions queries with ORDER BY can result in a NPE > -- > > Key: CASSANDRA-10955 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10955 > Project: Cassandra > Issue Type: Bug > Components: CQL >Reporter: Benjamin Lerer >Assignee: Benjamin Lerer > Attachments: 10955-2.2.txt > > > In the case of a table with static columns, if only the static columns have > been set for some partitions, a multi-partitions query with an {{ORDER BY}} > can cause a {{NPE}}. > The following unit test can be used to reproduce the problem: > {code} > @Test > public void testOrderByForInClauseWithNullValue() throws Throwable > { > createTable("CREATE TABLE %s (a int, b int, c int, s int static, d > int, PRIMARY KEY (a, b, c))"); > execute("INSERT INTO %s (a, b, c, d) VALUES (1, 1, 1, 1)"); > execute("INSERT INTO %s (a, b, c, d) VALUES (1, 1, 2, 1)"); > execute("INSERT INTO %s (a, b, c, d) VALUES (2, 2, 1, 1)"); > execute("INSERT INTO %s (a, b, c, d) VALUES (2, 2, 2, 1)"); > execute("UPDATE %s SET s = 1 WHERE a = 1"); > execute("UPDATE %s SET s = 2 WHERE a = 2"); > execute("UPDATE %s SET s = 3 WHERE a = 3"); > assertRows(execute("SELECT a, b, c, d, s FROM %s WHERE a IN (1, 2, 3) > ORDER BY b DESC"), >row(2, 2, 2, 1, 2), >row(2, 2, 1, 1, 2), >row(1, 1, 2, 1, 1), >row(1, 1, 1, 1, 1), >row(3, null, null, null, 3)); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9949) maxPurgeableTimestamp needs to check memtables too
[ https://issues.apache.org/jira/browse/CASSANDRA-9949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112131#comment-15112131 ] Stefania commented on CASSANDRA-9949: - The 3.0 patch is ready as well. This patch is much simpler than the 2.2 version because each partition already has the minimum timestamp in {{stats().minTimestamp}}. There is a small conflict from 3.0 to 3.3 (very easy to resolve) and then it merges clearly from 3.3 to trunk. I'm still monitoring CI and I will move the ticket to patch available once CI is confirmed fine. ||3.0||3.3||trunk|| |[patch|https://github.com/stef1927/cassandra/commits/9949-3.0]|[patch|https://github.com/stef1927/cassandra/commits/9949-3.3]|-| |[testall|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-9949-3.0-testall/]|[testall|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-9949-3.3-testall/]|[testall|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-9949-testall/]| |[dtest|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-9949-3.0-dtest/]|[dtest|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-9949-3.3-dtest/]|[dtest|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-9949-dtest/]| > maxPurgeableTimestamp needs to check memtables too > -- > > Key: CASSANDRA-9949 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9949 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths >Reporter: Jonathan Ellis >Assignee: Stefania > Fix For: 2.2.x, 3.0.x, 3.x > > > overlapIterator/maxPurgeableTimestamp don't include the memtables, so a > very-out-of-order write could be ignored -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11061) Write survey node can't join ring if started with auto_bootstrap: false
[ https://issues.apache.org/jira/browse/CASSANDRA-11061?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joel Knighton updated CASSANDRA-11061: -- Component/s: Distributed Metadata > Write survey node can't join ring if started with auto_bootstrap: false > --- > > Key: CASSANDRA-11061 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11061 > Project: Cassandra > Issue Type: Bug > Components: Distributed Metadata >Reporter: Joel Knighton >Priority: Trivial > > If a blank node is started with auto_bootstrap: false and write_survey=true, > it can't join the ring because it's bootstrap tokens never get persisted to > the SystemKeyspace (since this is done in bootstrap). > We should either persist these tokens even when auto_bootstrap: false or > disallow the use of write_survey mode with auto_bootstrap: false. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11061) Write survey node can't join ring if started with auto_bootstrap: false
[ https://issues.apache.org/jira/browse/CASSANDRA-11061?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joel Knighton updated CASSANDRA-11061: -- Description: If a node with no stored tokens is started with auto_bootstrap: false and write_survey=true, it can't join the ring because its bootstrap tokens never get persisted to the SystemKeyspace (since this is done in bootstrap). We should either persist these tokens even when auto_bootstrap: false or disallow the use of write_survey mode with auto_bootstrap: false. was: If a blank node is started with auto_bootstrap: false and write_survey=true, it can't join the ring because it's bootstrap tokens never get persisted to the SystemKeyspace (since this is done in bootstrap). We should either persist these tokens even when auto_bootstrap: false or disallow the use of write_survey mode with auto_bootstrap: false. > Write survey node can't join ring if started with auto_bootstrap: false > --- > > Key: CASSANDRA-11061 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11061 > Project: Cassandra > Issue Type: Bug > Components: Distributed Metadata >Reporter: Joel Knighton >Priority: Trivial > > If a node with no stored tokens is started with auto_bootstrap: false and > write_survey=true, it can't join the ring because its bootstrap tokens never > get persisted to the SystemKeyspace (since this is done in bootstrap). > We should either persist these tokens even when auto_bootstrap: false or > disallow the use of write_survey mode with auto_bootstrap: false. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-11061) Write survey node can't join ring if started with auto_bootstrap: false
Joel Knighton created CASSANDRA-11061: - Summary: Write survey node can't join ring if started with auto_bootstrap: false Key: CASSANDRA-11061 URL: https://issues.apache.org/jira/browse/CASSANDRA-11061 Project: Cassandra Issue Type: Bug Reporter: Joel Knighton Priority: Trivial If a blank node is started with auto_bootstrap: false and write_survey=true, it can't join the ring because it's bootstrap tokens never get persisted to the SystemKeyspace (since this is done in bootstrap). We should either persist these tokens even when auto_bootstrap: false or disallow the use of write_survey mode with auto_bootstrap: false. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-10622) Add all options in cqlshrc sample as commented out choices
[ https://issues.apache.org/jira/browse/CASSANDRA-10622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-10622: Component/s: (was: CQL) Documentation and Website > Add all options in cqlshrc sample as commented out choices > -- > > Key: CASSANDRA-10622 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10622 > Project: Cassandra > Issue Type: Improvement > Components: Documentation and Website >Reporter: Lorina Poland >Assignee: Tyler Hobbs >Priority: Minor > Labels: doc-impacting, lhf > > All the options should be added to the sample cqlshrc file as commented out > options. This will provide users with the 15 or so options that can be used > in cqlshrc. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11052) Cannot use Java 8 lambda expression inside UDF code body
[ https://issues.apache.org/jira/browse/CASSANDRA-11052?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Stupp updated CASSANDRA-11052: - Fix Version/s: 3.x > Cannot use Java 8 lambda expression inside UDF code body > > > Key: CASSANDRA-11052 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11052 > Project: Cassandra > Issue Type: Bug > Components: CQL >Reporter: DOAN DuyHai >Assignee: Robert Stupp > Fix For: 3.x > > > When creating the following **UDF** using Java 8 lambda syntax > {code:sql} > CREATE FUNCTION IF NOT EXISTS music.udf(state map, styles > list) > RETURNS NULL ON NULL INPUT > RETURNS map > LANGUAGE java > AS $$ >styles.forEach((Object o) -> { >String style = (String)o; >if(state.containsKey(style)) { > state.put(style, (Long)state.get(style)+1); >} else { > state.put(style, 1L); >} >}); > >return state; > $$; > {code} > I got the following exception: > {code:java} > Caused by: com.datastax.driver.core.exceptions.InvalidQueryException: Could > not compile function 'music.udf' from Java source: > org.apache.cassandra.exceptions.InvalidRequestException: Java source > compilation failed: > Line 2: The type java.util.function.Consumer cannot be resolved. It is > indirectly referenced from required .class files > Line 2: The method forEach(Consumer) from the type Iterable refers to the > missing type Consumer > Line 2: The target type of this expression must be a functional interface > at > com.datastax.driver.core.Responses$Error.asException(Responses.java:136) > at > com.datastax.driver.core.DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:179) > at > com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:184) > at > com.datastax.driver.core.RequestHandler.access$2500(RequestHandler.java:43) > at > com.datastax.driver.core.RequestHandler$SpeculativeExecution.setFinalResult(RequestHandler.java:798) > at > com.datastax.driver.core.RequestHandler$SpeculativeExecution.onSet(RequestHandler.java:617) > at > com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:1005) > at > com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:928) > at > io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) > at > io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) > at > io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) > at > io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:276) > at > io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:263) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) > at > io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846) > at > io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) > at > io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) > at > io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) > at > io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) > at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) > at > io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) > ... 1 more > {code} > It looks like the compiler requires importing java.util.Consumer but I have > checked the source code and compiler options already support Java 8 source > code so I'm pretty puzzled here ... > /cc [~snazy] -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11044) query under certain partition key takes much more time than expected
[ https://issues.apache.org/jira/browse/CASSANDRA-11044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112076#comment-15112076 ] xiaost commented on CASSANDRA-11044: seems duplicated of CASSANDRA-8546 > query under certain partition key takes much more time than expected > - > > Key: CASSANDRA-11044 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11044 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths >Reporter: xiaost > Attachments: tracing.log > > > In my cluster, all the nodes is under low workload, > but query under certain partition key (we found one) takes much more time > than expected. > we write & updates about 3 times per row in one day, > reads are much more than writes. > HARDWARD: > 6*nodes(E5-2630, 1*ssd with 5GB data) > TABLE DESCRIBE: > {noformat} > CREATE TABLE album.user_updates ( > user_id bigint, > time_uuid bigint, > key ascii, > PRIMARY KEY (user_id, time_uuid) > ) WITH CLUSTERING ORDER BY (time_uuid ASC) > AND bloom_filter_fp_chance = 0.01 > AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}' > AND comment = '' > AND compaction = {'class': > 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'} > AND compression = {'sstable_compression': > 'org.apache.cassandra.io.compress.LZ4Compressor'} > AND dclocal_read_repair_chance = 0.1 > AND default_time_to_live = 0 > AND gc_grace_seconds = 864000 > AND max_index_interval = 2048 > AND memtable_flush_period_in_ms = 0 > AND min_index_interval = 128 > AND read_repair_chance = 0.0 > AND speculative_retry = '99.0PERCENTILE'; > {noformat} > QUERYs: > {noformat} > select * from user_updates where user_id = 1432138730701829 limit 100; > select count(1) from user_updates where user_id = 1432138730701829; > {noformat} > RESULT: (takes about 3.5 minutes) > {noformat} > count > --- > 1058 > (1 rows) > {noformat} > check attachments for the tracing log -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-10622) Add all options in cqlshrc sample as commented out choices
[ https://issues.apache.org/jira/browse/CASSANDRA-10622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-10622: Reviewer: Lorina Poland > Add all options in cqlshrc sample as commented out choices > -- > > Key: CASSANDRA-10622 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10622 > Project: Cassandra > Issue Type: Improvement > Components: Documentation and Website >Reporter: Lorina Poland >Assignee: Tyler Hobbs >Priority: Minor > Labels: doc-impacting, lhf > Attachments: 10622.patch > > > All the options should be added to the sample cqlshrc file as commented out > options. This will provide users with the 15 or so options that can be used > in cqlshrc. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-10622) Add all options in cqlshrc sample as commented out choices
[ https://issues.apache.org/jira/browse/CASSANDRA-10622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-10622: Attachment: 10622.patch [~lor...@datastax.com] I've attached a patch for Cassandra 2.1. Would you remind reviewing this? > Add all options in cqlshrc sample as commented out choices > -- > > Key: CASSANDRA-10622 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10622 > Project: Cassandra > Issue Type: Improvement > Components: Documentation and Website >Reporter: Lorina Poland >Assignee: Tyler Hobbs >Priority: Minor > Labels: doc-impacting, lhf > Attachments: 10622.patch > > > All the options should be added to the sample cqlshrc file as commented out > options. This will provide users with the 15 or so options that can be used > in cqlshrc. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10622) Add all options in cqlshrc sample as commented out choices
[ https://issues.apache.org/jira/browse/CASSANDRA-10622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15113404#comment-15113404 ] Lorina Poland commented on CASSANDRA-10622: --- Looking good. I see a few items: ENCODING - only COPY TO now MAXATTEMPTS - COPY TO/FROM (COMMON) TIMEFORMAT - changed to DATETIMEFORMAT See patch: https://github.com/stef1927/cassandra/commit/98acd3968ff98e01530bbfd78407214e31b35cfb > Add all options in cqlshrc sample as commented out choices > -- > > Key: CASSANDRA-10622 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10622 > Project: Cassandra > Issue Type: Improvement > Components: Documentation and Website >Reporter: Lorina Poland >Assignee: Tyler Hobbs >Priority: Minor > Labels: doc-impacting, lhf > Attachments: 10622.patch > > > All the options should be added to the sample cqlshrc file as commented out > options. This will provide users with the 15 or so options that can be used > in cqlshrc. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10995) Consider disabling sstable compression by default in 3.x
[ https://issues.apache.org/jira/browse/CASSANDRA-10995?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15113334#comment-15113334 ] Jim Witschey commented on CASSANDRA-10995: -- I started with this workload from [~enigmacurry], which he says he uses as a go-to starting point: http://cstar.datastax.com/tests/id/a4963d82-a596-11e5-8573-0256e416528f I ran the workload with each SSTable compressor and with no compression: * http://cstar.datastax.com/tests/id/872be204-c073-11e5-b8b1-0256e416528f * http://cstar.datastax.com/tests/id/3aa9a452-c055-11e5-8c22-0256e416528f * http://cstar.datastax.com/tests/id/82bcb414-bfb0-11e5-8c22-0256e416528f * http://cstar.datastax.com/tests/id/0ef49fb8-bf94-11e5-8c22-0256e416528f Here are stress' summary statistics: {code} Write === Deflate LZ4Snappy no compression latency 95th percentile 3.5 3.3 3.3 3.4 latency 99th percentile 5.3 4.8 4.7 5.3 latency 99.9th percentile 103.5 86.1 87.786.7 latency max 9357.7 513.3 471.7 397.9 op rate146818.0 226499.0 227101.0227818.0 partition rate 146818.0 226499.0 227101.0227818.0 row rate 146818.0 226499.0 227101.0227818.0 latency mean3.4 2.2 2.2 2.2 latency median 1.5 1.5 1.5 1.5 Read === Deflate LZ4Snappy no compression latency 95th percentile 11.6 4.2 4.5 3.5 latency 99th percentile 27.3 6.4 7.0 5.1 latency 99.9th percentile 56.3 48.5 49.148.4 latency max 363.6 403.1 385.9 469.0 op rate6.0 204419.0 197231.0229806.0 partition rate 6.0 204419.0 197231.0229806.0 row rate 6.0 204419.0 197231.0229806.0 latency mean 7.1 2.4 2.5 2.1 latency median 6.1 1.8 1.9 1.6 Mixed Read/Write === Deflate LZ4Snappy no compression latency 95th percentile 12.0 4.9 5.1 3.5 latency 99th percentile 25.2 9.4 9.0 5.0 latency 99.9th percentile 61.5 59.2 58.857.6 latency max 261.87436.96741.0 3443.8 op rate76038.0 181384.0 177463.0217650.0 partition rate 76038.0 181384.0 177463.0217650.0 row rate 76038.0 181384.0 177463.0217650.0 latency mean 6.5 2.7 2.8 2.3 latency median 5.4 1.7 1.8 1.6 {code} (I generated this chart using the data and iPython notebook posted here: https://gist.github.com/mambocab/7bf14e0ff23e0f807f67 for future reference.) I would want to re-run this a couple times before drawing conclusions, but so far, using no compression is at least better than any compression in most read metrics. Any particular requests for follow-up? My thought was: * at the very least, more runs of this same workload * probably runs of some of the small workloads we use for daily regressions I also have access to Windows machines, so if this benchmark is good, I can run on that cluster as well. It may also be worth the time to confirm that turning off compression doesn't negatively impact, e.g. MVs, 2Is, and a larger variety of datasets. I'm not sure exactly what information we need to make this decision. > Consider disabling sstable compression by default in 3.x > > > Key: CASSANDRA-10995 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10995 > Project: Cassandra > Issue Type: Improvement >Reporter: Aleksey Yeschenko >Assignee: Jim Witschey > > With the new sstable format introduced in CASSANDRA-8099, it's very likely > that enabled sstable compression is no longer the right default option. > [~slebresne]'s [blog post|http://www.datastax.com/2015/12/storage-engine-30] > on the new storage engine has some comparison numbers for 2.2/3.0, with and > without compression that show that in many cases compression no longer has a > significant effect on sstable sizes - all while sill consuming extra > resources for both writes (compression) and reads (decompression). > We should run a
[jira] [Commented] (CASSANDRA-10745) Deprecate PropertyFileSnitch
[ https://issues.apache.org/jira/browse/CASSANDRA-10745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=1511#comment-1511 ] Brandon Williams commented on CASSANDRA-10745: -- GPFS will already fall back to the property file if the node-specific dc-rack file isn't there, so you could just keep packaging it that way and use GPFS instead of PFS. > Deprecate PropertyFileSnitch > > > Key: CASSANDRA-10745 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10745 > Project: Cassandra > Issue Type: Improvement > Components: Coordination, Distributed Metadata >Reporter: Paulo Motta >Priority: Minor > > Opening this ticket to discuss deprecating PropertyFileSnitch, since it's > error-prone and more snitch code to maintain (See CASSANDRA-10243). Migration > from existing cluster with PropertyFileSnitch to GossipingPropertyFileSnitch > is straightforward. > Is there any useful use case that can be achieved only with > PropertyFileSnitch? > If not objections, we would add deprecation warnings in 2.2.x, 3.0.x, 3.2 and > deprecate in 3.4 or 3.6. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[2/6] cassandra git commit: Flush dropped_columns when flushing schema
Flush dropped_columns when flushing schema patch by amorton; reviewed by slebresne for CASSANDRA-11050 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b2147227 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b2147227 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b2147227 Branch: refs/heads/cassandra-3.3 Commit: b214722770113398d22c6c00d46ce0510d868ff9 Parents: e1cc015 Author: Aaron MortonAuthored: Thu Jan 21 14:41:47 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:55:33 2016 +0100 -- CHANGES.txt | 2 ++ src/java/org/apache/cassandra/schema/SchemaKeyspace.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b2147227/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 4a0bca8..8bfb1d1 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,6 @@ 3.0.3 + * Add dropped_columns to the list of schema table so it gets handled + properly (CASSANDRA-11050) * Update CQL documentation (CASSANDRA-10899) * Check the column name, not cell name, for dropped columns when reading legacy sstables (CASSANDRA-11018) http://git-wip-us.apache.org/repos/asf/cassandra/blob/b2147227/src/java/org/apache/cassandra/schema/SchemaKeyspace.java -- diff --git a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java index f1ea6cf..f91ec9c 100644 --- a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java +++ b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java @@ -82,7 +82,7 @@ public final class SchemaKeyspace public static final String INDEXES = "indexes"; public static final List ALL = -ImmutableList.of(KEYSPACES, TABLES, COLUMNS, TRIGGERS, VIEWS, TYPES, FUNCTIONS, AGGREGATES, INDEXES); +ImmutableList.of(KEYSPACES, TABLES, COLUMNS, DROPPED_COLUMNS, TRIGGERS, VIEWS, TYPES, FUNCTIONS, AGGREGATES, INDEXES); private static final CFMetaData Keyspaces = compile(KEYSPACES,
[jira] [Updated] (CASSANDRA-11037) cqlsh bash script cannot be called through symlink
[ https://issues.apache.org/jira/browse/CASSANDRA-11037?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Carl Yeksigian updated CASSANDRA-11037: --- Reviewer: Carl Yeksigian > cqlsh bash script cannot be called through symlink > -- > > Key: CASSANDRA-11037 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11037 > Project: Cassandra > Issue Type: Bug > Components: Tools > Environment: BASH >Reporter: Benjamin Zarzycki >Priority: Trivial > Labels: lhf > Fix For: 2.2.0 > > Original Estimate: 0h > Remaining Estimate: 0h > > cqlsh bash script cannot be called through a symlink -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9472) Reintroduce off heap memtables
[ https://issues.apache.org/jira/browse/CASSANDRA-9472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112681#comment-15112681 ] Benedict commented on CASSANDRA-9472: - This is reintroducing the "Slightly More Offheap Memtables" - i.e. # Partially # If you use on-heap only; with off-heap memtables the on-heap data is only the object graph needed to easily utilise the offheap data # Depends entirely on workload: there are fixed on-heap overheads per cell, per row/marker, and per partition. I haven't done the maths recently, but it works out roughly to 30-32 bytes per cell on-heap, 50-100 bytes per row, and something similar for a partition. If your'e storing many rows of few cells of small values, then it will still mostly be on-heap. # Depends entirely on what you mean by sufficient. IMO there is no standard universal wisdom to provide for heap tuning; your workload again defines the best constraints. Heap usage characteristics won't vary tremendously from current practice, really, you'll just be able to buffer more data in your memtables (or have less Java heap) You will still accumulate longer-lived data that my survive multiple YG GCs, depending on your usage profile. # It is always configurable just as on-heap limits are. Currently it is set to the same heuristic as on-heap, i.e. 1/4 heap iirc # as always, they are optional, and by default off # I would assume soon. Fully off-heap is still a ways off, most likely after TPC (Thread Per Core) > Reintroduce off heap memtables > -- > > Key: CASSANDRA-9472 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9472 > Project: Cassandra > Issue Type: Improvement >Reporter: Benedict >Assignee: Benedict > Fix For: 3.x > > > CASSANDRA-8099 removes off heap memtables. We should reintroduce them ASAP. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9986) Remove SliceableUnfilteredRowIterator
[ https://issues.apache.org/jira/browse/CASSANDRA-9986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112669#comment-15112669 ] Sylvain Lebresne commented on CASSANDRA-9986: - The patch looks good in general. One minor remark is that you've pulled the {{getPosition(key, SSTableReader.Operator.EQ)}} from {{SSTableIterator}} and {{SSTableReversedIterator}} to inside {{BigTableReader}}, which makes sense but should probably be pushed a little further. In particular, we could do the same {{indexEntry == null}} check in the other {{BigTableReader.iterator()}} call and then make the first call simply delegate to the 2nd one. After which we can assert the index entry is not null in {{AbstractSSTableIterator}} and remove the related branch in the ctor. And I'm fine doing those minor changes on commit btw so +1. > Remove SliceableUnfilteredRowIterator > - > > Key: CASSANDRA-9986 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9986 > Project: Cassandra > Issue Type: Sub-task >Reporter: Benedict >Assignee: Benedict >Priority: Minor > Fix For: 3.x > > > After CASSANDRA-9932, there is only one instance where this class is needed, > and that is {{SSTableIterator}}. It would be much simpler if, like in > {{AbstractBTreePartition}}, the slices were passed into the > {{SSTableIterator}} on construction. This would make the control flow easier > to follow both: > * logically, because: > ** memtables and sstables would have the same access pattern; and > ** our SSTableIterator would not have two modes of (parallel) operation, > which is kind of confusing (the slices are independent of the non-sliced > iteration) > * in the debugger, because we would have one fewer wrapping iterator -- 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/dd816b3d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dd816b3d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dd816b3d Branch: refs/heads/cassandra-3.3 Commit: dd816b3d7cf213d1b0c4dbebb1761a7ce38280a9 Parents: 94c4bdb d2b7051 Author: Sylvain LebresneAuthored: Fri Jan 22 18:02:29 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 18:02:29 2016 +0100 -- CHANGES.txt | 2 -- src/java/org/apache/cassandra/schema/SchemaKeyspace.java | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd816b3d/CHANGES.txt -- diff --cc CHANGES.txt index 6b25d10,4a0bca8..94b723c --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,8 -1,4 +1,6 @@@ -3.0.3 +3.3 + * Avoid bootstrap hanging when existing nodes have no data to stream (CASSANDRA-11010) +Merged from 3.0: - * Add dropped_columns to the list of schema table so it gets handled -properly (CASSANDRA-11050) * Update CQL documentation (CASSANDRA-10899) * Check the column name, not cell name, for dropped columns when reading legacy sstables (CASSANDRA-11018) http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd816b3d/src/java/org/apache/cassandra/schema/SchemaKeyspace.java --
[2/6] cassandra git commit: Revert "Flush dropped_columns when flushing schema"
Revert "Flush dropped_columns when flushing schema" This reverts commit b214722770113398d22c6c00d46ce0510d868ff9. Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d2b70517 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d2b70517 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d2b70517 Branch: refs/heads/cassandra-3.3 Commit: d2b70517d63b8cf8e5072ec449955cab9b34d408 Parents: b214722 Author: Sylvain LebresneAuthored: Fri Jan 22 18:02:04 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 18:02:04 2016 +0100 -- CHANGES.txt | 2 -- src/java/org/apache/cassandra/schema/SchemaKeyspace.java | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2b70517/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 8bfb1d1..4a0bca8 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,4 @@ 3.0.3 - * Add dropped_columns to the list of schema table so it gets handled - properly (CASSANDRA-11050) * Update CQL documentation (CASSANDRA-10899) * Check the column name, not cell name, for dropped columns when reading legacy sstables (CASSANDRA-11018) http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2b70517/src/java/org/apache/cassandra/schema/SchemaKeyspace.java -- diff --git a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java index f91ec9c..f1ea6cf 100644 --- a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java +++ b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java @@ -82,7 +82,7 @@ public final class SchemaKeyspace public static final String INDEXES = "indexes"; public static final List ALL = -ImmutableList.of(KEYSPACES, TABLES, COLUMNS, DROPPED_COLUMNS, TRIGGERS, VIEWS, TYPES, FUNCTIONS, AGGREGATES, INDEXES); +ImmutableList.of(KEYSPACES, TABLES, COLUMNS, TRIGGERS, VIEWS, TYPES, FUNCTIONS, AGGREGATES, INDEXES); private static final CFMetaData Keyspaces = compile(KEYSPACES,
[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/e74ca043 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e74ca043 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e74ca043 Branch: refs/heads/trunk Commit: e74ca0432524e0d88cd4c42d814e43517b4de21f Parents: aa2d31b dd816b3 Author: Sylvain LebresneAuthored: Fri Jan 22 18:02:38 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 18:02:38 2016 +0100 -- CHANGES.txt | 2 -- src/java/org/apache/cassandra/schema/SchemaKeyspace.java | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e74ca043/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e74ca043/src/java/org/apache/cassandra/schema/SchemaKeyspace.java --
[1/6] cassandra git commit: Revert "Flush dropped_columns when flushing schema"
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 b21472277 -> d2b70517d refs/heads/cassandra-3.3 94c4bdb6f -> dd816b3d7 refs/heads/trunk aa2d31b18 -> e74ca0432 Revert "Flush dropped_columns when flushing schema" This reverts commit b214722770113398d22c6c00d46ce0510d868ff9. Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d2b70517 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d2b70517 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d2b70517 Branch: refs/heads/cassandra-3.0 Commit: d2b70517d63b8cf8e5072ec449955cab9b34d408 Parents: b214722 Author: Sylvain LebresneAuthored: Fri Jan 22 18:02:04 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 18:02:04 2016 +0100 -- CHANGES.txt | 2 -- src/java/org/apache/cassandra/schema/SchemaKeyspace.java | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2b70517/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 8bfb1d1..4a0bca8 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,4 @@ 3.0.3 - * Add dropped_columns to the list of schema table so it gets handled - properly (CASSANDRA-11050) * Update CQL documentation (CASSANDRA-10899) * Check the column name, not cell name, for dropped columns when reading legacy sstables (CASSANDRA-11018) http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2b70517/src/java/org/apache/cassandra/schema/SchemaKeyspace.java -- diff --git a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java index f91ec9c..f1ea6cf 100644 --- a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java +++ b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java @@ -82,7 +82,7 @@ public final class SchemaKeyspace public static final String INDEXES = "indexes"; public static final List ALL = -ImmutableList.of(KEYSPACES, TABLES, COLUMNS, DROPPED_COLUMNS, TRIGGERS, VIEWS, TYPES, FUNCTIONS, AGGREGATES, INDEXES); +ImmutableList.of(KEYSPACES, TABLES, COLUMNS, TRIGGERS, VIEWS, TYPES, FUNCTIONS, AGGREGATES, INDEXES); private static final CFMetaData Keyspaces = compile(KEYSPACES,
[3/6] cassandra git commit: Revert "Flush dropped_columns when flushing schema"
Revert "Flush dropped_columns when flushing schema" This reverts commit b214722770113398d22c6c00d46ce0510d868ff9. Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d2b70517 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d2b70517 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d2b70517 Branch: refs/heads/trunk Commit: d2b70517d63b8cf8e5072ec449955cab9b34d408 Parents: b214722 Author: Sylvain LebresneAuthored: Fri Jan 22 18:02:04 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 18:02:04 2016 +0100 -- CHANGES.txt | 2 -- src/java/org/apache/cassandra/schema/SchemaKeyspace.java | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2b70517/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 8bfb1d1..4a0bca8 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,4 @@ 3.0.3 - * Add dropped_columns to the list of schema table so it gets handled - properly (CASSANDRA-11050) * Update CQL documentation (CASSANDRA-10899) * Check the column name, not cell name, for dropped columns when reading legacy sstables (CASSANDRA-11018) http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2b70517/src/java/org/apache/cassandra/schema/SchemaKeyspace.java -- diff --git a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java index f91ec9c..f1ea6cf 100644 --- a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java +++ b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java @@ -82,7 +82,7 @@ public final class SchemaKeyspace public static final String INDEXES = "indexes"; public static final List ALL = -ImmutableList.of(KEYSPACES, TABLES, COLUMNS, DROPPED_COLUMNS, TRIGGERS, VIEWS, TYPES, FUNCTIONS, AGGREGATES, INDEXES); +ImmutableList.of(KEYSPACES, TABLES, COLUMNS, TRIGGERS, VIEWS, TYPES, FUNCTIONS, AGGREGATES, INDEXES); private static final CFMetaData Keyspaces = compile(KEYSPACES,
[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/dd816b3d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dd816b3d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dd816b3d Branch: refs/heads/trunk Commit: dd816b3d7cf213d1b0c4dbebb1761a7ce38280a9 Parents: 94c4bdb d2b7051 Author: Sylvain LebresneAuthored: Fri Jan 22 18:02:29 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 18:02:29 2016 +0100 -- CHANGES.txt | 2 -- src/java/org/apache/cassandra/schema/SchemaKeyspace.java | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd816b3d/CHANGES.txt -- diff --cc CHANGES.txt index 6b25d10,4a0bca8..94b723c --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,8 -1,4 +1,6 @@@ -3.0.3 +3.3 + * Avoid bootstrap hanging when existing nodes have no data to stream (CASSANDRA-11010) +Merged from 3.0: - * Add dropped_columns to the list of schema table so it gets handled -properly (CASSANDRA-11050) * Update CQL documentation (CASSANDRA-10899) * Check the column name, not cell name, for dropped columns when reading legacy sstables (CASSANDRA-11018) http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd816b3d/src/java/org/apache/cassandra/schema/SchemaKeyspace.java --
[jira] [Commented] (CASSANDRA-10392) Allow Cassandra to trace to custom tracing implementations
[ https://issues.apache.org/jira/browse/CASSANDRA-10392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112411#comment-15112411 ] T Jake Luciani commented on CASSANDRA-10392: Could you rebase the C* patch against trunk? then I can kick off the test runs. > Allow Cassandra to trace to custom tracing implementations > --- > > Key: CASSANDRA-10392 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10392 > Project: Cassandra > Issue Type: Improvement >Reporter: mck >Assignee: mck > Fix For: 3.x > > Attachments: 10392-trunk.txt, cassandra-dtest_master-10392.txt > > > It can be possible to use an external tracing solution in Cassandra by > abstracting out the writing of tracing to system_traces tables in the tracing > package to separate implementation classes and leaving abstract classes in > place that define the interface and behaviour otherwise of C* tracing. > Then via a system property "cassandra.custom_tracing_class" the Tracing class > implementation could be swapped out with something third party. > An example of this is adding Zipkin tracing into Cassandra in the Summit > [presentation|http://thelastpickle.com/files/2015-09-24-using-zipkin-for-full-stack-tracing-including-cassandra/presentation/tlp-reveal.js/tlp-cassandra-zipkin.html]. > Code for the implemented Zipkin plugin can be found at > https://github.com/thelastpickle/cassandra-zipkin-tracing/ > In addition this patch passes the custom payload through into the tracing > session allowing a third party tracing solution like Zipkin to do full-stack > tracing from clients through and into Cassandra. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
cassandra git commit: Re-enable skipping non-queried column values
Repository: cassandra Updated Branches: refs/heads/trunk 129b68c1c -> fd74a0360 Re-enable skipping non-queried column values patch by slebresne; reviewed by beobal for CASSANDRA-10657 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fd74a036 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fd74a036 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fd74a036 Branch: refs/heads/trunk Commit: fd74a03602421ca07b6b1087803c54577adae4dd Parents: 129b68c Author: Sylvain LebresneAuthored: Tue Dec 22 17:08:17 2015 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:25:12 2016 +0100 -- CHANGES.txt | 1 + .../db/SinglePartitionReadCommand.java | 2 +- .../cassandra/db/filter/ColumnFilter.java | 217 +++ .../db/partitions/PartitionUpdate.java | 26 ++- .../org/apache/cassandra/db/rows/BTreeRow.java | 34 ++- .../cassandra/db/rows/ComplexColumnData.java| 22 +- src/java/org/apache/cassandra/db/rows/Row.java | 10 + .../apache/cassandra/db/rows/RowIterators.java | 17 ++ .../cassandra/db/rows/SerializationHelper.java | 39 +++- .../db/rows/UnfilteredRowIterators.java | 18 ++ .../cassandra/db/rows/UnfilteredSerializer.java | 4 +- .../cassandra/db/rows/WithOnlyQueriedData.java | 49 + .../apache/cassandra/schema/SchemaKeyspace.java | 2 +- .../apache/cassandra/service/DataResolver.java | 15 +- .../cassandra/streaming/StreamReceiveTask.java | 3 +- .../cassandra/thrift/CassandraServer.java | 4 +- 16 files changed, 338 insertions(+), 125 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fd74a036/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index a44b967..5c577f7 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.4 + * Skip values for non-queried columns (CASSANDRA-10657) * Add support for secondary indexes on static columns (CASSANDRA-8103) * CommitLogUpgradeTestMaker creates broken commit logs (CASSANDRA-11051) * Add metric for number of dropped mutations (CASSANDRA-10866) http://git-wip-us.apache.org/repos/asf/cassandra/blob/fd74a036/src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java -- diff --git a/src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java b/src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java index 4c87d10..a1de3d6 100644 --- a/src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java +++ b/src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java @@ -746,7 +746,7 @@ public class SinglePartitionReadCommand extends ReadCommand try (UnfilteredRowIterator iter = result.unfilteredIterator(columnFilter(), Slices.ALL, false)) { -final Mutation mutation = new Mutation(PartitionUpdate.fromIterator(iter)); +final Mutation mutation = new Mutation(PartitionUpdate.fromIterator(iter, columnFilter())); StageManager.getStage(Stage.MUTATION).execute(new Runnable() { public void run() http://git-wip-us.apache.org/repos/asf/cassandra/blob/fd74a036/src/java/org/apache/cassandra/db/filter/ColumnFilter.java -- diff --git a/src/java/org/apache/cassandra/db/filter/ColumnFilter.java b/src/java/org/apache/cassandra/db/filter/ColumnFilter.java index e22c154..9c4c714 100644 --- a/src/java/org/apache/cassandra/db/filter/ColumnFilter.java +++ b/src/java/org/apache/cassandra/db/filter/ColumnFilter.java @@ -36,44 +36,57 @@ import org.apache.cassandra.io.util.DataOutputPlus; * Represents which (non-PK) columns (and optionally which sub-part of a column for complex columns) are selected * by a query. * - * In practice, this class cover 2 main cases: - * 1) most user queries have to internally query all columns, because the CQL semantic requires us to know if - * a row is live or not even if it has no values for the columns requested by the user (see #6588for more - * details). However, while we need to know for columns if it has live values, we can actually save from - * sending the values for those columns that will not be returned to the user. - * 2) for some internal queries (and for queries using #6588 if we introduce it), we're actually fine only - * actually querying some of the columns. + * We distinguish 2 sets of columns in practice: the _fetched_ columns, which are the columns that we (may, see + * below) need to fetch internally, and the _queried_ columns,
[jira] [Commented] (CASSANDRA-10025) Allow compaction throttle to be real time
[ https://issues.apache.org/jira/browse/CASSANDRA-10025?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112394#comment-15112394 ] Aleksey Yeschenko commented on CASSANDRA-10025: --- [~kohlisankalp] Thanks. Once you mark something as RTC, someone on commit duty will pick it up shortly. > Allow compaction throttle to be real time > - > > Key: CASSANDRA-10025 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10025 > Project: Cassandra > Issue Type: Improvement >Reporter: sankalp kohli >Assignee: Soumava Ghosh >Priority: Minor > Labels: compaction > Fix For: 2.1.x > > Attachments: 10025-2.1.txt, 10025-2.2.txt, 10025-3.0.txt, > 10025-trunk.txt > > > We should allow compaction throttle to be set while compaction is going on. > Currently, it takes effect on the next compaction. This is bad for large > compactions. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-10707) Add support for Group By to Select statement
[ https://issues.apache.org/jira/browse/CASSANDRA-10707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112398#comment-15112398 ] Benjamin Lerer commented on CASSANDRA-10707: This ticket add only support for a {{GROUP BY}} clause with primary key columns. We might add support for some specific functions in the {{GROUP BY}} clause. Adding support for UDFs in the {{GROUP BY}} clause is a more tricky problem. By grouping the data by primary key prefixes, we make sure that we control the amount of memory used. As long as a function guaranty the same order as the underlying column, it will work fine in the {{GROUP BY}} clause. If not, the results returned will not make sense anymore. By consequence, allowing UDF in the Group By clause present some risks. > Add support for Group By to Select statement > > > Key: CASSANDRA-10707 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10707 > Project: Cassandra > Issue Type: Improvement > Components: CQL >Reporter: Benjamin Lerer >Assignee: Benjamin Lerer > > Now that Cassandra support aggregate functions, it makes sense to support > {{GROUP BY}} on the {{SELECT}} statements. > It should be possible to group either at the partition level or at the > clustering column level. > {code} > SELECT partitionKey, max(value) FROM myTable GROUP BY partitionKey; > SELECT partitionKey, clustering0, clustering1, max(value) FROM myTable GROUP > BY partitionKey, clustering0, clustering1; > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[05/10] cassandra git commit: Merge commit '7bab8240e63753ac338890cbd31572e38234c23d' into cassandra-3.0
Merge commit '7bab8240e63753ac338890cbd31572e38234c23d' 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/e07c7d0c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e07c7d0c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e07c7d0c Branch: refs/heads/cassandra-3.3 Commit: e07c7d0c179ad52dd894157f8d7a02deafe6125e Parents: 1e25d19 7bab824 Author: Sylvain LebresneAuthored: Fri Jan 22 15:32:51 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:32:51 2016 +0100 -- --
[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/01a10f01 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/01a10f01 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/01a10f01 Branch: refs/heads/trunk Commit: 01a10f01229fe3559d4c20a014e901eeaa0e1b9d Parents: 53339a0 e07c7d0 Author: Sylvain LebresneAuthored: Fri Jan 22 15:33:03 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:33:03 2016 +0100 -- --
[06/10] cassandra git commit: Merge commit '7bab8240e63753ac338890cbd31572e38234c23d' into cassandra-3.0
Merge commit '7bab8240e63753ac338890cbd31572e38234c23d' 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/e07c7d0c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e07c7d0c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e07c7d0c Branch: refs/heads/cassandra-3.0 Commit: e07c7d0c179ad52dd894157f8d7a02deafe6125e Parents: 1e25d19 7bab824 Author: Sylvain LebresneAuthored: Fri Jan 22 15:32:51 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:32:51 2016 +0100 -- --
[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/01a10f01 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/01a10f01 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/01a10f01 Branch: refs/heads/cassandra-3.3 Commit: 01a10f01229fe3559d4c20a014e901eeaa0e1b9d Parents: 53339a0 e07c7d0 Author: Sylvain LebresneAuthored: Fri Jan 22 15:33:03 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:33:03 2016 +0100 -- --
[jira] [Commented] (CASSANDRA-9472) Reintroduce off heap memtables
[ https://issues.apache.org/jira/browse/CASSANDRA-9472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112647#comment-15112647 ] Jack Krupansky commented on CASSANDRA-9472: --- A couple quick questions: 1. Does this Jira move memtables "entirely" offheap, or just "partially"? (Back in July the discussion was that fully offheap was too large an effort.) 2. Is there still an "arena" allocation onheap? 3. What ballpark fraction of a typical Cassandra heap is consumed by memtables - 80%, more, less? 4. Does moving memtables offheap get Cassandra to the point where a default JVM heap allocation is sufficient? If not, please be sure to offer new recommended best practice guidance as to how to estimate heap requirements when memtables are offheap. 5. What heuristic rule/threshold is used to determine how much of system memory can be consumed by offheap memtables? Is that limit user-controllable by a (documented) configuration setting? 6. Are offheap memtables an optional configuration setting, or hardwired? 7. Is this coming soon, like 3.4, or is it still a ways off? > Reintroduce off heap memtables > -- > > Key: CASSANDRA-9472 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9472 > Project: Cassandra > Issue Type: Improvement >Reporter: Benedict >Assignee: Benedict > Fix For: 3.x > > > CASSANDRA-8099 removes off heap memtables. We should reintroduce them ASAP. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11047) native protocol will not bind ipv6
[ https://issues.apache.org/jira/browse/CASSANDRA-11047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112652#comment-15112652 ] Norman Maurer commented on CASSANDRA-11047: --- will check next week. > native protocol will not bind ipv6 > -- > > Key: CASSANDRA-11047 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11047 > Project: Cassandra > Issue Type: Bug > Components: CQL >Reporter: Brandon Williams >Assignee: Norman Maurer > Fix For: 2.1.x, 2.2.x, 3.x > > > When you set rpc_address to 0.0.0.0 it should bind every interface. Of > course for ipv6 you have to comment out -Djava.net.preferIPv4Stack=true from > cassandra-env.sh, however this will not make the native protocol bind on > ipv6, only thrift: > {noformat} > tcp6 0 0 :::9160 :::*LISTEN > 13488/java > tcp6 0 0 0.0.0.0:9042:::*LISTEN > 13488/java > # telnet ::1 9160 > Trying ::1... > Connected to ::1. > Escape character is '^]'. > ^] > telnet> quit > Connection closed. > # telnet ::1 9042 > Trying ::1... > telnet: Unable to connect to remote host: Connection refused > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9669) If sstable flushes complete out of order, on restart we can fail to replay necessary commit log records
[ https://issues.apache.org/jira/browse/CASSANDRA-9669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112552#comment-15112552 ] Sylvain Lebresne commented on CASSANDRA-9669: - I believe the patch needs at least the changes discussed above, of making the changes to the sstable metadata only be new appends to the end. [~benedict] could you make those changes? Also, I'm slightly confused on the versions here: I see the patch for 2.2 with CI results but nothing for 3.0. Surely the patch doesn't merge up cleanly, does it? > If sstable flushes complete out of order, on restart we can fail to replay > necessary commit log records > --- > > Key: CASSANDRA-9669 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9669 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths >Reporter: Benedict >Assignee: Benedict >Priority: Critical > Labels: correctness > Fix For: 2.2.x, 3.0.x, 3.x > > > While {{postFlushExecutor}} ensures it never expires CL entries out-of-order, > on restart we simply take the maximum replay position of any sstable on disk, > and ignore anything prior. > It is quite possible for there to be two flushes triggered for a given table, > and for the second to finish first by virtue of containing a much smaller > quantity of live data (or perhaps the disk is just under less pressure). If > we crash before the first sstable has been written, then on restart the data > it would have represented will disappear, since we will not replay the CL > records. > This looks to be a bug present since time immemorial, and also seems pretty > serious. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
cassandra git commit: Add --skip-flush option to nodetool snapshot
Repository: cassandra Updated Branches: refs/heads/trunk 2f984e330 -> ee9e38b7d Add --skip-flush option to nodetool snapshot patch by anubhavkale; reviewed by pauloricardomg for CASSANDRA-10907 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ee9e38b7 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ee9e38b7 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ee9e38b7 Branch: refs/heads/trunk Commit: ee9e38b7dc20a3b98e5a68904be35d727ed9c09c Parents: 2f984e3 Author: anubhavkaleAuthored: Tue Jan 19 12:56:29 2016 -0800 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:42:55 2016 +0100 -- CHANGES.txt | 2 +- .../apache/cassandra/db/ColumnFamilyStore.java | 21 +++- src/java/org/apache/cassandra/db/Keyspace.java | 18 +++- .../repair/RepairMessageVerbHandler.java| 2 +- .../cassandra/service/StorageService.java | 106 +-- .../cassandra/service/StorageServiceMBean.java | 27 ++--- .../org/apache/cassandra/tools/NodeProbe.java | 15 +-- .../cassandra/tools/nodetool/Snapshot.java | 15 ++- .../cassandra/db/ColumnFamilyStoreTest.java | 4 +- .../service/StorageServiceServerTest.java | 13 ++- 10 files changed, 156 insertions(+), 67 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ee9e38b7/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 3f80264..b8314e5 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.4 + * Add --skip-flush option to nodetool snapshot * Skip values for non-queried columns (CASSANDRA-10657) * Add support for secondary indexes on static columns (CASSANDRA-8103) * CommitLogUpgradeTestMaker creates broken commit logs (CASSANDRA-11051) @@ -9,7 +10,6 @@ * Add nodetool gettimeout and settimeout commands (CASSANDRA-10953) * Add 3.0 metadata to sstablemetadata output (CASSANDRA-10838) - 3.3 * Avoid bootstrap hanging when existing nodes have no data to stream (CASSANDRA-11010) Merged from 3.0: http://git-wip-us.apache.org/repos/asf/cassandra/blob/ee9e38b7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java -- diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java index 486808b..52d8747 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -1749,16 +1749,31 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean */ public Set snapshot(String snapshotName) { -return snapshot(snapshotName, null, false); +return snapshot(snapshotName, false); +} + +/** + * Take a snap shot of this columnfamily store. + * + * @param snapshotName the name of the associated with the snapshot + * @param skipFlush Skip blocking flush of memtable + */ +public Set snapshot(String snapshotName, boolean skipFlush) +{ +return snapshot(snapshotName, null, false, skipFlush); } /** * @param ephemeral If this flag is set to true, the snapshot will be cleaned up during next startup + * @param skipFlush Skip blocking flush of memtable */ -public Set snapshot(String snapshotName, Predicate predicate, boolean ephemeral) +public Set snapshot(String snapshotName, Predicate predicate, boolean ephemeral, boolean skipFlush) { -forceBlockingFlush(); +if (!skipFlush) +{ +forceBlockingFlush(); +} return snapshotWithoutFlush(snapshotName, predicate, ephemeral); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/ee9e38b7/src/java/org/apache/cassandra/db/Keyspace.java -- diff --git a/src/java/org/apache/cassandra/db/Keyspace.java b/src/java/org/apache/cassandra/db/Keyspace.java index 0ec94ea..6122479 100644 --- a/src/java/org/apache/cassandra/db/Keyspace.java +++ b/src/java/org/apache/cassandra/db/Keyspace.java @@ -219,9 +219,10 @@ public class Keyspace * * @param snapshotName the tag associated with the name of the snapshot. This value may not be null * @param columnFamilyName the column family to snapshot or all on null + * @param skipFlush Skip blocking flush of memtable * @throws IOException if the column family doesn't exist */ -public void snapshot(String snapshotName, String columnFamilyName) throws IOException +public void snapshot(String snapshotName, String columnFamilyName, boolean skipFlush)
[jira] [Commented] (CASSANDRA-9669) If sstable flushes complete out of order, on restart we can fail to replay necessary commit log records
[ https://issues.apache.org/jira/browse/CASSANDRA-9669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112566#comment-15112566 ] Benedict commented on CASSANDRA-9669: - I've already made the changes and am working on a merge (you assume correctly; it is in fact quite painful). > If sstable flushes complete out of order, on restart we can fail to replay > necessary commit log records > --- > > Key: CASSANDRA-9669 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9669 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths >Reporter: Benedict >Assignee: Benedict >Priority: Critical > Labels: correctness > Fix For: 2.2.x, 3.0.x, 3.x > > > While {{postFlushExecutor}} ensures it never expires CL entries out-of-order, > on restart we simply take the maximum replay position of any sstable on disk, > and ignore anything prior. > It is quite possible for there to be two flushes triggered for a given table, > and for the second to finish first by virtue of containing a much smaller > quantity of live data (or perhaps the disk is just under less pressure). If > we crash before the first sstable has been written, then on restart the data > it would have represented will disappear, since we will not replay the CL > records. > This looks to be a bug present since time immemorial, and also seems pretty > serious. -- 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/94c4bdb6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/94c4bdb6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/94c4bdb6 Branch: refs/heads/cassandra-3.3 Commit: 94c4bdb6f1d1524325de5b0805541b1575a73dcb Parents: 7074dda b214722 Author: Sylvain LebresneAuthored: Fri Jan 22 16:55:58 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:55:58 2016 +0100 -- CHANGES.txt | 2 ++ src/java/org/apache/cassandra/schema/SchemaKeyspace.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/94c4bdb6/CHANGES.txt -- diff --cc CHANGES.txt index 94b723c,8bfb1d1..6b25d10 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,6 -1,6 +1,8 @@@ -3.0.3 +3.3 + * Avoid bootstrap hanging when existing nodes have no data to stream (CASSANDRA-11010) +Merged from 3.0: + * Add dropped_columns to the list of schema table so it gets handled +properly (CASSANDRA-11050) * Update CQL documentation (CASSANDRA-10899) * Check the column name, not cell name, for dropped columns when reading legacy sstables (CASSANDRA-11018) http://git-wip-us.apache.org/repos/asf/cassandra/blob/94c4bdb6/src/java/org/apache/cassandra/schema/SchemaKeyspace.java --
[3/6] cassandra git commit: Flush dropped_columns when flushing schema
Flush dropped_columns when flushing schema patch by amorton; reviewed by slebresne for CASSANDRA-11050 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b2147227 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b2147227 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b2147227 Branch: refs/heads/trunk Commit: b214722770113398d22c6c00d46ce0510d868ff9 Parents: e1cc015 Author: Aaron MortonAuthored: Thu Jan 21 14:41:47 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 16:55:33 2016 +0100 -- CHANGES.txt | 2 ++ src/java/org/apache/cassandra/schema/SchemaKeyspace.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b2147227/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 4a0bca8..8bfb1d1 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,6 @@ 3.0.3 + * Add dropped_columns to the list of schema table so it gets handled + properly (CASSANDRA-11050) * Update CQL documentation (CASSANDRA-10899) * Check the column name, not cell name, for dropped columns when reading legacy sstables (CASSANDRA-11018) http://git-wip-us.apache.org/repos/asf/cassandra/blob/b2147227/src/java/org/apache/cassandra/schema/SchemaKeyspace.java -- diff --git a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java index f1ea6cf..f91ec9c 100644 --- a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java +++ b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java @@ -82,7 +82,7 @@ public final class SchemaKeyspace public static final String INDEXES = "indexes"; public static final List ALL = -ImmutableList.of(KEYSPACES, TABLES, COLUMNS, TRIGGERS, VIEWS, TYPES, FUNCTIONS, AGGREGATES, INDEXES); +ImmutableList.of(KEYSPACES, TABLES, COLUMNS, DROPPED_COLUMNS, TRIGGERS, VIEWS, TYPES, FUNCTIONS, AGGREGATES, INDEXES); private static final CFMetaData Keyspaces = compile(KEYSPACES,
[jira] [Commented] (CASSANDRA-9986) Remove SliceableUnfilteredRowIterator
[ https://issues.apache.org/jira/browse/CASSANDRA-9986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15112585#comment-15112585 ] Benedict commented on CASSANDRA-9986: - I've pushed a rebased and slightly tweaked version, which I've used as a base for CASSANDRA-9472 > Remove SliceableUnfilteredRowIterator > - > > Key: CASSANDRA-9986 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9986 > Project: Cassandra > Issue Type: Sub-task >Reporter: Benedict >Assignee: Benedict >Priority: Minor > Fix For: 3.x > > > After CASSANDRA-9932, there is only one instance where this class is needed, > and that is {{SSTableIterator}}. It would be much simpler if, like in > {{AbstractBTreePartition}}, the slices were passed into the > {{SSTableIterator}} on construction. This would make the control flow easier > to follow both: > * logically, because: > ** memtables and sstables would have the same access pattern; and > ** our SSTableIterator would not have two modes of (parallel) operation, > which is kind of confusing (the slices are independent of the non-sliced > iteration) > * in the debugger, because we would have one fewer wrapping iterator -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (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 ] T Jake Luciani updated CASSANDRA-10779: --- Tester: T Jake Luciani > 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: Tyler Hobbs > Fix For: 3.0.x, 3.x > > > 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)
[02/10] cassandra git commit: Don't query more results than necessary when paging range queries
Don't query more results than necessary when paging range queries patch by slebresne; reviewed by blerer for CASSANDRA-8521 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7bab8240 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7bab8240 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7bab8240 Branch: refs/heads/cassandra-3.0 Commit: 7bab8240e63753ac338890cbd31572e38234c23d Parents: 38dde32 Author: Sylvain LebresneAuthored: Tue Jan 12 16:38:38 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:32:25 2016 +0100 -- CHANGES.txt | 1 + .../org/apache/cassandra/service/pager/RangeSliceQueryPager.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7bab8240/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 751267e..54ed851 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.5 + * Avoid over-fetching during the page of range queries (CASSANDRA-8521) * Start L0 STCS-compactions even if there is a L0 -> L1 compaction going (CASSANDRA-10979) * Make UUID LSB unique per process (CASSANDRA-7925) http://git-wip-us.apache.org/repos/asf/cassandra/blob/7bab8240/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java -- diff --git a/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java b/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java index fd14c82..10e470b 100644 --- a/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java +++ b/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java @@ -72,7 +72,8 @@ public class RangeSliceQueryPager extends AbstractQueryPager protected List queryNextPage(int pageSize, ConsistencyLevel consistencyLevel, boolean localQuery) throws RequestExecutionException { -SliceQueryFilter sf = (SliceQueryFilter)columnFilter; +SliceQueryFilter rawFilter = (SliceQueryFilter)columnFilter; +SliceQueryFilter sf = rawFilter.withUpdatedCount(Math.min(rawFilter.count, pageSize)); AbstractBounds keyRange = lastReturnedKey == null ? command.keyRange : makeIncludingKeyBounds(lastReturnedKey); Composite start = lastReturnedName == null ? sf.start() : lastReturnedName; PagedRangeCommand pageCmd = new PagedRangeCommand(command.keyspace,
[03/10] cassandra git commit: Don't query more results than necessary when paging range queries
Don't query more results than necessary when paging range queries patch by slebresne; reviewed by blerer for CASSANDRA-8521 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7bab8240 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7bab8240 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7bab8240 Branch: refs/heads/cassandra-3.3 Commit: 7bab8240e63753ac338890cbd31572e38234c23d Parents: 38dde32 Author: Sylvain LebresneAuthored: Tue Jan 12 16:38:38 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:32:25 2016 +0100 -- CHANGES.txt | 1 + .../org/apache/cassandra/service/pager/RangeSliceQueryPager.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7bab8240/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 751267e..54ed851 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.5 + * Avoid over-fetching during the page of range queries (CASSANDRA-8521) * Start L0 STCS-compactions even if there is a L0 -> L1 compaction going (CASSANDRA-10979) * Make UUID LSB unique per process (CASSANDRA-7925) http://git-wip-us.apache.org/repos/asf/cassandra/blob/7bab8240/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java -- diff --git a/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java b/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java index fd14c82..10e470b 100644 --- a/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java +++ b/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java @@ -72,7 +72,8 @@ public class RangeSliceQueryPager extends AbstractQueryPager protected List queryNextPage(int pageSize, ConsistencyLevel consistencyLevel, boolean localQuery) throws RequestExecutionException { -SliceQueryFilter sf = (SliceQueryFilter)columnFilter; +SliceQueryFilter rawFilter = (SliceQueryFilter)columnFilter; +SliceQueryFilter sf = rawFilter.withUpdatedCount(Math.min(rawFilter.count, pageSize)); AbstractBounds keyRange = lastReturnedKey == null ? command.keyRange : makeIncludingKeyBounds(lastReturnedKey); Composite start = lastReturnedName == null ? sf.start() : lastReturnedName; PagedRangeCommand pageCmd = new PagedRangeCommand(command.keyspace,
[04/10] cassandra git commit: Don't query more results than necessary when paging range queries
Don't query more results than necessary when paging range queries patch by slebresne; reviewed by blerer for CASSANDRA-8521 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7bab8240 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7bab8240 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7bab8240 Branch: refs/heads/trunk Commit: 7bab8240e63753ac338890cbd31572e38234c23d Parents: 38dde32 Author: Sylvain LebresneAuthored: Tue Jan 12 16:38:38 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:32:25 2016 +0100 -- CHANGES.txt | 1 + .../org/apache/cassandra/service/pager/RangeSliceQueryPager.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7bab8240/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 751267e..54ed851 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.5 + * Avoid over-fetching during the page of range queries (CASSANDRA-8521) * Start L0 STCS-compactions even if there is a L0 -> L1 compaction going (CASSANDRA-10979) * Make UUID LSB unique per process (CASSANDRA-7925) http://git-wip-us.apache.org/repos/asf/cassandra/blob/7bab8240/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java -- diff --git a/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java b/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java index fd14c82..10e470b 100644 --- a/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java +++ b/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java @@ -72,7 +72,8 @@ public class RangeSliceQueryPager extends AbstractQueryPager protected List queryNextPage(int pageSize, ConsistencyLevel consistencyLevel, boolean localQuery) throws RequestExecutionException { -SliceQueryFilter sf = (SliceQueryFilter)columnFilter; +SliceQueryFilter rawFilter = (SliceQueryFilter)columnFilter; +SliceQueryFilter sf = rawFilter.withUpdatedCount(Math.min(rawFilter.count, pageSize)); AbstractBounds keyRange = lastReturnedKey == null ? command.keyRange : makeIncludingKeyBounds(lastReturnedKey); Composite start = lastReturnedName == null ? sf.start() : lastReturnedName; PagedRangeCommand pageCmd = new PagedRangeCommand(command.keyspace,
[07/10] cassandra git commit: Merge commit '7bab8240e63753ac338890cbd31572e38234c23d' into cassandra-3.0
Merge commit '7bab8240e63753ac338890cbd31572e38234c23d' 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/e07c7d0c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e07c7d0c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e07c7d0c Branch: refs/heads/trunk Commit: e07c7d0c179ad52dd894157f8d7a02deafe6125e Parents: 1e25d19 7bab824 Author: Sylvain LebresneAuthored: Fri Jan 22 15:32:51 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:32:51 2016 +0100 -- --
[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/5b02fa28 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5b02fa28 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5b02fa28 Branch: refs/heads/trunk Commit: 5b02fa287b3d662d1fb1190a0c579d66ac6b65e9 Parents: fd74a03 01a10f0 Author: Sylvain LebresneAuthored: Fri Jan 22 15:33:16 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:33:16 2016 +0100 -- --
[04/15] cassandra git commit: Measure max generation drift against local time instead of previously stored generation for remote host to allow long-running clusters.
Measure max generation drift against local time instead of previously stored generation for remote host to allow long-running clusters. patch by jkni; reviewed by Stefania for CASSANDRA-10969 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3c55732f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3c55732f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3c55732f Branch: refs/heads/cassandra-3.0 Commit: 3c55732fa414c7835536dc42ff489461a7441bfe Parents: 98cc2c8 Author: Joel KnightonAuthored: Thu Jan 7 09:41:47 2016 -0600 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:37:19 2016 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 10 ++- .../org/apache/cassandra/gms/GossiperTest.java | 93 3 files changed, 100 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3c55732f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 7175953..4bff88c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.13 + * Fix bad gossip generation seen in long-running clusters (CASSANDRA-10969) * Avoid NPE when incremental repair fails (CASSANDRA-10909) * Unmark sstables compacting once they are done in cleanup/scrub/upgradesstables (CASSANDRA-10829) * Revert CASSANDRA-10012 and add more logging (CASSANDRA-10961) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3c55732f/src/java/org/apache/cassandra/gms/Gossiper.java -- diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java b/src/java/org/apache/cassandra/gms/Gossiper.java index 59ef3cc..ebdd5bd 100644 --- a/src/java/org/apache/cassandra/gms/Gossiper.java +++ b/src/java/org/apache/cassandra/gms/Gossiper.java @@ -87,8 +87,8 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean public static final long aVeryLongTime = 259200 * 1000; // 3 days -/** Maximimum difference in generation and version values we are willing to accept about a peer */ -private static final long MAX_GENERATION_DIFFERENCE = 86400 * 365; +// Maximimum difference between generation value and local time we are willing to accept about a peer +static final int MAX_GENERATION_DIFFERENCE = 86400 * 365; private long FatClientTimeout; private final Random random = new Random(); private final Comparator inetcomparator = new Comparator() @@ -1107,13 +1107,15 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean { int localGeneration = localEpStatePtr.getHeartBeatState().getGeneration(); int remoteGeneration = remoteState.getHeartBeatState().getGeneration(); +long localTime = System.currentTimeMillis()/1000; if (logger.isTraceEnabled()) logger.trace(ep + "local generation " + localGeneration + ", remote generation " + remoteGeneration); -if (localGeneration != 0 && remoteGeneration > localGeneration + MAX_GENERATION_DIFFERENCE) +// We measure generation drift against local time, based on the fact that generation is initialized by time +if (remoteGeneration > localTime + MAX_GENERATION_DIFFERENCE) { // assume some peer has corrupted memory and is broadcasting an unbelievable generation about another peer (or itself) -logger.warn("received an invalid gossip generation for peer {}; local generation = {}, received generation = {}", ep, localGeneration, remoteGeneration); +logger.warn("received an invalid gossip generation for peer {}; local time = {}, received generation = {}", ep, localTime, remoteGeneration); } else if (remoteGeneration > localGeneration) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/3c55732f/test/unit/org/apache/cassandra/gms/GossiperTest.java -- diff --git a/test/unit/org/apache/cassandra/gms/GossiperTest.java b/test/unit/org/apache/cassandra/gms/GossiperTest.java new file mode 100644 index 000..ad07165 --- /dev/null +++ b/test/unit/org/apache/cassandra/gms/GossiperTest.java @@ -0,0 +1,93 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under
[02/15] cassandra git commit: Measure max generation drift against local time instead of previously stored generation for remote host to allow long-running clusters.
Measure max generation drift against local time instead of previously stored generation for remote host to allow long-running clusters. patch by jkni; reviewed by Stefania for CASSANDRA-10969 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3c55732f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3c55732f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3c55732f Branch: refs/heads/cassandra-2.2 Commit: 3c55732fa414c7835536dc42ff489461a7441bfe Parents: 98cc2c8 Author: Joel KnightonAuthored: Thu Jan 7 09:41:47 2016 -0600 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:37:19 2016 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 10 ++- .../org/apache/cassandra/gms/GossiperTest.java | 93 3 files changed, 100 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3c55732f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 7175953..4bff88c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.13 + * Fix bad gossip generation seen in long-running clusters (CASSANDRA-10969) * Avoid NPE when incremental repair fails (CASSANDRA-10909) * Unmark sstables compacting once they are done in cleanup/scrub/upgradesstables (CASSANDRA-10829) * Revert CASSANDRA-10012 and add more logging (CASSANDRA-10961) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3c55732f/src/java/org/apache/cassandra/gms/Gossiper.java -- diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java b/src/java/org/apache/cassandra/gms/Gossiper.java index 59ef3cc..ebdd5bd 100644 --- a/src/java/org/apache/cassandra/gms/Gossiper.java +++ b/src/java/org/apache/cassandra/gms/Gossiper.java @@ -87,8 +87,8 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean public static final long aVeryLongTime = 259200 * 1000; // 3 days -/** Maximimum difference in generation and version values we are willing to accept about a peer */ -private static final long MAX_GENERATION_DIFFERENCE = 86400 * 365; +// Maximimum difference between generation value and local time we are willing to accept about a peer +static final int MAX_GENERATION_DIFFERENCE = 86400 * 365; private long FatClientTimeout; private final Random random = new Random(); private final Comparator inetcomparator = new Comparator() @@ -1107,13 +1107,15 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean { int localGeneration = localEpStatePtr.getHeartBeatState().getGeneration(); int remoteGeneration = remoteState.getHeartBeatState().getGeneration(); +long localTime = System.currentTimeMillis()/1000; if (logger.isTraceEnabled()) logger.trace(ep + "local generation " + localGeneration + ", remote generation " + remoteGeneration); -if (localGeneration != 0 && remoteGeneration > localGeneration + MAX_GENERATION_DIFFERENCE) +// We measure generation drift against local time, based on the fact that generation is initialized by time +if (remoteGeneration > localTime + MAX_GENERATION_DIFFERENCE) { // assume some peer has corrupted memory and is broadcasting an unbelievable generation about another peer (or itself) -logger.warn("received an invalid gossip generation for peer {}; local generation = {}, received generation = {}", ep, localGeneration, remoteGeneration); +logger.warn("received an invalid gossip generation for peer {}; local time = {}, received generation = {}", ep, localTime, remoteGeneration); } else if (remoteGeneration > localGeneration) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/3c55732f/test/unit/org/apache/cassandra/gms/GossiperTest.java -- diff --git a/test/unit/org/apache/cassandra/gms/GossiperTest.java b/test/unit/org/apache/cassandra/gms/GossiperTest.java new file mode 100644 index 000..ad07165 --- /dev/null +++ b/test/unit/org/apache/cassandra/gms/GossiperTest.java @@ -0,0 +1,93 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under
[14/15] 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/3b014d07 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3b014d07 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3b014d07 Branch: refs/heads/trunk Commit: 3b014d077ed47a09c4027584ebd4e2795cf0f62f Parents: 01a10f0 13314aa Author: Sylvain LebresneAuthored: Fri Jan 22 15:44:50 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:44:50 2016 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 10 ++- .../org/apache/cassandra/gms/GossiperTest.java | 93 3 files changed, 100 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b014d07/CHANGES.txt -- diff --cc CHANGES.txt index a1ec744,e93a04a..afaf114 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -27,7 -35,16 +27,8 @@@ Merged from 2.2 * Optimize pending range computation (CASSANDRA-9258) * Skip commit log and saved cache directories in SSTable version startup check (CASSANDRA-10902) * drop/alter user should be case sensitive (CASSANDRA-10817) - * jemalloc detection fails due to quoting issues in regexv (CASSANDRA-10946) - * (cqlsh) show correct column names for empty result sets (CASSANDRA-9813) - * Add new types to Stress (CASSANDRA-9556) - * Add property to allow listening on broadcast interface (CASSANDRA-9748) - * Fix regression in split size on CqlInputFormat (CASSANDRA-10835) - * Better handling of SSL connection errors inter-node (CASSANDRA-10816) - * Disable reloading of GossipingPropertyFileSnitch (CASSANDRA-9474) - * Verify tables in pseudo-system keyspaces at startup (CASSANDRA-10761) Merged from 2.1: + * Fix bad gossip generation seen in long-running clusters (CASSANDRA-10969) * Avoid NPE when incremental repair fails (CASSANDRA-10909) * Unmark sstables compacting once they are done in cleanup/scrub/upgradesstables (CASSANDRA-10829) * Allow simultaneous bootstrapping with strict consistency when no vnodes are used (CASSANDRA-11005)
[08/15] cassandra git commit: Merge commit '3c55732fa414c7835536dc42ff489461a7441bfe' into cassandra-2.2
Merge commit '3c55732fa414c7835536dc42ff489461a7441bfe' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0b479a7f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0b479a7f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0b479a7f Branch: refs/heads/cassandra-3.0 Commit: 0b479a7f3e284960f5ebf8ef5110dfdf2c2db7fd Parents: 7bab824 3c55732 Author: Sylvain LebresneAuthored: Fri Jan 22 15:42:27 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:43:56 2016 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 10 ++- .../org/apache/cassandra/gms/GossiperTest.java | 93 3 files changed, 100 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b479a7f/CHANGES.txt -- diff --cc CHANGES.txt index 54ed851,4bff88c..6c01e22 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,30 -1,8 +1,31 @@@ -2.1.13 +2.2.5 + * Avoid over-fetching during the page of range queries (CASSANDRA-8521) + * Start L0 STCS-compactions even if there is a L0 -> L1 compaction + going (CASSANDRA-10979) + * Make UUID LSB unique per process (CASSANDRA-7925) + * Avoid NPE when performing sstable tasks (scrub etc.) (CASSANDRA-10980) + * Make sure client gets tombstone overwhelmed warning (CASSANDRA-9465) + * Fix error streaming section more than 2GB (CASSANDRA-10961) + * (cqlsh) Also apply --connect-timeout to control connection + timeout (CASSANDRA-10959) + * Histogram buckets exposed in jmx are sorted incorrectly (CASSANDRA-10975) + * Enable GC logging by default (CASSANDRA-10140) + * Optimize pending range computation (CASSANDRA-9258) + * Skip commit log and saved cache directories in SSTable version startup check (CASSANDRA-10902) + * drop/alter user should be case sensitive (CASSANDRA-10817) + * jemalloc detection fails due to quoting issues in regexv (CASSANDRA-10946) + * Support counter-columns for native aggregates (sum,avg,max,min) (CASSANDRA-9977) + * (cqlsh) show correct column names for empty result sets (CASSANDRA-9813) + * Add new types to Stress (CASSANDRA-9556) + * Add property to allow listening on broadcast interface (CASSANDRA-9748) + * Fix regression in split size on CqlInputFormat (CASSANDRA-10835) + * Better handling of SSL connection errors inter-node (CASSANDRA-10816) + * Disable reloading of GossipingPropertyFileSnitch (CASSANDRA-9474) + * Verify tables in pseudo-system keyspaces at startup (CASSANDRA-10761) +Merged from 2.1: + * Fix bad gossip generation seen in long-running clusters (CASSANDRA-10969) * Avoid NPE when incremental repair fails (CASSANDRA-10909) * Unmark sstables compacting once they are done in cleanup/scrub/upgradesstables (CASSANDRA-10829) - * Revert CASSANDRA-10012 and add more logging (CASSANDRA-10961) * Allow simultaneous bootstrapping with strict consistency when no vnodes are used (CASSANDRA-11005) * Log a message when major compaction does not result in a single file (CASSANDRA-10847) * (cqlsh) fix cqlsh_copy_tests when vnodes are disabled (CASSANDRA-10997) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b479a7f/src/java/org/apache/cassandra/gms/Gossiper.java -- diff --cc src/java/org/apache/cassandra/gms/Gossiper.java index 6a91750,ebdd5bd..58d9c3c --- a/src/java/org/apache/cassandra/gms/Gossiper.java +++ b/src/java/org/apache/cassandra/gms/Gossiper.java @@@ -87,9 -87,9 +87,9 @@@ public class Gossiper implements IFailu public static final long aVeryLongTime = 259200 * 1000; // 3 days - /** Maximum difference in generation and version values we are willing to accept about a peer */ - private static final long MAX_GENERATION_DIFFERENCE = 86400 * 365; + // Maximimum difference between generation value and local time we are willing to accept about a peer + static final int MAX_GENERATION_DIFFERENCE = 86400 * 365; -private long FatClientTimeout; +private long fatClientTimeout; private final Random random = new Random(); private final Comparator inetcomparator = new Comparator() { @@@ -1101,13 -1107,15 +1101,15 @@@ { int localGeneration = localEpStatePtr.getHeartBeatState().getGeneration(); int remoteGeneration = remoteState.getHeartBeatState().getGeneration(); + long localTime = System.currentTimeMillis()/1000; if (logger.isTraceEnabled()) -logger.trace(ep + "local generation " + localGeneration + ", remote generation " +
[10/15] 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/13314aa2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/13314aa2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/13314aa2 Branch: refs/heads/trunk Commit: 13314aa2eb926ecba56221ad77b037fcc4d0bfe1 Parents: e07c7d0 0b479a7 Author: Sylvain LebresneAuthored: Fri Jan 22 15:44:16 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:44:16 2016 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 10 ++- .../org/apache/cassandra/gms/GossiperTest.java | 93 3 files changed, 100 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/13314aa2/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/13314aa2/src/java/org/apache/cassandra/gms/Gossiper.java --
[06/15] cassandra git commit: Merge commit '3c55732fa414c7835536dc42ff489461a7441bfe' into cassandra-2.2
Merge commit '3c55732fa414c7835536dc42ff489461a7441bfe' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0b479a7f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0b479a7f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0b479a7f Branch: refs/heads/trunk Commit: 0b479a7f3e284960f5ebf8ef5110dfdf2c2db7fd Parents: 7bab824 3c55732 Author: Sylvain LebresneAuthored: Fri Jan 22 15:42:27 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:43:56 2016 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 10 ++- .../org/apache/cassandra/gms/GossiperTest.java | 93 3 files changed, 100 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b479a7f/CHANGES.txt -- diff --cc CHANGES.txt index 54ed851,4bff88c..6c01e22 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,30 -1,8 +1,31 @@@ -2.1.13 +2.2.5 + * Avoid over-fetching during the page of range queries (CASSANDRA-8521) + * Start L0 STCS-compactions even if there is a L0 -> L1 compaction + going (CASSANDRA-10979) + * Make UUID LSB unique per process (CASSANDRA-7925) + * Avoid NPE when performing sstable tasks (scrub etc.) (CASSANDRA-10980) + * Make sure client gets tombstone overwhelmed warning (CASSANDRA-9465) + * Fix error streaming section more than 2GB (CASSANDRA-10961) + * (cqlsh) Also apply --connect-timeout to control connection + timeout (CASSANDRA-10959) + * Histogram buckets exposed in jmx are sorted incorrectly (CASSANDRA-10975) + * Enable GC logging by default (CASSANDRA-10140) + * Optimize pending range computation (CASSANDRA-9258) + * Skip commit log and saved cache directories in SSTable version startup check (CASSANDRA-10902) + * drop/alter user should be case sensitive (CASSANDRA-10817) + * jemalloc detection fails due to quoting issues in regexv (CASSANDRA-10946) + * Support counter-columns for native aggregates (sum,avg,max,min) (CASSANDRA-9977) + * (cqlsh) show correct column names for empty result sets (CASSANDRA-9813) + * Add new types to Stress (CASSANDRA-9556) + * Add property to allow listening on broadcast interface (CASSANDRA-9748) + * Fix regression in split size on CqlInputFormat (CASSANDRA-10835) + * Better handling of SSL connection errors inter-node (CASSANDRA-10816) + * Disable reloading of GossipingPropertyFileSnitch (CASSANDRA-9474) + * Verify tables in pseudo-system keyspaces at startup (CASSANDRA-10761) +Merged from 2.1: + * Fix bad gossip generation seen in long-running clusters (CASSANDRA-10969) * Avoid NPE when incremental repair fails (CASSANDRA-10909) * Unmark sstables compacting once they are done in cleanup/scrub/upgradesstables (CASSANDRA-10829) - * Revert CASSANDRA-10012 and add more logging (CASSANDRA-10961) * Allow simultaneous bootstrapping with strict consistency when no vnodes are used (CASSANDRA-11005) * Log a message when major compaction does not result in a single file (CASSANDRA-10847) * (cqlsh) fix cqlsh_copy_tests when vnodes are disabled (CASSANDRA-10997) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b479a7f/src/java/org/apache/cassandra/gms/Gossiper.java -- diff --cc src/java/org/apache/cassandra/gms/Gossiper.java index 6a91750,ebdd5bd..58d9c3c --- a/src/java/org/apache/cassandra/gms/Gossiper.java +++ b/src/java/org/apache/cassandra/gms/Gossiper.java @@@ -87,9 -87,9 +87,9 @@@ public class Gossiper implements IFailu public static final long aVeryLongTime = 259200 * 1000; // 3 days - /** Maximum difference in generation and version values we are willing to accept about a peer */ - private static final long MAX_GENERATION_DIFFERENCE = 86400 * 365; + // Maximimum difference between generation value and local time we are willing to accept about a peer + static final int MAX_GENERATION_DIFFERENCE = 86400 * 365; -private long FatClientTimeout; +private long fatClientTimeout; private final Random random = new Random(); private final Comparator inetcomparator = new Comparator() { @@@ -1101,13 -1107,15 +1101,15 @@@ { int localGeneration = localEpStatePtr.getHeartBeatState().getGeneration(); int remoteGeneration = remoteState.getHeartBeatState().getGeneration(); + long localTime = System.currentTimeMillis()/1000; if (logger.isTraceEnabled()) -logger.trace(ep + "local generation " + localGeneration + ", remote generation " +
[03/15] cassandra git commit: Measure max generation drift against local time instead of previously stored generation for remote host to allow long-running clusters.
Measure max generation drift against local time instead of previously stored generation for remote host to allow long-running clusters. patch by jkni; reviewed by Stefania for CASSANDRA-10969 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3c55732f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3c55732f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3c55732f Branch: refs/heads/trunk Commit: 3c55732fa414c7835536dc42ff489461a7441bfe Parents: 98cc2c8 Author: Joel KnightonAuthored: Thu Jan 7 09:41:47 2016 -0600 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:37:19 2016 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 10 ++- .../org/apache/cassandra/gms/GossiperTest.java | 93 3 files changed, 100 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3c55732f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 7175953..4bff88c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.13 + * Fix bad gossip generation seen in long-running clusters (CASSANDRA-10969) * Avoid NPE when incremental repair fails (CASSANDRA-10909) * Unmark sstables compacting once they are done in cleanup/scrub/upgradesstables (CASSANDRA-10829) * Revert CASSANDRA-10012 and add more logging (CASSANDRA-10961) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3c55732f/src/java/org/apache/cassandra/gms/Gossiper.java -- diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java b/src/java/org/apache/cassandra/gms/Gossiper.java index 59ef3cc..ebdd5bd 100644 --- a/src/java/org/apache/cassandra/gms/Gossiper.java +++ b/src/java/org/apache/cassandra/gms/Gossiper.java @@ -87,8 +87,8 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean public static final long aVeryLongTime = 259200 * 1000; // 3 days -/** Maximimum difference in generation and version values we are willing to accept about a peer */ -private static final long MAX_GENERATION_DIFFERENCE = 86400 * 365; +// Maximimum difference between generation value and local time we are willing to accept about a peer +static final int MAX_GENERATION_DIFFERENCE = 86400 * 365; private long FatClientTimeout; private final Random random = new Random(); private final Comparator inetcomparator = new Comparator() @@ -1107,13 +1107,15 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean { int localGeneration = localEpStatePtr.getHeartBeatState().getGeneration(); int remoteGeneration = remoteState.getHeartBeatState().getGeneration(); +long localTime = System.currentTimeMillis()/1000; if (logger.isTraceEnabled()) logger.trace(ep + "local generation " + localGeneration + ", remote generation " + remoteGeneration); -if (localGeneration != 0 && remoteGeneration > localGeneration + MAX_GENERATION_DIFFERENCE) +// We measure generation drift against local time, based on the fact that generation is initialized by time +if (remoteGeneration > localTime + MAX_GENERATION_DIFFERENCE) { // assume some peer has corrupted memory and is broadcasting an unbelievable generation about another peer (or itself) -logger.warn("received an invalid gossip generation for peer {}; local generation = {}, received generation = {}", ep, localGeneration, remoteGeneration); +logger.warn("received an invalid gossip generation for peer {}; local time = {}, received generation = {}", ep, localTime, remoteGeneration); } else if (remoteGeneration > localGeneration) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/3c55732f/test/unit/org/apache/cassandra/gms/GossiperTest.java -- diff --git a/test/unit/org/apache/cassandra/gms/GossiperTest.java b/test/unit/org/apache/cassandra/gms/GossiperTest.java new file mode 100644 index 000..ad07165 --- /dev/null +++ b/test/unit/org/apache/cassandra/gms/GossiperTest.java @@ -0,0 +1,93 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the
[05/15] cassandra git commit: Measure max generation drift against local time instead of previously stored generation for remote host to allow long-running clusters.
Measure max generation drift against local time instead of previously stored generation for remote host to allow long-running clusters. patch by jkni; reviewed by Stefania for CASSANDRA-10969 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3c55732f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3c55732f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3c55732f Branch: refs/heads/cassandra-3.3 Commit: 3c55732fa414c7835536dc42ff489461a7441bfe Parents: 98cc2c8 Author: Joel KnightonAuthored: Thu Jan 7 09:41:47 2016 -0600 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:37:19 2016 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 10 ++- .../org/apache/cassandra/gms/GossiperTest.java | 93 3 files changed, 100 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3c55732f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 7175953..4bff88c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.13 + * Fix bad gossip generation seen in long-running clusters (CASSANDRA-10969) * Avoid NPE when incremental repair fails (CASSANDRA-10909) * Unmark sstables compacting once they are done in cleanup/scrub/upgradesstables (CASSANDRA-10829) * Revert CASSANDRA-10012 and add more logging (CASSANDRA-10961) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3c55732f/src/java/org/apache/cassandra/gms/Gossiper.java -- diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java b/src/java/org/apache/cassandra/gms/Gossiper.java index 59ef3cc..ebdd5bd 100644 --- a/src/java/org/apache/cassandra/gms/Gossiper.java +++ b/src/java/org/apache/cassandra/gms/Gossiper.java @@ -87,8 +87,8 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean public static final long aVeryLongTime = 259200 * 1000; // 3 days -/** Maximimum difference in generation and version values we are willing to accept about a peer */ -private static final long MAX_GENERATION_DIFFERENCE = 86400 * 365; +// Maximimum difference between generation value and local time we are willing to accept about a peer +static final int MAX_GENERATION_DIFFERENCE = 86400 * 365; private long FatClientTimeout; private final Random random = new Random(); private final Comparator inetcomparator = new Comparator() @@ -1107,13 +1107,15 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean { int localGeneration = localEpStatePtr.getHeartBeatState().getGeneration(); int remoteGeneration = remoteState.getHeartBeatState().getGeneration(); +long localTime = System.currentTimeMillis()/1000; if (logger.isTraceEnabled()) logger.trace(ep + "local generation " + localGeneration + ", remote generation " + remoteGeneration); -if (localGeneration != 0 && remoteGeneration > localGeneration + MAX_GENERATION_DIFFERENCE) +// We measure generation drift against local time, based on the fact that generation is initialized by time +if (remoteGeneration > localTime + MAX_GENERATION_DIFFERENCE) { // assume some peer has corrupted memory and is broadcasting an unbelievable generation about another peer (or itself) -logger.warn("received an invalid gossip generation for peer {}; local generation = {}, received generation = {}", ep, localGeneration, remoteGeneration); +logger.warn("received an invalid gossip generation for peer {}; local time = {}, received generation = {}", ep, localTime, remoteGeneration); } else if (remoteGeneration > localGeneration) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/3c55732f/test/unit/org/apache/cassandra/gms/GossiperTest.java -- diff --git a/test/unit/org/apache/cassandra/gms/GossiperTest.java b/test/unit/org/apache/cassandra/gms/GossiperTest.java new file mode 100644 index 000..ad07165 --- /dev/null +++ b/test/unit/org/apache/cassandra/gms/GossiperTest.java @@ -0,0 +1,93 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under
[13/15] 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/3b014d07 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3b014d07 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3b014d07 Branch: refs/heads/cassandra-3.3 Commit: 3b014d077ed47a09c4027584ebd4e2795cf0f62f Parents: 01a10f0 13314aa Author: Sylvain LebresneAuthored: Fri Jan 22 15:44:50 2016 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 22 15:44:50 2016 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 10 ++- .../org/apache/cassandra/gms/GossiperTest.java | 93 3 files changed, 100 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b014d07/CHANGES.txt -- diff --cc CHANGES.txt index a1ec744,e93a04a..afaf114 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -27,7 -35,16 +27,8 @@@ Merged from 2.2 * Optimize pending range computation (CASSANDRA-9258) * Skip commit log and saved cache directories in SSTable version startup check (CASSANDRA-10902) * drop/alter user should be case sensitive (CASSANDRA-10817) - * jemalloc detection fails due to quoting issues in regexv (CASSANDRA-10946) - * (cqlsh) show correct column names for empty result sets (CASSANDRA-9813) - * Add new types to Stress (CASSANDRA-9556) - * Add property to allow listening on broadcast interface (CASSANDRA-9748) - * Fix regression in split size on CqlInputFormat (CASSANDRA-10835) - * Better handling of SSL connection errors inter-node (CASSANDRA-10816) - * Disable reloading of GossipingPropertyFileSnitch (CASSANDRA-9474) - * Verify tables in pseudo-system keyspaces at startup (CASSANDRA-10761) Merged from 2.1: + * Fix bad gossip generation seen in long-running clusters (CASSANDRA-10969) * Avoid NPE when incremental repair fails (CASSANDRA-10909) * Unmark sstables compacting once they are done in cleanup/scrub/upgradesstables (CASSANDRA-10829) * Allow simultaneous bootstrapping with strict consistency when no vnodes are used (CASSANDRA-11005)