[3/3] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Conflicts: NEWS.txt src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java test/unit/org/apache/cassandra/db/compaction/CompactionsCQLTest.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2dfcb221 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2dfcb221 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2dfcb221 Branch: refs/heads/cassandra-3.0 Commit: 2dfcb221c6db589c1e91aa122fd727f417098568 Parents: 929438b 2dd8101 Author: Marcus Eriksson marc...@apache.org Authored: Mon Aug 10 09:33:54 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Aug 10 09:33:54 2015 +0200 -- NEWS.txt| 4 +++- src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 12 ++-- .../org/apache/cassandra/db/ColumnFamilyStoreMBean.java | 12 ++-- .../cassandra/db/compaction/CompactionsCQLTest.java | 11 +-- 4 files changed, 20 insertions(+), 19 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2dfcb221/NEWS.txt -- diff --cc NEWS.txt index 5a690bd,d0a6d9d..4a59553 --- a/NEWS.txt +++ b/NEWS.txt @@@ -13,56 -13,6 +13,56 @@@ restore snapshots created with the prev 'sstableloader' tool. You can upgrade the file format of your snapshots using the provided 'sstableupgrade' tool. +3.0 +=== + +New features + + - Materialized Views, which allow for server-side denormalization, is now + available. Materialized views provide an alternative to secondary indexes + for non-primary key queries, and perform much better for indexing high + cardinality columns. + See http://www.datastax.com/dev/blog/new-in-cassandra-3-0-materialized-views + + +Upgrading +- + - 3.0 requires Java 8u20 or later. + - The default JVM GC has been changed to G1GC. + - The default JVM flag -XX:+PerfDisableSharedMem will cause the following tools JVM + to stop working: jps, jstack, jinfo, jmc, jcmd as well as 3rd party tools like Jolokia. + If you wish to use these tools you can comment this flag out in cassandra-env.{sh,ps1} + - New write stages have been added for batchlog and materialized view mutations + you can set their size in cassandra.yaml + - User defined functions are now executed in a sandbox. + To use UDFs and UDAs, you have to enable them in cassandra.yaml. + - New SSTable version 'la' with improved bloom-filter false-positive handling + compared to previous version 'ka' used in 2.2 and 2.1. Running sstableupgrade + is not necessary but recommended. + - Before upgrading to 3.0, make sure that your cluster is in complete agreement + (schema versions outputted by `nodetool describecluster` are all the same). + - Schema metadata is now stored in the new `system_schema` keyspace, and + legacy `system.schema_*` tables are now gone; see CASSANDRA-6717 for details. + - Pig's CassandraStorage has been removed. Use CqlNativeStorage instead. + - Hadoop BulkOutputFormat and BulkRecordWriter have been removed; use + CqlBulkOutputFormat and CqlBulkRecordWriter instead. + - Hadoop ColumnFamilyInputFormat and ColumnFamilyOutputFormat have been removed; + use CqlInputFormat and CqlOutputFormat instead. + - Hadoop ColumnFamilyRecordReader and ColumnFamilyRecordWriter have been removed; + use CqlRecordReader and CqlRecordWriter instead. + - hinted_handoff_enabled in cassandra.yaml no longer supports a list of data centers. + To specify a list of excluded data centers when hinted_handoff_enabled is set to true, + use hinted_handoff_disabled_datacenters, see CASSANDRA-9035 for details. + - The `sstable_compression` and `chunk_length_kb` compression options have been deprecated. + The new options are `class` and `chunk_length_in_kb`. Disabling compression should now + be done by setting the new option `enabled` to `false`. + - Only map syntax is now allowed for caching options. ALL/NONE/KEYS_ONLY/ROWS_ONLY syntax + has been deprecated since 2.1.0 and is being removed in 3.0.0. + - Batchlog entries are now stored in a new table - system.batches. + The old one has been deprecated. + - JMX methods set/getCompactionStrategyClass have been removed, use - set/getLocalCompactionStrategy or set/getLocalCompactionStrategyJson instead. ++ set/getCompactionParameters or set/getCompactionParametersJson instead. + 2.2 === @@@ -161,8 -111,9 +161,10 @@@ Upgradin - Commit log files are no longer recycled by default, due to negative performance implications.
[1/4] cassandra git commit: Fixup missed nit from CASSANDRA-9965
Repository: cassandra Updated Branches: refs/heads/trunk a1f331f17 - f03783bef Fixup missed nit from CASSANDRA-9965 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/76e8eb85 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/76e8eb85 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/76e8eb85 Branch: refs/heads/trunk Commit: 76e8eb853f4534703f5a0b6754b514e62915d65a Parents: 5aca7d7 Author: Marcus Eriksson marc...@apache.org Authored: Mon Aug 10 09:25:41 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Aug 10 09:25:41 2015 +0200 -- NEWS.txt| 2 +- src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 12 ++-- .../org/apache/cassandra/db/ColumnFamilyStoreMBean.java | 12 ++-- .../cassandra/db/compaction/CompactionsCQLTest.java | 10 +- 4 files changed, 18 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/76e8eb85/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index f6e2665..297bf40 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -25,7 +25,7 @@ Upgrading performance implications. This can be enabled again with the commitlog_segment_recycling option in your cassandra.yaml - JMX methods set/getCompactionStrategyClass have been deprecated, use - set/getLocalCompactionStrategy/set/getLocalCompactionStrategyJson instead + set/getCompactionParameters/set/getCompactionParametersJson instead 2.1.8 = http://git-wip-us.apache.org/repos/asf/cassandra/blob/76e8eb85/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 f8d796e..7364528 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -252,17 +252,17 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean }; } -public void setLocalCompactionStrategyJson(String options) +public void setCompactionParametersJson(String options) { -setLocalCompactionStrategy(FBUtilities.fromJsonMap(options)); +setCompactionParameters(FBUtilities.fromJsonMap(options)); } -public String getLocalCompactionStrategyJson() +public String getCompactionParametersJson() { -return FBUtilities.json(getLocalCompactionStrategy()); +return FBUtilities.json(getCompactionParameters()); } -public void setLocalCompactionStrategy(MapString, String options) +public void setCompactionParameters(MapString, String options) { try { @@ -280,7 +280,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean } } -public MapString, String getLocalCompactionStrategy() +public MapString, String getCompactionParameters() { MapString, String options = new HashMap(compactionStrategyWrapper.options); options.put(class, compactionStrategyWrapper.getName()); http://git-wip-us.apache.org/repos/asf/cassandra/blob/76e8eb85/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java -- diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java b/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java index e292be4..b2ab1e1 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java @@ -311,24 +311,24 @@ public interface ColumnFamilyStoreMBean public void setMaximumCompactionThreshold(int threshold); /** - * Sets the compaction strategy locally for this node + * Sets the compaction parameters locally for this node * * Note that this will be set until an ALTER with compaction = {..} is executed or the node is restarted * * @param options compaction options with the same syntax as when doing ALTER ... WITH compaction = {..} */ -public void setLocalCompactionStrategyJson(String options); -public String getLocalCompactionStrategyJson(); +public void setCompactionParametersJson(String options); +public String getCompactionParametersJson(); /** - * Sets the compaction strategy locally for this node + * Sets the compaction parameters locally for this node * * Note that this will be set until an ALTER with compaction = {..} is executed or the node is restarted * * @param options compaction options map */ -
cassandra git commit: Fixup missed nit from CASSANDRA-9965
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 5aca7d79a - 76e8eb853 Fixup missed nit from CASSANDRA-9965 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/76e8eb85 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/76e8eb85 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/76e8eb85 Branch: refs/heads/cassandra-2.1 Commit: 76e8eb853f4534703f5a0b6754b514e62915d65a Parents: 5aca7d7 Author: Marcus Eriksson marc...@apache.org Authored: Mon Aug 10 09:25:41 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Aug 10 09:25:41 2015 +0200 -- NEWS.txt| 2 +- src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 12 ++-- .../org/apache/cassandra/db/ColumnFamilyStoreMBean.java | 12 ++-- .../cassandra/db/compaction/CompactionsCQLTest.java | 10 +- 4 files changed, 18 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/76e8eb85/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index f6e2665..297bf40 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -25,7 +25,7 @@ Upgrading performance implications. This can be enabled again with the commitlog_segment_recycling option in your cassandra.yaml - JMX methods set/getCompactionStrategyClass have been deprecated, use - set/getLocalCompactionStrategy/set/getLocalCompactionStrategyJson instead + set/getCompactionParameters/set/getCompactionParametersJson instead 2.1.8 = http://git-wip-us.apache.org/repos/asf/cassandra/blob/76e8eb85/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 f8d796e..7364528 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -252,17 +252,17 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean }; } -public void setLocalCompactionStrategyJson(String options) +public void setCompactionParametersJson(String options) { -setLocalCompactionStrategy(FBUtilities.fromJsonMap(options)); +setCompactionParameters(FBUtilities.fromJsonMap(options)); } -public String getLocalCompactionStrategyJson() +public String getCompactionParametersJson() { -return FBUtilities.json(getLocalCompactionStrategy()); +return FBUtilities.json(getCompactionParameters()); } -public void setLocalCompactionStrategy(MapString, String options) +public void setCompactionParameters(MapString, String options) { try { @@ -280,7 +280,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean } } -public MapString, String getLocalCompactionStrategy() +public MapString, String getCompactionParameters() { MapString, String options = new HashMap(compactionStrategyWrapper.options); options.put(class, compactionStrategyWrapper.getName()); http://git-wip-us.apache.org/repos/asf/cassandra/blob/76e8eb85/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java -- diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java b/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java index e292be4..b2ab1e1 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java @@ -311,24 +311,24 @@ public interface ColumnFamilyStoreMBean public void setMaximumCompactionThreshold(int threshold); /** - * Sets the compaction strategy locally for this node + * Sets the compaction parameters locally for this node * * Note that this will be set until an ALTER with compaction = {..} is executed or the node is restarted * * @param options compaction options with the same syntax as when doing ALTER ... WITH compaction = {..} */ -public void setLocalCompactionStrategyJson(String options); -public String getLocalCompactionStrategyJson(); +public void setCompactionParametersJson(String options); +public String getCompactionParametersJson(); /** - * Sets the compaction strategy locally for this node + * Sets the compaction parameters locally for this node * * Note that this will be set until an ALTER with compaction = {..} is executed or the node is restarted * * @param options compaction options map
[2/2] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' 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/2dd8101a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2dd8101a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2dd8101a Branch: refs/heads/cassandra-2.2 Commit: 2dd8101ae0b6c51600f00929c2f15beea94463b7 Parents: 9c3b967 76e8eb8 Author: Marcus Eriksson marc...@apache.org Authored: Mon Aug 10 09:27:22 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Aug 10 09:27:22 2015 +0200 -- NEWS.txt| 2 +- src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 12 ++-- .../org/apache/cassandra/db/ColumnFamilyStoreMBean.java | 12 ++-- .../cassandra/db/compaction/CompactionsCQLTest.java | 10 +- 4 files changed, 18 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2dd8101a/NEWS.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2dd8101a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2dd8101a/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java --
[4/4] cassandra git commit: Merge branch 'cassandra-3.0' into trunk
Merge branch 'cassandra-3.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f03783be Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f03783be Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f03783be Branch: refs/heads/trunk Commit: f03783befa730ccb14ce6649788ae7e78992111c Parents: a1f331f 2dfcb22 Author: Marcus Eriksson marc...@apache.org Authored: Mon Aug 10 09:34:02 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Aug 10 09:34:02 2015 +0200 -- NEWS.txt| 4 +++- src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 12 ++-- .../org/apache/cassandra/db/ColumnFamilyStoreMBean.java | 12 ++-- .../cassandra/db/compaction/CompactionsCQLTest.java | 11 +-- 4 files changed, 20 insertions(+), 19 deletions(-) --
[2/4] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' 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/2dd8101a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2dd8101a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2dd8101a Branch: refs/heads/trunk Commit: 2dd8101ae0b6c51600f00929c2f15beea94463b7 Parents: 9c3b967 76e8eb8 Author: Marcus Eriksson marc...@apache.org Authored: Mon Aug 10 09:27:22 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Aug 10 09:27:22 2015 +0200 -- NEWS.txt| 2 +- src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 12 ++-- .../org/apache/cassandra/db/ColumnFamilyStoreMBean.java | 12 ++-- .../cassandra/db/compaction/CompactionsCQLTest.java | 10 +- 4 files changed, 18 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2dd8101a/NEWS.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2dd8101a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2dd8101a/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java --
[1/2] cassandra git commit: Fixup missed nit from CASSANDRA-9965
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 9c3b967e7 - 2dd8101ae Fixup missed nit from CASSANDRA-9965 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/76e8eb85 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/76e8eb85 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/76e8eb85 Branch: refs/heads/cassandra-2.2 Commit: 76e8eb853f4534703f5a0b6754b514e62915d65a Parents: 5aca7d7 Author: Marcus Eriksson marc...@apache.org Authored: Mon Aug 10 09:25:41 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Aug 10 09:25:41 2015 +0200 -- NEWS.txt| 2 +- src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 12 ++-- .../org/apache/cassandra/db/ColumnFamilyStoreMBean.java | 12 ++-- .../cassandra/db/compaction/CompactionsCQLTest.java | 10 +- 4 files changed, 18 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/76e8eb85/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index f6e2665..297bf40 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -25,7 +25,7 @@ Upgrading performance implications. This can be enabled again with the commitlog_segment_recycling option in your cassandra.yaml - JMX methods set/getCompactionStrategyClass have been deprecated, use - set/getLocalCompactionStrategy/set/getLocalCompactionStrategyJson instead + set/getCompactionParameters/set/getCompactionParametersJson instead 2.1.8 = http://git-wip-us.apache.org/repos/asf/cassandra/blob/76e8eb85/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 f8d796e..7364528 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -252,17 +252,17 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean }; } -public void setLocalCompactionStrategyJson(String options) +public void setCompactionParametersJson(String options) { -setLocalCompactionStrategy(FBUtilities.fromJsonMap(options)); +setCompactionParameters(FBUtilities.fromJsonMap(options)); } -public String getLocalCompactionStrategyJson() +public String getCompactionParametersJson() { -return FBUtilities.json(getLocalCompactionStrategy()); +return FBUtilities.json(getCompactionParameters()); } -public void setLocalCompactionStrategy(MapString, String options) +public void setCompactionParameters(MapString, String options) { try { @@ -280,7 +280,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean } } -public MapString, String getLocalCompactionStrategy() +public MapString, String getCompactionParameters() { MapString, String options = new HashMap(compactionStrategyWrapper.options); options.put(class, compactionStrategyWrapper.getName()); http://git-wip-us.apache.org/repos/asf/cassandra/blob/76e8eb85/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java -- diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java b/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java index e292be4..b2ab1e1 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java @@ -311,24 +311,24 @@ public interface ColumnFamilyStoreMBean public void setMaximumCompactionThreshold(int threshold); /** - * Sets the compaction strategy locally for this node + * Sets the compaction parameters locally for this node * * Note that this will be set until an ALTER with compaction = {..} is executed or the node is restarted * * @param options compaction options with the same syntax as when doing ALTER ... WITH compaction = {..} */ -public void setLocalCompactionStrategyJson(String options); -public String getLocalCompactionStrategyJson(); +public void setCompactionParametersJson(String options); +public String getCompactionParametersJson(); /** - * Sets the compaction strategy locally for this node + * Sets the compaction parameters locally for this node * * Note that this will be set until an ALTER with compaction = {..} is executed or the node is restarted * * @param options compaction options map
[1/3] cassandra git commit: Document removal of cold_reads_to_omit (CASSANDRA-9997)
Repository: cassandra Updated Branches: refs/heads/trunk f03783bef - 41c83e420 Document removal of cold_reads_to_omit (CASSANDRA-9997) Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4f14c854 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4f14c854 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4f14c854 Branch: refs/heads/trunk Commit: 4f14c85471a6ee443429dd3da06d9cc8f56feeca Parents: 2dd8101 Author: Marcus Eriksson marc...@apache.org Authored: Mon Aug 10 13:49:05 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Aug 10 13:49:05 2015 +0200 -- NEWS.txt | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4f14c854/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index d0a6d9d..37a1b9e 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -99,6 +99,7 @@ New features to convert from timestamp into date type and bigint raw value. - The toTimestamp(date) and toUnixTimestamp(date) functions have been added to allow to convert from date into timestamp type and bigint raw value. + - SizeTieredCompactionStrategy parameter cold_reads_to_omit has been removed. 2.1.9
[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/6e1e3369 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6e1e3369 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6e1e3369 Branch: refs/heads/trunk Commit: 6e1e336963fb801abb4ef694bc42cb88d19f91f3 Parents: 2dfcb22 4f14c85 Author: Marcus Eriksson marc...@apache.org Authored: Mon Aug 10 13:49:18 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Aug 10 13:50:40 2015 +0200 -- NEWS.txt | 2 ++ 1 file changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6e1e3369/NEWS.txt -- diff --cc NEWS.txt index 4a59553,37a1b9e..65df769 --- a/NEWS.txt +++ b/NEWS.txt @@@ -13,56 -13,6 +13,57 @@@ restore snapshots created with the prev 'sstableloader' tool. You can upgrade the file format of your snapshots using the provided 'sstableupgrade' tool. +3.0 +=== + +New features + + - Materialized Views, which allow for server-side denormalization, is now + available. Materialized views provide an alternative to secondary indexes + for non-primary key queries, and perform much better for indexing high + cardinality columns. + See http://www.datastax.com/dev/blog/new-in-cassandra-3-0-materialized-views + + +Upgrading +- + - 3.0 requires Java 8u20 or later. + - The default JVM GC has been changed to G1GC. + - The default JVM flag -XX:+PerfDisableSharedMem will cause the following tools JVM + to stop working: jps, jstack, jinfo, jmc, jcmd as well as 3rd party tools like Jolokia. + If you wish to use these tools you can comment this flag out in cassandra-env.{sh,ps1} + - New write stages have been added for batchlog and materialized view mutations + you can set their size in cassandra.yaml + - User defined functions are now executed in a sandbox. + To use UDFs and UDAs, you have to enable them in cassandra.yaml. + - New SSTable version 'la' with improved bloom-filter false-positive handling + compared to previous version 'ka' used in 2.2 and 2.1. Running sstableupgrade + is not necessary but recommended. + - Before upgrading to 3.0, make sure that your cluster is in complete agreement + (schema versions outputted by `nodetool describecluster` are all the same). + - Schema metadata is now stored in the new `system_schema` keyspace, and + legacy `system.schema_*` tables are now gone; see CASSANDRA-6717 for details. + - Pig's CassandraStorage has been removed. Use CqlNativeStorage instead. + - Hadoop BulkOutputFormat and BulkRecordWriter have been removed; use + CqlBulkOutputFormat and CqlBulkRecordWriter instead. + - Hadoop ColumnFamilyInputFormat and ColumnFamilyOutputFormat have been removed; + use CqlInputFormat and CqlOutputFormat instead. + - Hadoop ColumnFamilyRecordReader and ColumnFamilyRecordWriter have been removed; + use CqlRecordReader and CqlRecordWriter instead. + - hinted_handoff_enabled in cassandra.yaml no longer supports a list of data centers. + To specify a list of excluded data centers when hinted_handoff_enabled is set to true, + use hinted_handoff_disabled_datacenters, see CASSANDRA-9035 for details. + - The `sstable_compression` and `chunk_length_kb` compression options have been deprecated. + The new options are `class` and `chunk_length_in_kb`. Disabling compression should now + be done by setting the new option `enabled` to `false`. + - Only map syntax is now allowed for caching options. ALL/NONE/KEYS_ONLY/ROWS_ONLY syntax + has been deprecated since 2.1.0 and is being removed in 3.0.0. + - Batchlog entries are now stored in a new table - system.batches. + The old one has been deprecated. + - JMX methods set/getCompactionStrategyClass have been removed, use + set/getCompactionParameters or set/getCompactionParametersJson instead. ++ - SizeTieredCompactionStrategy parameter cold_reads_to_omit has been removed. + 2.2 ===
[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/6e1e3369 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6e1e3369 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6e1e3369 Branch: refs/heads/cassandra-3.0 Commit: 6e1e336963fb801abb4ef694bc42cb88d19f91f3 Parents: 2dfcb22 4f14c85 Author: Marcus Eriksson marc...@apache.org Authored: Mon Aug 10 13:49:18 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Aug 10 13:50:40 2015 +0200 -- NEWS.txt | 2 ++ 1 file changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6e1e3369/NEWS.txt -- diff --cc NEWS.txt index 4a59553,37a1b9e..65df769 --- a/NEWS.txt +++ b/NEWS.txt @@@ -13,56 -13,6 +13,57 @@@ restore snapshots created with the prev 'sstableloader' tool. You can upgrade the file format of your snapshots using the provided 'sstableupgrade' tool. +3.0 +=== + +New features + + - Materialized Views, which allow for server-side denormalization, is now + available. Materialized views provide an alternative to secondary indexes + for non-primary key queries, and perform much better for indexing high + cardinality columns. + See http://www.datastax.com/dev/blog/new-in-cassandra-3-0-materialized-views + + +Upgrading +- + - 3.0 requires Java 8u20 or later. + - The default JVM GC has been changed to G1GC. + - The default JVM flag -XX:+PerfDisableSharedMem will cause the following tools JVM + to stop working: jps, jstack, jinfo, jmc, jcmd as well as 3rd party tools like Jolokia. + If you wish to use these tools you can comment this flag out in cassandra-env.{sh,ps1} + - New write stages have been added for batchlog and materialized view mutations + you can set their size in cassandra.yaml + - User defined functions are now executed in a sandbox. + To use UDFs and UDAs, you have to enable them in cassandra.yaml. + - New SSTable version 'la' with improved bloom-filter false-positive handling + compared to previous version 'ka' used in 2.2 and 2.1. Running sstableupgrade + is not necessary but recommended. + - Before upgrading to 3.0, make sure that your cluster is in complete agreement + (schema versions outputted by `nodetool describecluster` are all the same). + - Schema metadata is now stored in the new `system_schema` keyspace, and + legacy `system.schema_*` tables are now gone; see CASSANDRA-6717 for details. + - Pig's CassandraStorage has been removed. Use CqlNativeStorage instead. + - Hadoop BulkOutputFormat and BulkRecordWriter have been removed; use + CqlBulkOutputFormat and CqlBulkRecordWriter instead. + - Hadoop ColumnFamilyInputFormat and ColumnFamilyOutputFormat have been removed; + use CqlInputFormat and CqlOutputFormat instead. + - Hadoop ColumnFamilyRecordReader and ColumnFamilyRecordWriter have been removed; + use CqlRecordReader and CqlRecordWriter instead. + - hinted_handoff_enabled in cassandra.yaml no longer supports a list of data centers. + To specify a list of excluded data centers when hinted_handoff_enabled is set to true, + use hinted_handoff_disabled_datacenters, see CASSANDRA-9035 for details. + - The `sstable_compression` and `chunk_length_kb` compression options have been deprecated. + The new options are `class` and `chunk_length_in_kb`. Disabling compression should now + be done by setting the new option `enabled` to `false`. + - Only map syntax is now allowed for caching options. ALL/NONE/KEYS_ONLY/ROWS_ONLY syntax + has been deprecated since 2.1.0 and is being removed in 3.0.0. + - Batchlog entries are now stored in a new table - system.batches. + The old one has been deprecated. + - JMX methods set/getCompactionStrategyClass have been removed, use + set/getCompactionParameters or set/getCompactionParametersJson instead. ++ - SizeTieredCompactionStrategy parameter cold_reads_to_omit has been removed. + 2.2 ===
cassandra git commit: Document removal of cold_reads_to_omit (CASSANDRA-9997)
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 2dd8101ae - 4f14c8547 Document removal of cold_reads_to_omit (CASSANDRA-9997) Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4f14c854 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4f14c854 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4f14c854 Branch: refs/heads/cassandra-2.2 Commit: 4f14c85471a6ee443429dd3da06d9cc8f56feeca Parents: 2dd8101 Author: Marcus Eriksson marc...@apache.org Authored: Mon Aug 10 13:49:05 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Aug 10 13:49:05 2015 +0200 -- NEWS.txt | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4f14c854/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index d0a6d9d..37a1b9e 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -99,6 +99,7 @@ New features to convert from timestamp into date type and bigint raw value. - The toTimestamp(date) and toUnixTimestamp(date) functions have been added to allow to convert from date into timestamp type and bigint raw value. + - SizeTieredCompactionStrategy parameter cold_reads_to_omit has been removed. 2.1.9
[1/2] cassandra git commit: Document removal of cold_reads_to_omit (CASSANDRA-9997)
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 2dfcb221c - 6e1e33696 Document removal of cold_reads_to_omit (CASSANDRA-9997) Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4f14c854 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4f14c854 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4f14c854 Branch: refs/heads/cassandra-3.0 Commit: 4f14c85471a6ee443429dd3da06d9cc8f56feeca Parents: 2dd8101 Author: Marcus Eriksson marc...@apache.org Authored: Mon Aug 10 13:49:05 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Aug 10 13:49:05 2015 +0200 -- NEWS.txt | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4f14c854/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index d0a6d9d..37a1b9e 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -99,6 +99,7 @@ New features to convert from timestamp into date type and bigint raw value. - The toTimestamp(date) and toUnixTimestamp(date) functions have been added to allow to convert from date into timestamp type and bigint raw value. + - SizeTieredCompactionStrategy parameter cold_reads_to_omit has been removed. 2.1.9
[3/3] cassandra git commit: Merge branch 'cassandra-3.0' into trunk
Merge branch 'cassandra-3.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/41c83e42 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/41c83e42 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/41c83e42 Branch: refs/heads/trunk Commit: 41c83e420768b8370b9d58a3bf97818f61709b07 Parents: f03783b 6e1e336 Author: Marcus Eriksson marc...@apache.org Authored: Mon Aug 10 13:52:00 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Aug 10 13:52:00 2015 +0200 -- NEWS.txt | 2 ++ 1 file changed, 2 insertions(+) --
[4/4] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: CHANGES.txt src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java src/java/org/apache/cassandra/service/CassandraDaemon.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5a090cc5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5a090cc5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5a090cc5 Branch: refs/heads/cassandra-2.2 Commit: 5a090cc5a13d01a22776378b65116868359b8f8c Parents: 01f3d0a 1eccced Author: Marcus Eriksson marc...@apache.org Authored: Mon Jul 13 19:22:55 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Jul 13 19:23:41 2015 +0200 -- CHANGES.txt | 1 + conf/cassandra.yaml | 9 +-- .../io/sstable/format/SSTableReader.java| 71 .../org/apache/cassandra/io/util/FileUtils.java | 23 +++ .../apache/cassandra/io/util/SegmentedFile.java | 13 +++- .../cassandra/service/CassandraDaemon.java | 9 +++ .../cassandra/service/StorageService.java | 7 ++ .../cassandra/utils/JVMStabilityInspector.java | 17 - 8 files changed, 128 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a090cc5/CHANGES.txt -- diff --cc CHANGES.txt index 03458b2,5f4fdf2..3046ceb --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,7 -1,5 +1,8 @@@ -2.1.9 +2.2.0-rc3 + * sum() and avg() functions missing for smallint and tinyint types (CASSANDRA-9671) + * Revert CASSANDRA-9542 (allow native functions in UDA) (CASSANDRA-9771) +Merged from 2.1: + * Handle corrupt files on startup (CASSANDRA-9686) * Fix clientutil jar and tests (CASSANDRA-9760) * (cqlsh) Allow the SSL protocol version to be specified through the config file or environment variables (CASSANDRA-9544) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a090cc5/conf/cassandra.yaml --
[3/5] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a090cc5/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java -- diff --cc src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java index 247d181,000..822a213 mode 100644,00..100644 --- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java @@@ -1,2238 -1,0 +1,2281 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.io.sstable.format; + +import java.io.*; +import java.nio.ByteBuffer; +import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; +import com.google.common.collect.Iterators; +import com.google.common.collect.Ordering; +import com.google.common.primitives.Longs; +import com.google.common.util.concurrent.RateLimiter; + +import com.clearspring.analytics.stream.cardinality.CardinalityMergeException; +import com.clearspring.analytics.stream.cardinality.HyperLogLogPlus; +import com.clearspring.analytics.stream.cardinality.ICardinality; +import com.codahale.metrics.Counter; +import org.apache.cassandra.cache.CachingOptions; +import org.apache.cassandra.cache.InstrumentingCache; +import org.apache.cassandra.cache.KeyCacheKey; +import org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor; +import org.apache.cassandra.concurrent.ScheduledExecutors; +import org.apache.cassandra.config.*; +import org.apache.cassandra.db.*; +import org.apache.cassandra.db.columniterator.OnDiskAtomIterator; +import org.apache.cassandra.db.commitlog.ReplayPosition; +import org.apache.cassandra.db.composites.CellName; +import org.apache.cassandra.db.filter.ColumnSlice; +import org.apache.cassandra.db.index.SecondaryIndex; +import org.apache.cassandra.db.lifecycle.Tracker; +import org.apache.cassandra.dht.*; ++import org.apache.cassandra.io.FSError; +import org.apache.cassandra.io.compress.CompressionMetadata; +import org.apache.cassandra.io.sstable.*; +import org.apache.cassandra.io.sstable.metadata.*; +import org.apache.cassandra.io.util.*; +import org.apache.cassandra.metrics.RestorableMeter; +import org.apache.cassandra.metrics.StorageMetrics; +import org.apache.cassandra.service.ActiveRepairService; +import org.apache.cassandra.service.CacheService; +import org.apache.cassandra.service.StorageService; +import org.apache.cassandra.utils.*; +import org.apache.cassandra.utils.concurrent.OpOrder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.apache.cassandra.utils.concurrent.Ref; +import org.apache.cassandra.utils.concurrent.SelfRefCounted; + +import static org.apache.cassandra.db.Directories.SECONDARY_INDEX_NAME_SEPARATOR; + +/** + * An SSTableReader can be constructed in a number of places, but typically is either + * read from disk at startup, or constructed from a flushed memtable, or after compaction + * to replace some existing sstables. However once created, an sstablereader may also be modified. + * + * A reader's OpenReason describes its current stage in its lifecycle, as follows: + * + * + * pre {@code + * NORMAL + * From: None= Reader has been read from disk, either at startup or from a flushed memtable + * EARLY = Reader is the final result of a compaction + * MOVED_START = Reader WAS being compacted, but this failed and it has been restored to NORMAL status + * + * EARLY + * From: None= Reader is a compaction replacement that is either incomplete and has been opened + *to represent its partial result status, or has been finished but the compaction + *it is a part of has not yet completed fully + * EARLY = Same as from None, only it is not the first time it has been + * + * MOVED_START + * From:
[2/5] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a090cc5/src/java/org/apache/cassandra/io/util/FileUtils.java -- diff --cc src/java/org/apache/cassandra/io/util/FileUtils.java index 3552ca9,3be7c99..9f5193b --- a/src/java/org/apache/cassandra/io/util/FileUtils.java +++ b/src/java/org/apache/cassandra/io/util/FileUtils.java @@@ -24,6 -33,6 +24,7 @@@ import java.nio.file.* import java.text.DecimalFormat; import java.util.Arrays; ++import org.apache.cassandra.config.Config; import sun.nio.ch.DirectBuffer; import org.slf4j.Logger; http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a090cc5/src/java/org/apache/cassandra/io/util/SegmentedFile.java -- diff --cc src/java/org/apache/cassandra/io/util/SegmentedFile.java index edbd742,c65ecbf..66898c6 --- a/src/java/org/apache/cassandra/io/util/SegmentedFile.java +++ b/src/java/org/apache/cassandra/io/util/SegmentedFile.java @@@ -175,12 -165,17 +175,21 @@@ public abstract class SegmentedFile ext public SegmentedFile complete(String path) { - return complete(getChannel(path), -1); -return complete(path, -1, true); -} - -public SegmentedFile complete(String path, boolean isFinal) -{ -return complete(path, -1, isFinal); ++return complete(path, -1L); } public SegmentedFile complete(String path, long overrideLength) { - return complete(getChannel(path), overrideLength); -return complete(path, overrideLength, false); ++ChannelProxy channelCopy = getChannel(path); ++try ++{ ++return complete(channelCopy, overrideLength); ++} ++catch (Throwable t) ++{ ++channelCopy.close(); ++throw t; ++} } public void serializeBounds(DataOutput out) throws IOException http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a090cc5/src/java/org/apache/cassandra/service/CassandraDaemon.java -- diff --cc src/java/org/apache/cassandra/service/CassandraDaemon.java index 167d6b9,949ea4c..8388138 --- a/src/java/org/apache/cassandra/service/CassandraDaemon.java +++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java @@@ -122,21 -125,16 +122,23 @@@ public class CassandraDaemo private static final CassandraDaemon instance = new CassandraDaemon(); -/** - * The earliest legit timestamp a casandra instance could have ever launched. - * Date roughly taken from http://perspectives.mvdirona.com/2008/07/12/FacebookReleasesCassandraAsOpenSource.aspx - * We use this to ensure the system clock is at least somewhat correct at startup. - */ -private static final long EARLIEST_LAUNCH_DATE = 121582080L; - public Server thriftServer; public Server nativeServer; -private boolean setupCompleted = false; + +private final boolean runManaged; +protected final StartupChecks startupChecks; ++private boolean setupCompleted; + +public CassandraDaemon() { +this(false); +} + +public CassandraDaemon(boolean runManaged) { +this.runManaged = runManaged; +this.startupChecks = new StartupChecks().withDefaultTests(); ++this.setupCompleted = false; +} + /** * This is a hook for concrete daemons to initialize themselves suitably. * @@@ -335,31 -425,15 +337,38 @@@ InetAddress nativeAddr = DatabaseDescriptor.getRpcAddress(); int nativePort = DatabaseDescriptor.getNativeTransportPort(); nativeServer = new org.apache.cassandra.transport.Server(nativeAddr, nativePort); + + setupCompleted = true; + } + + public boolean setupCompleted() + { + return setupCompleted; } +private void logSystemInfo() +{ + if (logger.isInfoEnabled()) + { + try + { + logger.info(Hostname: {}, InetAddress.getLocalHost().getHostName()); + } + catch (UnknownHostException e1) + { + logger.info(Could not resolve local host); + } + + logger.info(JVM vendor/version: {}/{}, System.getProperty(java.vm.name), System.getProperty(java.version)); + logger.info(Heap size: {}/{}, Runtime.getRuntime().totalMemory(), Runtime.getRuntime().maxMemory()); + + for(MemoryPoolMXBean pool: ManagementFactory.getMemoryPoolMXBeans()) + logger.info({} {}: {}, pool.getName(), pool.getType(), pool.getPeakUsage()); + + logger.info(Classpath: {}, System.getProperty(java.class.path)); +
[1/5] cassandra git commit: Handle corrupt files on startup
Repository: cassandra Updated Branches: refs/heads/trunk 1f9d74c91 - 3b5ab3a47 Handle corrupt files on startup Patch by stefania; reviewed by marcuse for CASSANDRA-9686 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1ecccede Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1ecccede Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1ecccede Branch: refs/heads/trunk Commit: 1ecccede7d9252dd4eacdc31da6b5120d0fded9c Parents: 19c00f7 Author: Stefania Alborghetti stefania.alborghe...@datastax.com Authored: Wed Jul 1 11:15:15 2015 +0800 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Jul 13 19:03:37 2015 +0200 -- CHANGES.txt | 1 + conf/cassandra.yaml | 9 +- .../cassandra/io/sstable/SSTableReader.java | 137 +-- .../org/apache/cassandra/io/util/FileUtils.java | 22 +++ .../cassandra/service/CassandraDaemon.java | 9 +- .../cassandra/service/StorageService.java | 7 + .../cassandra/utils/JVMStabilityInspector.java | 17 ++- 7 files changed, 150 insertions(+), 52 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ecccede/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 7635227..5f4fdf2 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.9 + * Handle corrupt files on startup (CASSANDRA-9686) * Fix clientutil jar and tests (CASSANDRA-9760) * (cqlsh) Allow the SSL protocol version to be specified through the config file or environment variables (CASSANDRA-9544) http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ecccede/conf/cassandra.yaml -- diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index e4b7cbd..3047586 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -112,11 +112,12 @@ partitioner: org.apache.cassandra.dht.Murmur3Partitioner # commitlog_directory: /var/lib/cassandra/commitlog # policy for data disk failures: -# die: shut down gossip and Thrift and kill the JVM for any fs errors or +# die: shut down gossip and client transports and kill the JVM for any fs errors or # single-sstable errors, so the node can be replaced. -# stop_paranoid: shut down gossip and Thrift even for single-sstable errors. -# stop: shut down gossip and Thrift, leaving the node effectively dead, but -# can still be inspected via JMX. +# stop_paranoid: shut down gossip and client transports even for single-sstable errors, +#kill the JVM for errors during startup. +# stop: shut down gossip and client transports, leaving the node effectively dead, but +# can still be inspected via JMX, kill the JVM for errors during startup. # best_effort: stop using the failed disk and respond to requests based on # remaining available sstables. This means you WILL see obsolete # data at CL.ONE! http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ecccede/src/java/org/apache/cassandra/io/sstable/SSTableReader.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java index 6879834..92c9b55 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java @@ -69,6 +69,7 @@ import org.apache.cassandra.dht.IPartitioner; import org.apache.cassandra.dht.LocalPartitioner; import org.apache.cassandra.dht.Range; import org.apache.cassandra.dht.Token; +import org.apache.cassandra.io.FSError; import org.apache.cassandra.io.compress.CompressionMetadata; import org.apache.cassandra.io.sstable.metadata.CompactionMetadata; import org.apache.cassandra.io.sstable.metadata.MetadataComponent; @@ -477,19 +478,27 @@ public class SSTableReader extends SSTable implements SelfRefCountedSSTableRead statsMetadata, OpenReason.NORMAL); -// load index and filter -long start = System.nanoTime(); -sstable.load(validationMetadata); -logger.debug(INDEX LOAD TIME for {}: {} ms., descriptor, TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start)); +try +{ +// load index and filter +long start = System.nanoTime(); +sstable.load(validationMetadata); +logger.debug(INDEX LOAD TIME for {}: {} ms., descriptor, TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start)); -sstable.setup(!validate); -if (validate
[5/5] cassandra git commit: Merge branch 'cassandra-2.2' into trunk
Merge branch 'cassandra-2.2' into trunk Conflicts: src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3b5ab3a4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3b5ab3a4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3b5ab3a4 Branch: refs/heads/trunk Commit: 3b5ab3a473543e9daa0534a4088d0545920e3286 Parents: 1f9d74c 5a090cc Author: Marcus Eriksson marc...@apache.org Authored: Mon Jul 13 19:28:12 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Jul 13 19:28:12 2015 +0200 -- CHANGES.txt | 1 + conf/cassandra.yaml | 9 +-- .../io/sstable/format/SSTableReader.java| 68 .../org/apache/cassandra/io/util/FileUtils.java | 23 +++ .../apache/cassandra/io/util/SegmentedFile.java | 13 +++- .../cassandra/service/CassandraDaemon.java | 9 +++ .../cassandra/service/StorageService.java | 7 ++ .../cassandra/utils/JVMStabilityInspector.java | 17 - 8 files changed, 127 insertions(+), 20 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b5ab3a4/CHANGES.txt -- diff --cc CHANGES.txt index 590084f,3046ceb..bdc30d7 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,29 -1,11 +1,30 @@@ +3.0 + * Change CREATE/ALTER TABLE syntax for compression (CASSANDRA-8384) + * Cleanup crc and adler code for java 8 (CASSANDRA-9650) + * Storage engine refactor (CASSANDRA-8099, 9743, 9746, 9759) + * Update Guava to 18.0 (CASSANDRA-9653) + * Bloom filter false positive ratio is not honoured (CASSANDRA-8413) + * New option for cassandra-stress to leave a ratio of columns null (CASSANDRA-9522) + * Change hinted_handoff_enabled yaml setting, JMX (CASSANDRA-9035) + * Add algorithmic token allocation (CASSANDRA-7032) + * Add nodetool command to replay batchlog (CASSANDRA-9547) + * Make file buffer cache independent of paths being read (CASSANDRA-8897) + * Remove deprecated legacy Hadoop code (CASSANDRA-9353) + * Decommissioned nodes will not rejoin the cluster (CASSANDRA-8801) + * Change gossip stabilization to use endpoit size (CASSANDRA-9401) + * Change default garbage collector to G1 (CASSANDRA-7486) + * Populate TokenMetadata early during startup (CASSANDRA-9317) + * undeprecate cache recentHitRate (CASSANDRA-6591) + * Add support for selectively varint encoding fields (CASSANDRA-9499) + + 2.2.0-rc3 - * sum() and avg() functions missing for smallint and tinyint types (CASSANDRA-9671) * Revert CASSANDRA-9542 (allow native functions in UDA) (CASSANDRA-9771) Merged from 2.1: + * Handle corrupt files on startup (CASSANDRA-9686) * Fix clientutil jar and tests (CASSANDRA-9760) * (cqlsh) Allow the SSL protocol version to be specified through the - config file or environment variables (CASSANDRA-9544) +config file or environment variables (CASSANDRA-9544) Merged from 2.0: * Can't transition from write survey to normal mode (CASSANDRA-9740) * Scrub (recover) sstables even when -Index.db is missing (CASSANDRA-9591) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b5ab3a4/conf/cassandra.yaml -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b5ab3a4/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java -- diff --cc src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java index 555140f,822a213..81ec24b --- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java @@@ -454,28 -441,29 +455,36 @@@ public abstract class SSTableReader ext } logger.info(Opening {} ({} bytes), descriptor, new File(descriptor.filenameFor(Component.DATA)).length()); -SSTableReader sstable = internalOpen(descriptor, components, metadata, partitioner, System.currentTimeMillis(), - statsMetadata, OpenReason.NORMAL); +SSTableReader sstable = internalOpen(descriptor, + components, + metadata, + partitioner, + System.currentTimeMillis(), + statsMetadata, + OpenReason.NORMAL, + header == null ? null : header.toHeader(metadata)); + - // load index and
[3/4] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a090cc5/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java -- diff --cc src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java index 247d181,000..822a213 mode 100644,00..100644 --- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java @@@ -1,2238 -1,0 +1,2281 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.io.sstable.format; + +import java.io.*; +import java.nio.ByteBuffer; +import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; +import com.google.common.collect.Iterators; +import com.google.common.collect.Ordering; +import com.google.common.primitives.Longs; +import com.google.common.util.concurrent.RateLimiter; + +import com.clearspring.analytics.stream.cardinality.CardinalityMergeException; +import com.clearspring.analytics.stream.cardinality.HyperLogLogPlus; +import com.clearspring.analytics.stream.cardinality.ICardinality; +import com.codahale.metrics.Counter; +import org.apache.cassandra.cache.CachingOptions; +import org.apache.cassandra.cache.InstrumentingCache; +import org.apache.cassandra.cache.KeyCacheKey; +import org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor; +import org.apache.cassandra.concurrent.ScheduledExecutors; +import org.apache.cassandra.config.*; +import org.apache.cassandra.db.*; +import org.apache.cassandra.db.columniterator.OnDiskAtomIterator; +import org.apache.cassandra.db.commitlog.ReplayPosition; +import org.apache.cassandra.db.composites.CellName; +import org.apache.cassandra.db.filter.ColumnSlice; +import org.apache.cassandra.db.index.SecondaryIndex; +import org.apache.cassandra.db.lifecycle.Tracker; +import org.apache.cassandra.dht.*; ++import org.apache.cassandra.io.FSError; +import org.apache.cassandra.io.compress.CompressionMetadata; +import org.apache.cassandra.io.sstable.*; +import org.apache.cassandra.io.sstable.metadata.*; +import org.apache.cassandra.io.util.*; +import org.apache.cassandra.metrics.RestorableMeter; +import org.apache.cassandra.metrics.StorageMetrics; +import org.apache.cassandra.service.ActiveRepairService; +import org.apache.cassandra.service.CacheService; +import org.apache.cassandra.service.StorageService; +import org.apache.cassandra.utils.*; +import org.apache.cassandra.utils.concurrent.OpOrder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.apache.cassandra.utils.concurrent.Ref; +import org.apache.cassandra.utils.concurrent.SelfRefCounted; + +import static org.apache.cassandra.db.Directories.SECONDARY_INDEX_NAME_SEPARATOR; + +/** + * An SSTableReader can be constructed in a number of places, but typically is either + * read from disk at startup, or constructed from a flushed memtable, or after compaction + * to replace some existing sstables. However once created, an sstablereader may also be modified. + * + * A reader's OpenReason describes its current stage in its lifecycle, as follows: + * + * + * pre {@code + * NORMAL + * From: None= Reader has been read from disk, either at startup or from a flushed memtable + * EARLY = Reader is the final result of a compaction + * MOVED_START = Reader WAS being compacted, but this failed and it has been restored to NORMAL status + * + * EARLY + * From: None= Reader is a compaction replacement that is either incomplete and has been opened + *to represent its partial result status, or has been finished but the compaction + *it is a part of has not yet completed fully + * EARLY = Same as from None, only it is not the first time it has been + * + * MOVED_START + * From:
[4/5] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: CHANGES.txt src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java src/java/org/apache/cassandra/service/CassandraDaemon.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5a090cc5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5a090cc5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5a090cc5 Branch: refs/heads/trunk Commit: 5a090cc5a13d01a22776378b65116868359b8f8c Parents: 01f3d0a 1eccced Author: Marcus Eriksson marc...@apache.org Authored: Mon Jul 13 19:22:55 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Jul 13 19:23:41 2015 +0200 -- CHANGES.txt | 1 + conf/cassandra.yaml | 9 +-- .../io/sstable/format/SSTableReader.java| 71 .../org/apache/cassandra/io/util/FileUtils.java | 23 +++ .../apache/cassandra/io/util/SegmentedFile.java | 13 +++- .../cassandra/service/CassandraDaemon.java | 9 +++ .../cassandra/service/StorageService.java | 7 ++ .../cassandra/utils/JVMStabilityInspector.java | 17 - 8 files changed, 128 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a090cc5/CHANGES.txt -- diff --cc CHANGES.txt index 03458b2,5f4fdf2..3046ceb --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,7 -1,5 +1,8 @@@ -2.1.9 +2.2.0-rc3 + * sum() and avg() functions missing for smallint and tinyint types (CASSANDRA-9671) + * Revert CASSANDRA-9542 (allow native functions in UDA) (CASSANDRA-9771) +Merged from 2.1: + * Handle corrupt files on startup (CASSANDRA-9686) * Fix clientutil jar and tests (CASSANDRA-9760) * (cqlsh) Allow the SSL protocol version to be specified through the config file or environment variables (CASSANDRA-9544) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a090cc5/conf/cassandra.yaml --
cassandra git commit: Handle corrupt files on startup
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 19c00f721 - 1ecccede7 Handle corrupt files on startup Patch by stefania; reviewed by marcuse for CASSANDRA-9686 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1ecccede Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1ecccede Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1ecccede Branch: refs/heads/cassandra-2.1 Commit: 1ecccede7d9252dd4eacdc31da6b5120d0fded9c Parents: 19c00f7 Author: Stefania Alborghetti stefania.alborghe...@datastax.com Authored: Wed Jul 1 11:15:15 2015 +0800 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Jul 13 19:03:37 2015 +0200 -- CHANGES.txt | 1 + conf/cassandra.yaml | 9 +- .../cassandra/io/sstable/SSTableReader.java | 137 +-- .../org/apache/cassandra/io/util/FileUtils.java | 22 +++ .../cassandra/service/CassandraDaemon.java | 9 +- .../cassandra/service/StorageService.java | 7 + .../cassandra/utils/JVMStabilityInspector.java | 17 ++- 7 files changed, 150 insertions(+), 52 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ecccede/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 7635227..5f4fdf2 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.9 + * Handle corrupt files on startup (CASSANDRA-9686) * Fix clientutil jar and tests (CASSANDRA-9760) * (cqlsh) Allow the SSL protocol version to be specified through the config file or environment variables (CASSANDRA-9544) http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ecccede/conf/cassandra.yaml -- diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index e4b7cbd..3047586 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -112,11 +112,12 @@ partitioner: org.apache.cassandra.dht.Murmur3Partitioner # commitlog_directory: /var/lib/cassandra/commitlog # policy for data disk failures: -# die: shut down gossip and Thrift and kill the JVM for any fs errors or +# die: shut down gossip and client transports and kill the JVM for any fs errors or # single-sstable errors, so the node can be replaced. -# stop_paranoid: shut down gossip and Thrift even for single-sstable errors. -# stop: shut down gossip and Thrift, leaving the node effectively dead, but -# can still be inspected via JMX. +# stop_paranoid: shut down gossip and client transports even for single-sstable errors, +#kill the JVM for errors during startup. +# stop: shut down gossip and client transports, leaving the node effectively dead, but +# can still be inspected via JMX, kill the JVM for errors during startup. # best_effort: stop using the failed disk and respond to requests based on # remaining available sstables. This means you WILL see obsolete # data at CL.ONE! http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ecccede/src/java/org/apache/cassandra/io/sstable/SSTableReader.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java index 6879834..92c9b55 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java @@ -69,6 +69,7 @@ import org.apache.cassandra.dht.IPartitioner; import org.apache.cassandra.dht.LocalPartitioner; import org.apache.cassandra.dht.Range; import org.apache.cassandra.dht.Token; +import org.apache.cassandra.io.FSError; import org.apache.cassandra.io.compress.CompressionMetadata; import org.apache.cassandra.io.sstable.metadata.CompactionMetadata; import org.apache.cassandra.io.sstable.metadata.MetadataComponent; @@ -477,19 +478,27 @@ public class SSTableReader extends SSTable implements SelfRefCountedSSTableRead statsMetadata, OpenReason.NORMAL); -// load index and filter -long start = System.nanoTime(); -sstable.load(validationMetadata); -logger.debug(INDEX LOAD TIME for {}: {} ms., descriptor, TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start)); +try +{ +// load index and filter +long start = System.nanoTime(); +sstable.load(validationMetadata); +logger.debug(INDEX LOAD TIME for {}: {} ms., descriptor, TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start)); -sstable.setup(!validate
[1/4] cassandra git commit: Handle corrupt files on startup
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 01f3d0a15 - 5a090cc5a Handle corrupt files on startup Patch by stefania; reviewed by marcuse for CASSANDRA-9686 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1ecccede Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1ecccede Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1ecccede Branch: refs/heads/cassandra-2.2 Commit: 1ecccede7d9252dd4eacdc31da6b5120d0fded9c Parents: 19c00f7 Author: Stefania Alborghetti stefania.alborghe...@datastax.com Authored: Wed Jul 1 11:15:15 2015 +0800 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Jul 13 19:03:37 2015 +0200 -- CHANGES.txt | 1 + conf/cassandra.yaml | 9 +- .../cassandra/io/sstable/SSTableReader.java | 137 +-- .../org/apache/cassandra/io/util/FileUtils.java | 22 +++ .../cassandra/service/CassandraDaemon.java | 9 +- .../cassandra/service/StorageService.java | 7 + .../cassandra/utils/JVMStabilityInspector.java | 17 ++- 7 files changed, 150 insertions(+), 52 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ecccede/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 7635227..5f4fdf2 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.9 + * Handle corrupt files on startup (CASSANDRA-9686) * Fix clientutil jar and tests (CASSANDRA-9760) * (cqlsh) Allow the SSL protocol version to be specified through the config file or environment variables (CASSANDRA-9544) http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ecccede/conf/cassandra.yaml -- diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index e4b7cbd..3047586 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -112,11 +112,12 @@ partitioner: org.apache.cassandra.dht.Murmur3Partitioner # commitlog_directory: /var/lib/cassandra/commitlog # policy for data disk failures: -# die: shut down gossip and Thrift and kill the JVM for any fs errors or +# die: shut down gossip and client transports and kill the JVM for any fs errors or # single-sstable errors, so the node can be replaced. -# stop_paranoid: shut down gossip and Thrift even for single-sstable errors. -# stop: shut down gossip and Thrift, leaving the node effectively dead, but -# can still be inspected via JMX. +# stop_paranoid: shut down gossip and client transports even for single-sstable errors, +#kill the JVM for errors during startup. +# stop: shut down gossip and client transports, leaving the node effectively dead, but +# can still be inspected via JMX, kill the JVM for errors during startup. # best_effort: stop using the failed disk and respond to requests based on # remaining available sstables. This means you WILL see obsolete # data at CL.ONE! http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ecccede/src/java/org/apache/cassandra/io/sstable/SSTableReader.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java index 6879834..92c9b55 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java @@ -69,6 +69,7 @@ import org.apache.cassandra.dht.IPartitioner; import org.apache.cassandra.dht.LocalPartitioner; import org.apache.cassandra.dht.Range; import org.apache.cassandra.dht.Token; +import org.apache.cassandra.io.FSError; import org.apache.cassandra.io.compress.CompressionMetadata; import org.apache.cassandra.io.sstable.metadata.CompactionMetadata; import org.apache.cassandra.io.sstable.metadata.MetadataComponent; @@ -477,19 +478,27 @@ public class SSTableReader extends SSTable implements SelfRefCountedSSTableRead statsMetadata, OpenReason.NORMAL); -// load index and filter -long start = System.nanoTime(); -sstable.load(validationMetadata); -logger.debug(INDEX LOAD TIME for {}: {} ms., descriptor, TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start)); +try +{ +// load index and filter +long start = System.nanoTime(); +sstable.load(validationMetadata); +logger.debug(INDEX LOAD TIME for {}: {} ms., descriptor, TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start)); -sstable.setup(!validate
[2/4] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a090cc5/src/java/org/apache/cassandra/io/util/FileUtils.java -- diff --cc src/java/org/apache/cassandra/io/util/FileUtils.java index 3552ca9,3be7c99..9f5193b --- a/src/java/org/apache/cassandra/io/util/FileUtils.java +++ b/src/java/org/apache/cassandra/io/util/FileUtils.java @@@ -24,6 -33,6 +24,7 @@@ import java.nio.file.* import java.text.DecimalFormat; import java.util.Arrays; ++import org.apache.cassandra.config.Config; import sun.nio.ch.DirectBuffer; import org.slf4j.Logger; http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a090cc5/src/java/org/apache/cassandra/io/util/SegmentedFile.java -- diff --cc src/java/org/apache/cassandra/io/util/SegmentedFile.java index edbd742,c65ecbf..66898c6 --- a/src/java/org/apache/cassandra/io/util/SegmentedFile.java +++ b/src/java/org/apache/cassandra/io/util/SegmentedFile.java @@@ -175,12 -165,17 +175,21 @@@ public abstract class SegmentedFile ext public SegmentedFile complete(String path) { - return complete(getChannel(path), -1); -return complete(path, -1, true); -} - -public SegmentedFile complete(String path, boolean isFinal) -{ -return complete(path, -1, isFinal); ++return complete(path, -1L); } public SegmentedFile complete(String path, long overrideLength) { - return complete(getChannel(path), overrideLength); -return complete(path, overrideLength, false); ++ChannelProxy channelCopy = getChannel(path); ++try ++{ ++return complete(channelCopy, overrideLength); ++} ++catch (Throwable t) ++{ ++channelCopy.close(); ++throw t; ++} } public void serializeBounds(DataOutput out) throws IOException http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a090cc5/src/java/org/apache/cassandra/service/CassandraDaemon.java -- diff --cc src/java/org/apache/cassandra/service/CassandraDaemon.java index 167d6b9,949ea4c..8388138 --- a/src/java/org/apache/cassandra/service/CassandraDaemon.java +++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java @@@ -122,21 -125,16 +122,23 @@@ public class CassandraDaemo private static final CassandraDaemon instance = new CassandraDaemon(); -/** - * The earliest legit timestamp a casandra instance could have ever launched. - * Date roughly taken from http://perspectives.mvdirona.com/2008/07/12/FacebookReleasesCassandraAsOpenSource.aspx - * We use this to ensure the system clock is at least somewhat correct at startup. - */ -private static final long EARLIEST_LAUNCH_DATE = 121582080L; - public Server thriftServer; public Server nativeServer; -private boolean setupCompleted = false; + +private final boolean runManaged; +protected final StartupChecks startupChecks; ++private boolean setupCompleted; + +public CassandraDaemon() { +this(false); +} + +public CassandraDaemon(boolean runManaged) { +this.runManaged = runManaged; +this.startupChecks = new StartupChecks().withDefaultTests(); ++this.setupCompleted = false; +} + /** * This is a hook for concrete daemons to initialize themselves suitably. * @@@ -335,31 -425,15 +337,38 @@@ InetAddress nativeAddr = DatabaseDescriptor.getRpcAddress(); int nativePort = DatabaseDescriptor.getNativeTransportPort(); nativeServer = new org.apache.cassandra.transport.Server(nativeAddr, nativePort); + + setupCompleted = true; + } + + public boolean setupCompleted() + { + return setupCompleted; } +private void logSystemInfo() +{ + if (logger.isInfoEnabled()) + { + try + { + logger.info(Hostname: {}, InetAddress.getLocalHost().getHostName()); + } + catch (UnknownHostException e1) + { + logger.info(Could not resolve local host); + } + + logger.info(JVM vendor/version: {}/{}, System.getProperty(java.vm.name), System.getProperty(java.version)); + logger.info(Heap size: {}/{}, Runtime.getRuntime().totalMemory(), Runtime.getRuntime().maxMemory()); + + for(MemoryPoolMXBean pool: ManagementFactory.getMemoryPoolMXBeans()) + logger.info({} {}: {}, pool.getName(), pool.getType(), pool.getPeakUsage()); + + logger.info(Classpath: {}, System.getProperty(java.class.path)); +
cassandra git commit: Avoid anticompaction after non-global repairs
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 134bcda0c - 842f1509d Avoid anticompaction after non-global repairs Patch by marcuse; reviewed by sankalp kohli for CASSANDRA-9142 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/842f1509 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/842f1509 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/842f1509 Branch: refs/heads/cassandra-2.2 Commit: 842f1509d46bf068abca1e064f23454892347e60 Parents: 134bcda Author: Marcus Eriksson marc...@apache.org Authored: Mon Jun 1 15:36:17 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Tue Aug 25 19:00:12 2015 +0200 -- .../repair/RepairMessageVerbHandler.java| 14 +- .../apache/cassandra/repair/RepairRunnable.java | 2 +- .../repair/messages/PrepareMessage.java | 7 +-- .../repair/messages/RepairMessage.java | 1 + .../cassandra/repair/messages/RepairOption.java | 4 ++ .../cassandra/service/ActiveRepairService.java | 52 ++-- .../LeveledCompactionStrategyTest.java | 2 +- .../cassandra/repair/LocalSyncTaskTest.java | 2 +- 8 files changed, 60 insertions(+), 24 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/842f1509/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java -- diff --git a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java index c0855c4..796f135 100644 --- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java +++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java @@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory; import org.apache.cassandra.config.Schema; import org.apache.cassandra.db.ColumnFamilyStore; import org.apache.cassandra.db.Keyspace; +import org.apache.cassandra.db.SystemKeyspace; import org.apache.cassandra.db.compaction.CompactionManager; import org.apache.cassandra.dht.Bounds; import org.apache.cassandra.dht.LocalPartitioner; @@ -41,6 +42,7 @@ import org.apache.cassandra.net.MessageOut; import org.apache.cassandra.net.MessagingService; import org.apache.cassandra.repair.messages.*; import org.apache.cassandra.service.ActiveRepairService; +import org.apache.cassandra.utils.CassandraVersion; import org.apache.cassandra.utils.Pair; /** @@ -59,6 +61,7 @@ public class RepairMessageVerbHandler implements IVerbHandlerRepairMessage { switch (message.payload.messageType) { +case PREPARE_GLOBAL_MESSAGE: case PREPARE_MESSAGE: PrepareMessage prepareMessage = (PrepareMessage) message.payload; logger.debug(Preparing, {}, prepareMessage); @@ -69,10 +72,17 @@ public class RepairMessageVerbHandler implements IVerbHandlerRepairMessage ColumnFamilyStore columnFamilyStore = Keyspace.open(kscf.left).getColumnFamilyStore(kscf.right); columnFamilyStores.add(columnFamilyStore); } +CassandraVersion peerVersion = SystemKeyspace.getReleaseVersion(message.from); +// note that we default isGlobal to true since old version always default to true: +boolean isGlobal = peerVersion == null || + peerVersion.compareTo(ActiveRepairService.SUPPORTS_GLOBAL_PREPARE_FLAG_VERSION) 0 || + message.payload.messageType.equals(RepairMessage.Type.PREPARE_GLOBAL_MESSAGE); +logger.debug(Received prepare message: global message = {}, peerVersion = {},, message.payload.messageType.equals(RepairMessage.Type.PREPARE_GLOBAL_MESSAGE), peerVersion); ActiveRepairService.instance.registerParentRepairSession(prepareMessage.parentRepairSession, columnFamilyStores, prepareMessage.ranges, -prepareMessage.isIncremental); +prepareMessage.isIncremental, +isGlobal); MessagingService.instance().sendReply(new MessageOut(MessagingService.Verb.INTERNAL_RESPONSE), id, message.from); break; @@ -117,7 +127,7 @@ public class RepairMessageVerbHandler implements IVerbHandlerRepairMessage logger.debug(Syncing {}, request); long repairedAt = ActiveRepairService.UNREPAIRED_SSTABLE; if (desc.parentSessionId != null ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId
[1/3] cassandra git commit: Avoid anticompaction after non-global repairs
Repository: cassandra Updated Branches: refs/heads/trunk 34910c5a3 - aabad85fb Avoid anticompaction after non-global repairs Patch by marcuse; reviewed by sankalp kohli for CASSANDRA-9142 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/842f1509 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/842f1509 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/842f1509 Branch: refs/heads/trunk Commit: 842f1509d46bf068abca1e064f23454892347e60 Parents: 134bcda Author: Marcus Eriksson marc...@apache.org Authored: Mon Jun 1 15:36:17 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Tue Aug 25 19:00:12 2015 +0200 -- .../repair/RepairMessageVerbHandler.java| 14 +- .../apache/cassandra/repair/RepairRunnable.java | 2 +- .../repair/messages/PrepareMessage.java | 7 +-- .../repair/messages/RepairMessage.java | 1 + .../cassandra/repair/messages/RepairOption.java | 4 ++ .../cassandra/service/ActiveRepairService.java | 52 ++-- .../LeveledCompactionStrategyTest.java | 2 +- .../cassandra/repair/LocalSyncTaskTest.java | 2 +- 8 files changed, 60 insertions(+), 24 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/842f1509/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java -- diff --git a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java index c0855c4..796f135 100644 --- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java +++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java @@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory; import org.apache.cassandra.config.Schema; import org.apache.cassandra.db.ColumnFamilyStore; import org.apache.cassandra.db.Keyspace; +import org.apache.cassandra.db.SystemKeyspace; import org.apache.cassandra.db.compaction.CompactionManager; import org.apache.cassandra.dht.Bounds; import org.apache.cassandra.dht.LocalPartitioner; @@ -41,6 +42,7 @@ import org.apache.cassandra.net.MessageOut; import org.apache.cassandra.net.MessagingService; import org.apache.cassandra.repair.messages.*; import org.apache.cassandra.service.ActiveRepairService; +import org.apache.cassandra.utils.CassandraVersion; import org.apache.cassandra.utils.Pair; /** @@ -59,6 +61,7 @@ public class RepairMessageVerbHandler implements IVerbHandlerRepairMessage { switch (message.payload.messageType) { +case PREPARE_GLOBAL_MESSAGE: case PREPARE_MESSAGE: PrepareMessage prepareMessage = (PrepareMessage) message.payload; logger.debug(Preparing, {}, prepareMessage); @@ -69,10 +72,17 @@ public class RepairMessageVerbHandler implements IVerbHandlerRepairMessage ColumnFamilyStore columnFamilyStore = Keyspace.open(kscf.left).getColumnFamilyStore(kscf.right); columnFamilyStores.add(columnFamilyStore); } +CassandraVersion peerVersion = SystemKeyspace.getReleaseVersion(message.from); +// note that we default isGlobal to true since old version always default to true: +boolean isGlobal = peerVersion == null || + peerVersion.compareTo(ActiveRepairService.SUPPORTS_GLOBAL_PREPARE_FLAG_VERSION) 0 || + message.payload.messageType.equals(RepairMessage.Type.PREPARE_GLOBAL_MESSAGE); +logger.debug(Received prepare message: global message = {}, peerVersion = {},, message.payload.messageType.equals(RepairMessage.Type.PREPARE_GLOBAL_MESSAGE), peerVersion); ActiveRepairService.instance.registerParentRepairSession(prepareMessage.parentRepairSession, columnFamilyStores, prepareMessage.ranges, -prepareMessage.isIncremental); +prepareMessage.isIncremental, +isGlobal); MessagingService.instance().sendReply(new MessageOut(MessagingService.Verb.INTERNAL_RESPONSE), id, message.from); break; @@ -117,7 +127,7 @@ public class RepairMessageVerbHandler implements IVerbHandlerRepairMessage logger.debug(Syncing {}, request); long repairedAt = ActiveRepairService.UNREPAIRED_SSTABLE; if (desc.parentSessionId != null ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId) != null
[3/3] cassandra git commit: Merge branch 'cassandra-3.0' into trunk
Merge branch 'cassandra-3.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/aabad85f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/aabad85f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/aabad85f Branch: refs/heads/trunk Commit: aabad85fb2f48f4f8afcb62ea003e9fc7be887cb Parents: 34910c5 f490cce Author: Marcus Eriksson marc...@apache.org Authored: Tue Aug 25 19:06:57 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Tue Aug 25 19:06:57 2015 +0200 -- .../repair/RepairMessageVerbHandler.java| 5 +- .../apache/cassandra/repair/RepairRunnable.java | 2 +- .../repair/messages/PrepareMessage.java | 10 +++- .../cassandra/repair/messages/RepairOption.java | 4 ++ .../cassandra/service/ActiveRepairService.java | 49 +--- .../LeveledCompactionStrategyTest.java | 2 +- .../cassandra/repair/LocalSyncTaskTest.java | 2 +- 7 files changed, 51 insertions(+), 23 deletions(-) --
[2/2] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Conflicts: src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java src/java/org/apache/cassandra/repair/messages/PrepareMessage.java src/java/org/apache/cassandra/service/ActiveRepairService.java test/unit/org/apache/cassandra/db/compaction/LeveledCompactionStrategyTest.java test/unit/org/apache/cassandra/repair/LocalSyncTaskTest.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f490ccec Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f490ccec Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f490ccec Branch: refs/heads/cassandra-3.0 Commit: f490ccec62b2b86b9dbf0fff352aedbc7f65 Parents: 8afc76a 842f150 Author: Marcus Eriksson marc...@apache.org Authored: Tue Aug 25 19:05:23 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Tue Aug 25 19:05:34 2015 +0200 -- .../repair/RepairMessageVerbHandler.java| 5 +- .../apache/cassandra/repair/RepairRunnable.java | 2 +- .../repair/messages/PrepareMessage.java | 10 +++- .../cassandra/repair/messages/RepairOption.java | 4 ++ .../cassandra/service/ActiveRepairService.java | 49 +--- .../LeveledCompactionStrategyTest.java | 2 +- .../cassandra/repair/LocalSyncTaskTest.java | 2 +- 7 files changed, 51 insertions(+), 23 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f490ccec/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java -- diff --cc src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java index 942d902,796f135..ffba9d6 --- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java +++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java @@@ -73,7 -82,7 +73,8 @@@ public class RepairMessageVerbHandler i columnFamilyStores, prepareMessage.ranges, prepareMessage.isIncremental, - prepareMessage.timestamp); -isGlobal); ++prepareMessage.timestamp, ++prepareMessage.isGlobal); MessagingService.instance().sendReply(new MessageOut(MessagingService.Verb.INTERNAL_RESPONSE), id, message.from); break; http://git-wip-us.apache.org/repos/asf/cassandra/blob/f490ccec/src/java/org/apache/cassandra/repair/RepairRunnable.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f490ccec/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java -- diff --cc src/java/org/apache/cassandra/repair/messages/PrepareMessage.java index 0cd73db,a57c27e..8909f1b --- a/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java +++ b/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java @@@ -40,16 -40,14 +40,18 @@@ public class PrepareMessage extends Rep public final UUID parentRepairSession; public final boolean isIncremental; +public final long timestamp; ++public final boolean isGlobal; - public PrepareMessage(UUID parentRepairSession, ListUUID cfIds, CollectionRangeToken ranges, boolean isIncremental, long timestamp) -public PrepareMessage(UUID parentRepairSession, ListUUID cfIds, CollectionRangeToken ranges, boolean isIncremental, boolean isGlobal) ++public PrepareMessage(UUID parentRepairSession, ListUUID cfIds, CollectionRangeToken ranges, boolean isIncremental, long timestamp, boolean isGlobal) { -super(isGlobal ? Type.PREPARE_GLOBAL_MESSAGE : Type.PREPARE_MESSAGE, null); +super(Type.PREPARE_MESSAGE, null); this.parentRepairSession = parentRepairSession; this.cfIds = cfIds; this.ranges = ranges; this.isIncremental = isIncremental; +this.timestamp = timestamp; ++this.isGlobal = isGlobal; } public static class PrepareMessageSerializer implements MessageSerializerPrepareMessage @@@ -67,10 -65,9 +69,11 @@@ Range.tokenSerializer.serialize(r, out, version); } out.writeBoolean(message.isIncremental); +out.writeLong(message.timestamp); ++out.writeBoolean(message.isGlobal); } -public PrepareMessage deserialize(DataInput in, int version) throws IOException +public PrepareMessage deserialize(DataInputPlus in, int version) throws IOException { int cfIdCount = in.readInt();
[1/2] cassandra git commit: Avoid anticompaction after non-global repairs
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 8afc76ae6 - f490ccec6 Avoid anticompaction after non-global repairs Patch by marcuse; reviewed by sankalp kohli for CASSANDRA-9142 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/842f1509 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/842f1509 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/842f1509 Branch: refs/heads/cassandra-3.0 Commit: 842f1509d46bf068abca1e064f23454892347e60 Parents: 134bcda Author: Marcus Eriksson marc...@apache.org Authored: Mon Jun 1 15:36:17 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Tue Aug 25 19:00:12 2015 +0200 -- .../repair/RepairMessageVerbHandler.java| 14 +- .../apache/cassandra/repair/RepairRunnable.java | 2 +- .../repair/messages/PrepareMessage.java | 7 +-- .../repair/messages/RepairMessage.java | 1 + .../cassandra/repair/messages/RepairOption.java | 4 ++ .../cassandra/service/ActiveRepairService.java | 52 ++-- .../LeveledCompactionStrategyTest.java | 2 +- .../cassandra/repair/LocalSyncTaskTest.java | 2 +- 8 files changed, 60 insertions(+), 24 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/842f1509/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java -- diff --git a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java index c0855c4..796f135 100644 --- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java +++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java @@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory; import org.apache.cassandra.config.Schema; import org.apache.cassandra.db.ColumnFamilyStore; import org.apache.cassandra.db.Keyspace; +import org.apache.cassandra.db.SystemKeyspace; import org.apache.cassandra.db.compaction.CompactionManager; import org.apache.cassandra.dht.Bounds; import org.apache.cassandra.dht.LocalPartitioner; @@ -41,6 +42,7 @@ import org.apache.cassandra.net.MessageOut; import org.apache.cassandra.net.MessagingService; import org.apache.cassandra.repair.messages.*; import org.apache.cassandra.service.ActiveRepairService; +import org.apache.cassandra.utils.CassandraVersion; import org.apache.cassandra.utils.Pair; /** @@ -59,6 +61,7 @@ public class RepairMessageVerbHandler implements IVerbHandlerRepairMessage { switch (message.payload.messageType) { +case PREPARE_GLOBAL_MESSAGE: case PREPARE_MESSAGE: PrepareMessage prepareMessage = (PrepareMessage) message.payload; logger.debug(Preparing, {}, prepareMessage); @@ -69,10 +72,17 @@ public class RepairMessageVerbHandler implements IVerbHandlerRepairMessage ColumnFamilyStore columnFamilyStore = Keyspace.open(kscf.left).getColumnFamilyStore(kscf.right); columnFamilyStores.add(columnFamilyStore); } +CassandraVersion peerVersion = SystemKeyspace.getReleaseVersion(message.from); +// note that we default isGlobal to true since old version always default to true: +boolean isGlobal = peerVersion == null || + peerVersion.compareTo(ActiveRepairService.SUPPORTS_GLOBAL_PREPARE_FLAG_VERSION) 0 || + message.payload.messageType.equals(RepairMessage.Type.PREPARE_GLOBAL_MESSAGE); +logger.debug(Received prepare message: global message = {}, peerVersion = {},, message.payload.messageType.equals(RepairMessage.Type.PREPARE_GLOBAL_MESSAGE), peerVersion); ActiveRepairService.instance.registerParentRepairSession(prepareMessage.parentRepairSession, columnFamilyStores, prepareMessage.ranges, -prepareMessage.isIncremental); +prepareMessage.isIncremental, +isGlobal); MessagingService.instance().sendReply(new MessageOut(MessagingService.Verb.INTERNAL_RESPONSE), id, message.from); break; @@ -117,7 +127,7 @@ public class RepairMessageVerbHandler implements IVerbHandlerRepairMessage logger.debug(Syncing {}, request); long repairedAt = ActiveRepairService.UNREPAIRED_SSTABLE; if (desc.parentSessionId != null ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId
[2/3] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Conflicts: src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java src/java/org/apache/cassandra/repair/messages/PrepareMessage.java src/java/org/apache/cassandra/service/ActiveRepairService.java test/unit/org/apache/cassandra/db/compaction/LeveledCompactionStrategyTest.java test/unit/org/apache/cassandra/repair/LocalSyncTaskTest.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f490ccec Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f490ccec Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f490ccec Branch: refs/heads/trunk Commit: f490ccec62b2b86b9dbf0fff352aedbc7f65 Parents: 8afc76a 842f150 Author: Marcus Eriksson marc...@apache.org Authored: Tue Aug 25 19:05:23 2015 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Tue Aug 25 19:05:34 2015 +0200 -- .../repair/RepairMessageVerbHandler.java| 5 +- .../apache/cassandra/repair/RepairRunnable.java | 2 +- .../repair/messages/PrepareMessage.java | 10 +++- .../cassandra/repair/messages/RepairOption.java | 4 ++ .../cassandra/service/ActiveRepairService.java | 49 +--- .../LeveledCompactionStrategyTest.java | 2 +- .../cassandra/repair/LocalSyncTaskTest.java | 2 +- 7 files changed, 51 insertions(+), 23 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f490ccec/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java -- diff --cc src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java index 942d902,796f135..ffba9d6 --- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java +++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java @@@ -73,7 -82,7 +73,8 @@@ public class RepairMessageVerbHandler i columnFamilyStores, prepareMessage.ranges, prepareMessage.isIncremental, - prepareMessage.timestamp); -isGlobal); ++prepareMessage.timestamp, ++prepareMessage.isGlobal); MessagingService.instance().sendReply(new MessageOut(MessagingService.Verb.INTERNAL_RESPONSE), id, message.from); break; http://git-wip-us.apache.org/repos/asf/cassandra/blob/f490ccec/src/java/org/apache/cassandra/repair/RepairRunnable.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f490ccec/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java -- diff --cc src/java/org/apache/cassandra/repair/messages/PrepareMessage.java index 0cd73db,a57c27e..8909f1b --- a/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java +++ b/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java @@@ -40,16 -40,14 +40,18 @@@ public class PrepareMessage extends Rep public final UUID parentRepairSession; public final boolean isIncremental; +public final long timestamp; ++public final boolean isGlobal; - public PrepareMessage(UUID parentRepairSession, ListUUID cfIds, CollectionRangeToken ranges, boolean isIncremental, long timestamp) -public PrepareMessage(UUID parentRepairSession, ListUUID cfIds, CollectionRangeToken ranges, boolean isIncremental, boolean isGlobal) ++public PrepareMessage(UUID parentRepairSession, ListUUID cfIds, CollectionRangeToken ranges, boolean isIncremental, long timestamp, boolean isGlobal) { -super(isGlobal ? Type.PREPARE_GLOBAL_MESSAGE : Type.PREPARE_MESSAGE, null); +super(Type.PREPARE_MESSAGE, null); this.parentRepairSession = parentRepairSession; this.cfIds = cfIds; this.ranges = ranges; this.isIncremental = isIncremental; +this.timestamp = timestamp; ++this.isGlobal = isGlobal; } public static class PrepareMessageSerializer implements MessageSerializerPrepareMessage @@@ -67,10 -65,9 +69,11 @@@ Range.tokenSerializer.serialize(r, out, version); } out.writeBoolean(message.isIncremental); +out.writeLong(message.timestamp); ++out.writeBoolean(message.isGlobal); } -public PrepareMessage deserialize(DataInput in, int version) throws IOException +public PrepareMessage deserialize(DataInputPlus in, int version) throws IOException { int cfIdCount = in.readInt();
[1/4] cassandra git commit: Don't try to get ancestors from half-renamed sstables
Repository: cassandra Updated Branches: refs/heads/trunk 928e4c28c -> 15f17adf8 Don't try to get ancestors from half-renamed sstables Patch by marcuse; reviewed by yukim for CASSANDRA-10501 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/87f43ac5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/87f43ac5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/87f43ac5 Branch: refs/heads/trunk Commit: 87f43ac51de7f34c2e65c5bb2e65d82393ea9442 Parents: 17082d4 Author: Marcus Eriksson <marc...@apache.org> Authored: Fri Oct 23 08:56:08 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Tue Oct 27 12:06:22 2015 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 5 + 2 files changed, 6 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/87f43ac5/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index d06345e..2ca3b43 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) * Fix paging issues with partitions containing only static columns data http://git-wip-us.apache.org/repos/asf/cassandra/blob/87f43ac5/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 ffaa276..906e18c 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -646,6 +646,11 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean Set completedAncestors = new HashSet<>(); for (Map.Entry<Descriptor, Set> sstableFiles : directories.sstableLister().skipTemporary(true).list().entrySet()) { +// we rename the Data component last - if it does not exist as a final file, we should ignore this sstable and +// it will be removed during startup +if (!sstableFiles.getValue().contains(Component.DATA)) +continue; + Descriptor desc = sstableFiles.getKey(); Set ancestors;
[2/3] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' 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/b06c637f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b06c637f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b06c637f Branch: refs/heads/cassandra-3.0 Commit: b06c637f11b0ef8e0063b806199c6c59f55358b6 Parents: 32f22a4 87f43ac Author: Marcus ErikssonAuthored: Tue Oct 27 12:09:10 2015 +0100 Committer: Marcus Eriksson Committed: Tue Oct 27 12:09:10 2015 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 5 + 2 files changed, 6 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b06c637f/CHANGES.txt -- diff --cc CHANGES.txt index ed28f2e,2ca3b43..24862b0 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,15 -1,12 +1,16 @@@ -2.1.12 +2.2.4 + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) +Merged from 2.1: + * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) - * Fix paging issues with partitions containing only static columns data - (CASSANDRA-10381) + * Fix paging issues with partitions containing only static columns data (CASSANDRA-10381) * Fix conditions on static columns (CASSANDRA-10264) * AssertionError: attempted to delete non-existing file CommitLog (CASSANDRA-10377) - * Merge range tombstones during compaction (CASSANDRA-7953) * (cqlsh) Distinguish negative and positive infinity in output (CASSANDRA-10523) * (cqlsh) allow custom time_format for COPY TO (CASSANDRA-8970) * Don't allow startup if the node's rack has changed (CASSANDRA-10242) http://git-wip-us.apache.org/repos/asf/cassandra/blob/b06c637f/src/java/org/apache/cassandra/db/ColumnFamilyStore.java --
[1/3] cassandra git commit: Don't try to get ancestors from half-renamed sstables
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 609497471 -> 95e16005e Don't try to get ancestors from half-renamed sstables Patch by marcuse; reviewed by yukim for CASSANDRA-10501 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/87f43ac5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/87f43ac5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/87f43ac5 Branch: refs/heads/cassandra-3.0 Commit: 87f43ac51de7f34c2e65c5bb2e65d82393ea9442 Parents: 17082d4 Author: Marcus Eriksson <marc...@apache.org> Authored: Fri Oct 23 08:56:08 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Tue Oct 27 12:06:22 2015 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 5 + 2 files changed, 6 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/87f43ac5/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index d06345e..2ca3b43 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) * Fix paging issues with partitions containing only static columns data http://git-wip-us.apache.org/repos/asf/cassandra/blob/87f43ac5/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 ffaa276..906e18c 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -646,6 +646,11 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean Set completedAncestors = new HashSet<>(); for (Map.Entry<Descriptor, Set> sstableFiles : directories.sstableLister().skipTemporary(true).list().entrySet()) { +// we rename the Data component last - if it does not exist as a final file, we should ignore this sstable and +// it will be removed during startup +if (!sstableFiles.getValue().contains(Component.DATA)) +continue; + Descriptor desc = sstableFiles.getKey(); Set ancestors;
[2/4] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' 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/b06c637f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b06c637f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b06c637f Branch: refs/heads/trunk Commit: b06c637f11b0ef8e0063b806199c6c59f55358b6 Parents: 32f22a4 87f43ac Author: Marcus ErikssonAuthored: Tue Oct 27 12:09:10 2015 +0100 Committer: Marcus Eriksson Committed: Tue Oct 27 12:09:10 2015 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 5 + 2 files changed, 6 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b06c637f/CHANGES.txt -- diff --cc CHANGES.txt index ed28f2e,2ca3b43..24862b0 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,15 -1,12 +1,16 @@@ -2.1.12 +2.2.4 + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) +Merged from 2.1: + * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) - * Fix paging issues with partitions containing only static columns data - (CASSANDRA-10381) + * Fix paging issues with partitions containing only static columns data (CASSANDRA-10381) * Fix conditions on static columns (CASSANDRA-10264) * AssertionError: attempted to delete non-existing file CommitLog (CASSANDRA-10377) - * Merge range tombstones during compaction (CASSANDRA-7953) * (cqlsh) Distinguish negative and positive infinity in output (CASSANDRA-10523) * (cqlsh) allow custom time_format for COPY TO (CASSANDRA-8970) * Don't allow startup if the node's rack has changed (CASSANDRA-10242) http://git-wip-us.apache.org/repos/asf/cassandra/blob/b06c637f/src/java/org/apache/cassandra/db/ColumnFamilyStore.java --
[3/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/95e16005 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/95e16005 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/95e16005 Branch: refs/heads/cassandra-3.0 Commit: 95e16005e8e02f24f3aa8681cbdc4b647dfa4be2 Parents: 6094974 b06c637 Author: Marcus ErikssonAuthored: Tue Oct 27 12:10:31 2015 +0100 Committer: Marcus Eriksson Committed: Tue Oct 27 12:10:31 2015 +0100 -- --
[3/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/95e16005 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/95e16005 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/95e16005 Branch: refs/heads/trunk Commit: 95e16005e8e02f24f3aa8681cbdc4b647dfa4be2 Parents: 6094974 b06c637 Author: Marcus ErikssonAuthored: Tue Oct 27 12:10:31 2015 +0100 Committer: Marcus Eriksson Committed: Tue Oct 27 12:10:31 2015 +0100 -- --
[1/2] cassandra git commit: Don't try to get ancestors from half-renamed sstables
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 32f22a4e3 -> b06c637f1 Don't try to get ancestors from half-renamed sstables Patch by marcuse; reviewed by yukim for CASSANDRA-10501 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/87f43ac5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/87f43ac5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/87f43ac5 Branch: refs/heads/cassandra-2.2 Commit: 87f43ac51de7f34c2e65c5bb2e65d82393ea9442 Parents: 17082d4 Author: Marcus Eriksson <marc...@apache.org> Authored: Fri Oct 23 08:56:08 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Tue Oct 27 12:06:22 2015 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 5 + 2 files changed, 6 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/87f43ac5/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index d06345e..2ca3b43 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) * Fix paging issues with partitions containing only static columns data http://git-wip-us.apache.org/repos/asf/cassandra/blob/87f43ac5/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 ffaa276..906e18c 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -646,6 +646,11 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean Set completedAncestors = new HashSet<>(); for (Map.Entry<Descriptor, Set> sstableFiles : directories.sstableLister().skipTemporary(true).list().entrySet()) { +// we rename the Data component last - if it does not exist as a final file, we should ignore this sstable and +// it will be removed during startup +if (!sstableFiles.getValue().contains(Component.DATA)) +continue; + Descriptor desc = sstableFiles.getKey(); Set ancestors;
[2/2] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' 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/b06c637f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b06c637f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b06c637f Branch: refs/heads/cassandra-2.2 Commit: b06c637f11b0ef8e0063b806199c6c59f55358b6 Parents: 32f22a4 87f43ac Author: Marcus ErikssonAuthored: Tue Oct 27 12:09:10 2015 +0100 Committer: Marcus Eriksson Committed: Tue Oct 27 12:09:10 2015 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 5 + 2 files changed, 6 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b06c637f/CHANGES.txt -- diff --cc CHANGES.txt index ed28f2e,2ca3b43..24862b0 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,15 -1,12 +1,16 @@@ -2.1.12 +2.2.4 + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) +Merged from 2.1: + * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) - * Fix paging issues with partitions containing only static columns data - (CASSANDRA-10381) + * Fix paging issues with partitions containing only static columns data (CASSANDRA-10381) * Fix conditions on static columns (CASSANDRA-10264) * AssertionError: attempted to delete non-existing file CommitLog (CASSANDRA-10377) - * Merge range tombstones during compaction (CASSANDRA-7953) * (cqlsh) Distinguish negative and positive infinity in output (CASSANDRA-10523) * (cqlsh) allow custom time_format for COPY TO (CASSANDRA-8970) * Don't allow startup if the node's rack has changed (CASSANDRA-10242) http://git-wip-us.apache.org/repos/asf/cassandra/blob/b06c637f/src/java/org/apache/cassandra/db/ColumnFamilyStore.java --
[4/4] cassandra git commit: Merge branch 'cassandra-3.0' into trunk
Merge branch 'cassandra-3.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/15f17adf Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/15f17adf Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/15f17adf Branch: refs/heads/trunk Commit: 15f17adf8ad202c80524a4c14f71550ef9fcbeb2 Parents: 928e4c2 95e1600 Author: Marcus ErikssonAuthored: Tue Oct 27 12:10:37 2015 +0100 Committer: Marcus Eriksson Committed: Tue Oct 27 12:10:37 2015 +0100 -- --
cassandra git commit: Don't try to get ancestors from half-renamed sstables
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 17082d4b5 -> 87f43ac51 Don't try to get ancestors from half-renamed sstables Patch by marcuse; reviewed by yukim for CASSANDRA-10501 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/87f43ac5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/87f43ac5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/87f43ac5 Branch: refs/heads/cassandra-2.1 Commit: 87f43ac51de7f34c2e65c5bb2e65d82393ea9442 Parents: 17082d4 Author: Marcus Eriksson <marc...@apache.org> Authored: Fri Oct 23 08:56:08 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Tue Oct 27 12:06:22 2015 +0100 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 5 + 2 files changed, 6 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/87f43ac5/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index d06345e..2ca3b43 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) * Fix paging issues with partitions containing only static columns data http://git-wip-us.apache.org/repos/asf/cassandra/blob/87f43ac5/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 ffaa276..906e18c 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -646,6 +646,11 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean Set completedAncestors = new HashSet<>(); for (Map.Entry<Descriptor, Set> sstableFiles : directories.sstableLister().skipTemporary(true).list().entrySet()) { +// we rename the Data component last - if it does not exist as a final file, we should ignore this sstable and +// it will be removed during startup +if (!sstableFiles.getValue().contains(Component.DATA)) +continue; + Descriptor desc = sstableFiles.getKey(); Set ancestors;
cassandra git commit: Do size tiered compaction in date tiered compaction windows
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 78810f255 -> cedcf07c5 Do size tiered compaction in date tiered compaction windows Patch by marcuse; reviewed by Jeff Jirsa for CASSANDRA-10276 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cedcf07c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cedcf07c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cedcf07c Branch: refs/heads/cassandra-2.1 Commit: cedcf07c542235815c023b66f151ad8c7aa9ba9a Parents: 78810f2 Author: Marcus Eriksson <marc...@apache.org> Authored: Mon Sep 7 10:39:15 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Wed Oct 28 08:40:12 2015 +0100 -- CHANGES.txt | 1 + .../DateTieredCompactionStrategy.java | 46 ++-- .../DateTieredCompactionStrategyTest.java | 57 ++-- 3 files changed, 72 insertions(+), 32 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cedcf07c/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 2ca3b43..5b46eac 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Do STCS in DTCS windows (CASSANDRA-10276) * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) http://git-wip-us.apache.org/repos/asf/cassandra/blob/cedcf07c/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java index a8e2aff..ece596f 100644 --- a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java @@ -18,7 +18,6 @@ package org.apache.cassandra.db.compaction; import java.util.*; -import java.util.concurrent.TimeUnit; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Predicate; @@ -40,6 +39,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy protected volatile int estimatedRemainingTasks; private final Set sstables = new HashSet<>(); private long lastExpiredCheck; +private final SizeTieredCompactionStrategyOptions stcsOptions; public DateTieredCompactionStrategy(ColumnFamilyStore cfs, Map<String, String> options) { @@ -54,6 +54,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy else logger.debug("Enabling tombstone compactions for DTCS"); +this.stcsOptions = new SizeTieredCompactionStrategyOptions(options); } @Override @@ -137,7 +138,8 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy cfs.getMinimumCompactionThreshold(), cfs.getMaximumCompactionThreshold(), now, - options.baseTime); + options.baseTime, + stcsOptions); if (!mostInteresting.isEmpty()) return mostInteresting; return null; @@ -328,7 +330,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy for (List bucket : tasks) { if (bucket.size() >= cfs.getMinimumCompactionThreshold()) -n += Math.ceil((double)bucket.size() / cfs.getMaximumCompactionThreshold()); +n += getSTCSBuckets(bucket, stcsOptions).size(); } estimatedRemainingTasks = n; } @@ -341,7 +343,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy * @return a bucket (list) of sstables to compact. */ @VisibleForTesting -static List newestBucket(List<List> buckets, int minThreshold, int maxThreshold, long now, long baseTime) +static List newestBucket(List<List> buckets, int minThreshold, int maxThreshold, long now, long baseTime, SizeTieredCompactionStrategyOptions stcsOptions) { // If the "incoming window" has at least minThreshold SSTables, choose that one. // For any o
[2/2] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' 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/5a356a70 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5a356a70 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5a356a70 Branch: refs/heads/cassandra-2.2 Commit: 5a356a70631d50cbab0f01dbfea868f26af66582 Parents: 40cef77 cedcf07 Author: Marcus ErikssonAuthored: Wed Oct 28 08:43:10 2015 +0100 Committer: Marcus Eriksson Committed: Wed Oct 28 08:50:44 2015 +0100 -- CHANGES.txt | 1 + .../DateTieredCompactionStrategy.java | 46 ++-- .../DateTieredCompactionStrategyTest.java | 57 ++-- 3 files changed, 72 insertions(+), 32 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a356a70/CHANGES.txt -- diff --cc CHANGES.txt index 24862b0,5b46eac..9021e9d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,10 -1,5 +1,11 @@@ -2.1.12 +2.2.4 + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) +Merged from 2.1: + * Do STCS in DTCS windows (CASSANDRA-10276) * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a356a70/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java -- diff --cc src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java index da2d35d,ece596f..fe8f135 --- a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java @@@ -50,11 -49,12 +50,12 @@@ public class DateTieredCompactionStrate if (!options.containsKey(AbstractCompactionStrategy.TOMBSTONE_COMPACTION_INTERVAL_OPTION) && !options.containsKey(AbstractCompactionStrategy.TOMBSTONE_THRESHOLD_OPTION)) { disableTombstoneCompactions = true; -logger.debug("Disabling tombstone compactions for DTCS"); +logger.trace("Disabling tombstone compactions for DTCS"); } else -logger.debug("Enabling tombstone compactions for DTCS"); +logger.trace("Enabling tombstone compactions for DTCS"); + this.stcsOptions = new SizeTieredCompactionStrategyOptions(options); } @Override @@@ -372,14 -379,13 +382,14 @@@ } @Override -public synchronized Collection getMaximalTask(int gcBefore) +@SuppressWarnings("resource") +public synchronized Collection getMaximalTask(int gcBefore, boolean splitOutput) { -Iterable sstables = cfs.markAllCompacting(); -if (sstables == null) +LifecycleTransaction modifier = cfs.markAllCompacting(OperationType.COMPACTION); +if (modifier == null) return null; - return Arrays.asList(new CompactionTask(cfs, modifier, gcBefore, false)); -return Collections.singleton(new CompactionTask(cfs, sstables, gcBefore, false)); ++return Collections.singleton(new CompactionTask(cfs, modifier, gcBefore, false)); } @Override http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a356a70/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java -- diff --cc test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java index 0159c83,368101d..2824d3a --- a/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java +++ b/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java @@@ -325,10 -301,50 +312,50 @@@ public class DateTieredCompactionStrate Thread.sleep(2000); AbstractCompactionTask t = dtcs.getNextBackgroundTask((int) (System.currentTimeMillis()/1000)); assertNotNull(t); -assertEquals(1, Iterables.size(t.sstables)); -SSTableReader sstable = t.sstables.iterator().next(); +assertEquals(1, Iterables.size(t.transaction.originals())); +SSTableReader sstable = t.transaction.originals().iterator().next(); assertEquals(sstable, expiredSSTable); -
[4/4] cassandra git commit: Merge branch 'cassandra-3.0' into trunk
Merge branch 'cassandra-3.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5995de3b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5995de3b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5995de3b Branch: refs/heads/trunk Commit: 5995de3b638fdd898ddfb94c3e8d2bf3ed3cf657 Parents: 7cedeca 27ca491 Author: Marcus ErikssonAuthored: Wed Oct 28 09:06:01 2015 +0100 Committer: Marcus Eriksson Committed: Wed Oct 28 09:06:01 2015 +0100 -- CHANGES.txt | 1 + .../DateTieredCompactionStrategy.java | 46 +++- .../DateTieredCompactionStrategyTest.java | 73 ++-- 3 files changed, 82 insertions(+), 38 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5995de3b/CHANGES.txt --
[1/2] cassandra git commit: Do size tiered compaction in date tiered compaction windows
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 40cef770d -> 5a356a706 Do size tiered compaction in date tiered compaction windows Patch by marcuse; reviewed by Jeff Jirsa for CASSANDRA-10276 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cedcf07c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cedcf07c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cedcf07c Branch: refs/heads/cassandra-2.2 Commit: cedcf07c542235815c023b66f151ad8c7aa9ba9a Parents: 78810f2 Author: Marcus Eriksson <marc...@apache.org> Authored: Mon Sep 7 10:39:15 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Wed Oct 28 08:40:12 2015 +0100 -- CHANGES.txt | 1 + .../DateTieredCompactionStrategy.java | 46 ++-- .../DateTieredCompactionStrategyTest.java | 57 ++-- 3 files changed, 72 insertions(+), 32 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cedcf07c/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 2ca3b43..5b46eac 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Do STCS in DTCS windows (CASSANDRA-10276) * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) http://git-wip-us.apache.org/repos/asf/cassandra/blob/cedcf07c/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java index a8e2aff..ece596f 100644 --- a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java @@ -18,7 +18,6 @@ package org.apache.cassandra.db.compaction; import java.util.*; -import java.util.concurrent.TimeUnit; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Predicate; @@ -40,6 +39,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy protected volatile int estimatedRemainingTasks; private final Set sstables = new HashSet<>(); private long lastExpiredCheck; +private final SizeTieredCompactionStrategyOptions stcsOptions; public DateTieredCompactionStrategy(ColumnFamilyStore cfs, Map<String, String> options) { @@ -54,6 +54,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy else logger.debug("Enabling tombstone compactions for DTCS"); +this.stcsOptions = new SizeTieredCompactionStrategyOptions(options); } @Override @@ -137,7 +138,8 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy cfs.getMinimumCompactionThreshold(), cfs.getMaximumCompactionThreshold(), now, - options.baseTime); + options.baseTime, + stcsOptions); if (!mostInteresting.isEmpty()) return mostInteresting; return null; @@ -328,7 +330,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy for (List bucket : tasks) { if (bucket.size() >= cfs.getMinimumCompactionThreshold()) -n += Math.ceil((double)bucket.size() / cfs.getMaximumCompactionThreshold()); +n += getSTCSBuckets(bucket, stcsOptions).size(); } estimatedRemainingTasks = n; } @@ -341,7 +343,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy * @return a bucket (list) of sstables to compact. */ @VisibleForTesting -static List newestBucket(List<List> buckets, int minThreshold, int maxThreshold, long now, long baseTime) +static List newestBucket(List<List> buckets, int minThreshold, int maxThreshold, long now, long baseTime, SizeTieredCompactionStrategyOptions stcsOptions) { // If the "incoming window" has at least minThreshold SSTables, choose that one. // For any o
[2/3] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' 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/5a356a70 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5a356a70 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5a356a70 Branch: refs/heads/cassandra-3.0 Commit: 5a356a70631d50cbab0f01dbfea868f26af66582 Parents: 40cef77 cedcf07 Author: Marcus ErikssonAuthored: Wed Oct 28 08:43:10 2015 +0100 Committer: Marcus Eriksson Committed: Wed Oct 28 08:50:44 2015 +0100 -- CHANGES.txt | 1 + .../DateTieredCompactionStrategy.java | 46 ++-- .../DateTieredCompactionStrategyTest.java | 57 ++-- 3 files changed, 72 insertions(+), 32 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a356a70/CHANGES.txt -- diff --cc CHANGES.txt index 24862b0,5b46eac..9021e9d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,10 -1,5 +1,11 @@@ -2.1.12 +2.2.4 + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) +Merged from 2.1: + * Do STCS in DTCS windows (CASSANDRA-10276) * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a356a70/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java -- diff --cc src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java index da2d35d,ece596f..fe8f135 --- a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java @@@ -50,11 -49,12 +50,12 @@@ public class DateTieredCompactionStrate if (!options.containsKey(AbstractCompactionStrategy.TOMBSTONE_COMPACTION_INTERVAL_OPTION) && !options.containsKey(AbstractCompactionStrategy.TOMBSTONE_THRESHOLD_OPTION)) { disableTombstoneCompactions = true; -logger.debug("Disabling tombstone compactions for DTCS"); +logger.trace("Disabling tombstone compactions for DTCS"); } else -logger.debug("Enabling tombstone compactions for DTCS"); +logger.trace("Enabling tombstone compactions for DTCS"); + this.stcsOptions = new SizeTieredCompactionStrategyOptions(options); } @Override @@@ -372,14 -379,13 +382,14 @@@ } @Override -public synchronized Collection getMaximalTask(int gcBefore) +@SuppressWarnings("resource") +public synchronized Collection getMaximalTask(int gcBefore, boolean splitOutput) { -Iterable sstables = cfs.markAllCompacting(); -if (sstables == null) +LifecycleTransaction modifier = cfs.markAllCompacting(OperationType.COMPACTION); +if (modifier == null) return null; - return Arrays.asList(new CompactionTask(cfs, modifier, gcBefore, false)); -return Collections.singleton(new CompactionTask(cfs, sstables, gcBefore, false)); ++return Collections.singleton(new CompactionTask(cfs, modifier, gcBefore, false)); } @Override http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a356a70/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java -- diff --cc test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java index 0159c83,368101d..2824d3a --- a/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java +++ b/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java @@@ -325,10 -301,50 +312,50 @@@ public class DateTieredCompactionStrate Thread.sleep(2000); AbstractCompactionTask t = dtcs.getNextBackgroundTask((int) (System.currentTimeMillis()/1000)); assertNotNull(t); -assertEquals(1, Iterables.size(t.sstables)); -SSTableReader sstable = t.sstables.iterator().next(); +assertEquals(1, Iterables.size(t.transaction.originals())); +SSTableReader sstable = t.transaction.originals().iterator().next(); assertEquals(sstable, expiredSSTable); -
[3/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/27ca4915 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/27ca4915 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/27ca4915 Branch: refs/heads/cassandra-3.0 Commit: 27ca4915e9a08c9582ebf077f2cc66821494f0b9 Parents: d856d3d 5a356a7 Author: Marcus ErikssonAuthored: Wed Oct 28 09:04:30 2015 +0100 Committer: Marcus Eriksson Committed: Wed Oct 28 09:04:30 2015 +0100 -- CHANGES.txt | 1 + .../DateTieredCompactionStrategy.java | 46 +++- .../DateTieredCompactionStrategyTest.java | 73 ++-- 3 files changed, 82 insertions(+), 38 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/27ca4915/CHANGES.txt -- diff --cc CHANGES.txt index f8dffb0,9021e9d..9b81b6e --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,12 +1,18 @@@ -2.2.4 +3.0 + * Fix batches on multiple tables (CASSANDRA-10554) + * Ensure compaction options are validated when updating KeyspaceMetadata (CASSANDRA-10569) + * Flatten Iterator Transformation Hierarchy (CASSANDRA-9975) + * Remove token generator (CASSANDRA-5261) + * RolesCache should not be created for any authenticator that does not requireAuthentication (CASSANDRA-10562) + * Fix LogTransaction checking only a single directory for files (CASSANDRA-10421) + * Support encrypted and plain traffic on the same port (CASSANDRA-10559) + * Fix handling of range tombstones when reading old format sstables (CASSANDRA-10360) + * Aggregate with Initial Condition fails with C* 3.0 (CASSANDRA-10367) +Merged from 2.2: * Expose phi values from failure detector via JMX and tweak debug and trace logging (CASSANDRA-9526) - * Fix RangeNamesQueryPager (CASSANDRA-10509) - * Deprecate Pig support (CASSANDRA-10542) - * Reduce contention getting instances of CompositeType (CASSANDRA-10433) Merged from 2.1: + * Do STCS in DTCS windows (CASSANDRA-10276) - * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) * Fix paging issues with partitions containing only static columns data (CASSANDRA-10381) http://git-wip-us.apache.org/repos/asf/cassandra/blob/27ca4915/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java -- diff --cc src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java index cfb0079,fe8f135..65fec2b --- a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java @@@ -380,7 -389,7 +390,7 @@@ public class DateTieredCompactionStrate if (modifier == null) return null; - return Arrays.asList(new CompactionTask(cfs, modifier, gcBefore)); -return Collections.singleton(new CompactionTask(cfs, modifier, gcBefore, false)); ++return Collections.singleton(new CompactionTask(cfs, modifier, gcBefore)); } @Override @@@ -428,9 -437,11 +438,11 @@@ Map uncheckedOptions = AbstractCompactionStrategy.validateOptions(options); uncheckedOptions = DateTieredCompactionStrategyOptions.validateOptions(options, uncheckedOptions); -uncheckedOptions.remove(CFPropDefs.KW_MINCOMPACTIONTHRESHOLD); -uncheckedOptions.remove(CFPropDefs.KW_MAXCOMPACTIONTHRESHOLD); + uncheckedOptions.remove(CompactionParams.Option.MIN_THRESHOLD.toString()); + uncheckedOptions.remove(CompactionParams.Option.MAX_THRESHOLD.toString()); + uncheckedOptions = SizeTieredCompactionStrategyOptions.validateOptions(options, uncheckedOptions); + return uncheckedOptions; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/27ca4915/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java -- diff --cc test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java index 003a1cf,2824d3a..01a6dfa --- a/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java +++ b/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java @@@ -32,10 -32,11 +32,11 @@@ import org.apache.cassandra.Util import org.apache.cassandra.db.ColumnFamilyStore; import
[2/4] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' 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/5a356a70 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5a356a70 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5a356a70 Branch: refs/heads/trunk Commit: 5a356a70631d50cbab0f01dbfea868f26af66582 Parents: 40cef77 cedcf07 Author: Marcus ErikssonAuthored: Wed Oct 28 08:43:10 2015 +0100 Committer: Marcus Eriksson Committed: Wed Oct 28 08:50:44 2015 +0100 -- CHANGES.txt | 1 + .../DateTieredCompactionStrategy.java | 46 ++-- .../DateTieredCompactionStrategyTest.java | 57 ++-- 3 files changed, 72 insertions(+), 32 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a356a70/CHANGES.txt -- diff --cc CHANGES.txt index 24862b0,5b46eac..9021e9d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,10 -1,5 +1,11 @@@ -2.1.12 +2.2.4 + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) +Merged from 2.1: + * Do STCS in DTCS windows (CASSANDRA-10276) * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a356a70/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java -- diff --cc src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java index da2d35d,ece596f..fe8f135 --- a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java @@@ -50,11 -49,12 +50,12 @@@ public class DateTieredCompactionStrate if (!options.containsKey(AbstractCompactionStrategy.TOMBSTONE_COMPACTION_INTERVAL_OPTION) && !options.containsKey(AbstractCompactionStrategy.TOMBSTONE_THRESHOLD_OPTION)) { disableTombstoneCompactions = true; -logger.debug("Disabling tombstone compactions for DTCS"); +logger.trace("Disabling tombstone compactions for DTCS"); } else -logger.debug("Enabling tombstone compactions for DTCS"); +logger.trace("Enabling tombstone compactions for DTCS"); + this.stcsOptions = new SizeTieredCompactionStrategyOptions(options); } @Override @@@ -372,14 -379,13 +382,14 @@@ } @Override -public synchronized Collection getMaximalTask(int gcBefore) +@SuppressWarnings("resource") +public synchronized Collection getMaximalTask(int gcBefore, boolean splitOutput) { -Iterable sstables = cfs.markAllCompacting(); -if (sstables == null) +LifecycleTransaction modifier = cfs.markAllCompacting(OperationType.COMPACTION); +if (modifier == null) return null; - return Arrays.asList(new CompactionTask(cfs, modifier, gcBefore, false)); -return Collections.singleton(new CompactionTask(cfs, sstables, gcBefore, false)); ++return Collections.singleton(new CompactionTask(cfs, modifier, gcBefore, false)); } @Override http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a356a70/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java -- diff --cc test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java index 0159c83,368101d..2824d3a --- a/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java +++ b/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java @@@ -325,10 -301,50 +312,50 @@@ public class DateTieredCompactionStrate Thread.sleep(2000); AbstractCompactionTask t = dtcs.getNextBackgroundTask((int) (System.currentTimeMillis()/1000)); assertNotNull(t); -assertEquals(1, Iterables.size(t.sstables)); -SSTableReader sstable = t.sstables.iterator().next(); +assertEquals(1, Iterables.size(t.transaction.originals())); +SSTableReader sstable = t.transaction.originals().iterator().next(); assertEquals(sstable, expiredSSTable); -
[1/3] cassandra git commit: Do size tiered compaction in date tiered compaction windows
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 d856d3d7b -> 27ca4915e Do size tiered compaction in date tiered compaction windows Patch by marcuse; reviewed by Jeff Jirsa for CASSANDRA-10276 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cedcf07c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cedcf07c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cedcf07c Branch: refs/heads/cassandra-3.0 Commit: cedcf07c542235815c023b66f151ad8c7aa9ba9a Parents: 78810f2 Author: Marcus Eriksson <marc...@apache.org> Authored: Mon Sep 7 10:39:15 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Wed Oct 28 08:40:12 2015 +0100 -- CHANGES.txt | 1 + .../DateTieredCompactionStrategy.java | 46 ++-- .../DateTieredCompactionStrategyTest.java | 57 ++-- 3 files changed, 72 insertions(+), 32 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cedcf07c/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 2ca3b43..5b46eac 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Do STCS in DTCS windows (CASSANDRA-10276) * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) http://git-wip-us.apache.org/repos/asf/cassandra/blob/cedcf07c/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java index a8e2aff..ece596f 100644 --- a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java @@ -18,7 +18,6 @@ package org.apache.cassandra.db.compaction; import java.util.*; -import java.util.concurrent.TimeUnit; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Predicate; @@ -40,6 +39,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy protected volatile int estimatedRemainingTasks; private final Set sstables = new HashSet<>(); private long lastExpiredCheck; +private final SizeTieredCompactionStrategyOptions stcsOptions; public DateTieredCompactionStrategy(ColumnFamilyStore cfs, Map<String, String> options) { @@ -54,6 +54,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy else logger.debug("Enabling tombstone compactions for DTCS"); +this.stcsOptions = new SizeTieredCompactionStrategyOptions(options); } @Override @@ -137,7 +138,8 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy cfs.getMinimumCompactionThreshold(), cfs.getMaximumCompactionThreshold(), now, - options.baseTime); + options.baseTime, + stcsOptions); if (!mostInteresting.isEmpty()) return mostInteresting; return null; @@ -328,7 +330,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy for (List bucket : tasks) { if (bucket.size() >= cfs.getMinimumCompactionThreshold()) -n += Math.ceil((double)bucket.size() / cfs.getMaximumCompactionThreshold()); +n += getSTCSBuckets(bucket, stcsOptions).size(); } estimatedRemainingTasks = n; } @@ -341,7 +343,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy * @return a bucket (list) of sstables to compact. */ @VisibleForTesting -static List newestBucket(List<List> buckets, int minThreshold, int maxThreshold, long now, long baseTime) +static List newestBucket(List<List> buckets, int minThreshold, int maxThreshold, long now, long baseTime, SizeTieredCompactionStrategyOptions stcsOptions) { // If the "incoming window" has at least minThreshold SSTables, choose that one. // For any o
[3/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/27ca4915 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/27ca4915 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/27ca4915 Branch: refs/heads/trunk Commit: 27ca4915e9a08c9582ebf077f2cc66821494f0b9 Parents: d856d3d 5a356a7 Author: Marcus ErikssonAuthored: Wed Oct 28 09:04:30 2015 +0100 Committer: Marcus Eriksson Committed: Wed Oct 28 09:04:30 2015 +0100 -- CHANGES.txt | 1 + .../DateTieredCompactionStrategy.java | 46 +++- .../DateTieredCompactionStrategyTest.java | 73 ++-- 3 files changed, 82 insertions(+), 38 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/27ca4915/CHANGES.txt -- diff --cc CHANGES.txt index f8dffb0,9021e9d..9b81b6e --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,12 +1,18 @@@ -2.2.4 +3.0 + * Fix batches on multiple tables (CASSANDRA-10554) + * Ensure compaction options are validated when updating KeyspaceMetadata (CASSANDRA-10569) + * Flatten Iterator Transformation Hierarchy (CASSANDRA-9975) + * Remove token generator (CASSANDRA-5261) + * RolesCache should not be created for any authenticator that does not requireAuthentication (CASSANDRA-10562) + * Fix LogTransaction checking only a single directory for files (CASSANDRA-10421) + * Support encrypted and plain traffic on the same port (CASSANDRA-10559) + * Fix handling of range tombstones when reading old format sstables (CASSANDRA-10360) + * Aggregate with Initial Condition fails with C* 3.0 (CASSANDRA-10367) +Merged from 2.2: * Expose phi values from failure detector via JMX and tweak debug and trace logging (CASSANDRA-9526) - * Fix RangeNamesQueryPager (CASSANDRA-10509) - * Deprecate Pig support (CASSANDRA-10542) - * Reduce contention getting instances of CompositeType (CASSANDRA-10433) Merged from 2.1: + * Do STCS in DTCS windows (CASSANDRA-10276) - * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) * Fix paging issues with partitions containing only static columns data (CASSANDRA-10381) http://git-wip-us.apache.org/repos/asf/cassandra/blob/27ca4915/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java -- diff --cc src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java index cfb0079,fe8f135..65fec2b --- a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java @@@ -380,7 -389,7 +390,7 @@@ public class DateTieredCompactionStrate if (modifier == null) return null; - return Arrays.asList(new CompactionTask(cfs, modifier, gcBefore)); -return Collections.singleton(new CompactionTask(cfs, modifier, gcBefore, false)); ++return Collections.singleton(new CompactionTask(cfs, modifier, gcBefore)); } @Override @@@ -428,9 -437,11 +438,11 @@@ Map uncheckedOptions = AbstractCompactionStrategy.validateOptions(options); uncheckedOptions = DateTieredCompactionStrategyOptions.validateOptions(options, uncheckedOptions); -uncheckedOptions.remove(CFPropDefs.KW_MINCOMPACTIONTHRESHOLD); -uncheckedOptions.remove(CFPropDefs.KW_MAXCOMPACTIONTHRESHOLD); + uncheckedOptions.remove(CompactionParams.Option.MIN_THRESHOLD.toString()); + uncheckedOptions.remove(CompactionParams.Option.MAX_THRESHOLD.toString()); + uncheckedOptions = SizeTieredCompactionStrategyOptions.validateOptions(options, uncheckedOptions); + return uncheckedOptions; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/27ca4915/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java -- diff --cc test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java index 003a1cf,2824d3a..01a6dfa --- a/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java +++ b/test/unit/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyTest.java @@@ -32,10 -32,11 +32,11 @@@ import org.apache.cassandra.Util import org.apache.cassandra.db.ColumnFamilyStore; import org.apache.cassandra.db.DecoratedKey;
[1/4] cassandra git commit: Do size tiered compaction in date tiered compaction windows
Repository: cassandra Updated Branches: refs/heads/trunk 7cedeca9a -> 5995de3b6 Do size tiered compaction in date tiered compaction windows Patch by marcuse; reviewed by Jeff Jirsa for CASSANDRA-10276 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cedcf07c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cedcf07c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cedcf07c Branch: refs/heads/trunk Commit: cedcf07c542235815c023b66f151ad8c7aa9ba9a Parents: 78810f2 Author: Marcus Eriksson <marc...@apache.org> Authored: Mon Sep 7 10:39:15 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Wed Oct 28 08:40:12 2015 +0100 -- CHANGES.txt | 1 + .../DateTieredCompactionStrategy.java | 46 ++-- .../DateTieredCompactionStrategyTest.java | 57 ++-- 3 files changed, 72 insertions(+), 32 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cedcf07c/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 2ca3b43..5b46eac 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Do STCS in DTCS windows (CASSANDRA-10276) * Don't try to get ancestors from half-renamed sstables (CASSANDRA-10501) * Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251) * Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550) http://git-wip-us.apache.org/repos/asf/cassandra/blob/cedcf07c/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java index a8e2aff..ece596f 100644 --- a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java @@ -18,7 +18,6 @@ package org.apache.cassandra.db.compaction; import java.util.*; -import java.util.concurrent.TimeUnit; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Predicate; @@ -40,6 +39,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy protected volatile int estimatedRemainingTasks; private final Set sstables = new HashSet<>(); private long lastExpiredCheck; +private final SizeTieredCompactionStrategyOptions stcsOptions; public DateTieredCompactionStrategy(ColumnFamilyStore cfs, Map<String, String> options) { @@ -54,6 +54,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy else logger.debug("Enabling tombstone compactions for DTCS"); +this.stcsOptions = new SizeTieredCompactionStrategyOptions(options); } @Override @@ -137,7 +138,8 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy cfs.getMinimumCompactionThreshold(), cfs.getMaximumCompactionThreshold(), now, - options.baseTime); + options.baseTime, + stcsOptions); if (!mostInteresting.isEmpty()) return mostInteresting; return null; @@ -328,7 +330,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy for (List bucket : tasks) { if (bucket.size() >= cfs.getMinimumCompactionThreshold()) -n += Math.ceil((double)bucket.size() / cfs.getMaximumCompactionThreshold()); +n += getSTCSBuckets(bucket, stcsOptions).size(); } estimatedRemainingTasks = n; } @@ -341,7 +343,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy * @return a bucket (list) of sstables to compact. */ @VisibleForTesting -static List newestBucket(List<List> buckets, int minThreshold, int maxThreshold, long now, long baseTime) +static List newestBucket(List<List> buckets, int minThreshold, int maxThreshold, long now, long baseTime, SizeTieredCompactionStrategyOptions stcsOptions) { // If the "incoming window" has at least minThreshold SSTables, choose that one. // For any other bucket, at
[1/3] cassandra git commit: Keep the file open in trySkipCache
Repository: cassandra Updated Branches: refs/heads/trunk 3820e89d9 -> 55811e561 Keep the file open in trySkipCache Patch by marcuse; reviewed by Stefania Alborghetti for CASSANDRA-10669 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/49c9c01f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/49c9c01f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/49c9c01f Branch: refs/heads/trunk Commit: 49c9c01f5b100ca400fb6d3a5b1fab6721c7ee8b Parents: d00fcbc Author: Marcus Eriksson <marc...@apache.org> Authored: Mon Nov 9 11:17:48 2015 +0100 Committer: Marcus Eriksson <marc...@apache.org> Committed: Wed Nov 11 08:52:28 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/io/sstable/SSTableRewriter.java | 5 +--- .../org/apache/cassandra/utils/CLibrary.java| 29 ++-- .../apache/cassandra/utils/CLibraryTest.java| 3 +- 4 files changed, 17 insertions(+), 21 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/49c9c01f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index ef21f9f..d271c95 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.1 + * Keep the file open in trySkipCache (CASSANDRA-10669) * Updated trigger example (CASSANDRA-10257) Merged from 2.2: * (Hadoop) fix splits calculation (CASSANDRA-10640) http://git-wip-us.apache.org/repos/asf/cassandra/blob/49c9c01f/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java index f3885de..3632a60 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java @@ -59,7 +59,6 @@ public class SSTableRewriter extends Transactional.AbstractTransactional impleme // the set of final readers we will expose on commit private final LifecycleTransaction transaction; // the readers we are rewriting (updated as they are replaced) private final List preparedForCommit = new ArrayList<>(); -private final Map<Descriptor, Integer> fileDescriptors = new HashMap<>(); // the file descriptors for each reader descriptor we are rewriting private long currentlyOpenedEarlyAt; // the position (in MB) in the target file we last (re)opened at @@ -87,8 +86,6 @@ public class SSTableRewriter extends Transactional.AbstractTransactional impleme public SSTableRewriter(LifecycleTransaction transaction, long maxAge, boolean isOffline, long preemptiveOpenInterval, boolean keepOriginals) { this.transaction = transaction; -for (SSTableReader sstable : this.transaction.originals()) -fileDescriptors.put(sstable.descriptor, CLibrary.getfd(sstable.getFilename())); this.maxAge = maxAge; this.isOffline = isOffline; this.keepOriginals = keepOriginals; @@ -160,7 +157,7 @@ public class SSTableRewriter extends Transactional.AbstractTransactional impleme for (SSTableReader reader : transaction.originals()) { RowIndexEntry index = reader.getPosition(key, SSTableReader.Operator.GE); - CLibrary.trySkipCache(fileDescriptors.get(reader.descriptor), 0, index == null ? 0 : index.position, reader.getFilename()); +CLibrary.trySkipCache(reader.getFilename(), 0, index == null ? 0 : index.position); } } else http://git-wip-us.apache.org/repos/asf/cassandra/blob/49c9c01f/src/java/org/apache/cassandra/utils/CLibrary.java -- diff --git a/src/java/org/apache/cassandra/utils/CLibrary.java b/src/java/org/apache/cassandra/utils/CLibrary.java index b4a1193..1235a58 100644 --- a/src/java/org/apache/cassandra/utils/CLibrary.java +++ b/src/java/org/apache/cassandra/utils/CLibrary.java @@ -17,7 +17,9 @@ */ package org.apache.cassandra.utils; +import java.io.File; import java.io.FileDescriptor; +import java.io.FileInputStream; import java.io.IOException; import java.lang.reflect.Field; import java.nio.channels.FileChannel; @@ -148,7 +150,18 @@ public final class CLibrary public static void trySkipCache(String path, long offset, long len) { -trySkipCache(getfd(path), offset, len, path); +File f = new File(path); +if (!f.exists()) +return; + +try (FileInputStream fis = new FileInputStream(f)) +{ +trySkipCache(getfd(fis
[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.1
Merge branch 'cassandra-3.0' into cassandra-3.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6f7b3898 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6f7b3898 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6f7b3898 Branch: refs/heads/cassandra-3.1 Commit: 6f7b38987e45875d6857bc9ec6c72671d22bf82b Parents: 11b073e 49c9c01 Author: Marcus ErikssonAuthored: Wed Nov 11 08:55:34 2015 +0100 Committer: Marcus Eriksson Committed: Wed Nov 11 08:55:34 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/io/sstable/SSTableRewriter.java | 5 +--- .../org/apache/cassandra/utils/CLibrary.java| 29 ++-- .../apache/cassandra/utils/CLibraryTest.java| 3 +- 4 files changed, 17 insertions(+), 21 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6f7b3898/CHANGES.txt -- diff --cc CHANGES.txt index b6ab144,d271c95..5a1e79a --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,5 -1,5 +1,6 @@@ -3.0.1 +3.1 +Merged from 3.0: + * Keep the file open in trySkipCache (CASSANDRA-10669) * Updated trigger example (CASSANDRA-10257) Merged from 2.2: * (Hadoop) fix splits calculation (CASSANDRA-10640)
cassandra git commit: Keep the file open in trySkipCache
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 d00fcbc43 -> 49c9c01f5 Keep the file open in trySkipCache Patch by marcuse; reviewed by Stefania Alborghetti for CASSANDRA-10669 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/49c9c01f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/49c9c01f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/49c9c01f Branch: refs/heads/cassandra-3.0 Commit: 49c9c01f5b100ca400fb6d3a5b1fab6721c7ee8b Parents: d00fcbc Author: Marcus Eriksson <marc...@apache.org> Authored: Mon Nov 9 11:17:48 2015 +0100 Committer: Marcus Eriksson <marc...@apache.org> Committed: Wed Nov 11 08:52:28 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/io/sstable/SSTableRewriter.java | 5 +--- .../org/apache/cassandra/utils/CLibrary.java| 29 ++-- .../apache/cassandra/utils/CLibraryTest.java| 3 +- 4 files changed, 17 insertions(+), 21 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/49c9c01f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index ef21f9f..d271c95 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.1 + * Keep the file open in trySkipCache (CASSANDRA-10669) * Updated trigger example (CASSANDRA-10257) Merged from 2.2: * (Hadoop) fix splits calculation (CASSANDRA-10640) http://git-wip-us.apache.org/repos/asf/cassandra/blob/49c9c01f/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java index f3885de..3632a60 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java @@ -59,7 +59,6 @@ public class SSTableRewriter extends Transactional.AbstractTransactional impleme // the set of final readers we will expose on commit private final LifecycleTransaction transaction; // the readers we are rewriting (updated as they are replaced) private final List preparedForCommit = new ArrayList<>(); -private final Map<Descriptor, Integer> fileDescriptors = new HashMap<>(); // the file descriptors for each reader descriptor we are rewriting private long currentlyOpenedEarlyAt; // the position (in MB) in the target file we last (re)opened at @@ -87,8 +86,6 @@ public class SSTableRewriter extends Transactional.AbstractTransactional impleme public SSTableRewriter(LifecycleTransaction transaction, long maxAge, boolean isOffline, long preemptiveOpenInterval, boolean keepOriginals) { this.transaction = transaction; -for (SSTableReader sstable : this.transaction.originals()) -fileDescriptors.put(sstable.descriptor, CLibrary.getfd(sstable.getFilename())); this.maxAge = maxAge; this.isOffline = isOffline; this.keepOriginals = keepOriginals; @@ -160,7 +157,7 @@ public class SSTableRewriter extends Transactional.AbstractTransactional impleme for (SSTableReader reader : transaction.originals()) { RowIndexEntry index = reader.getPosition(key, SSTableReader.Operator.GE); - CLibrary.trySkipCache(fileDescriptors.get(reader.descriptor), 0, index == null ? 0 : index.position, reader.getFilename()); +CLibrary.trySkipCache(reader.getFilename(), 0, index == null ? 0 : index.position); } } else http://git-wip-us.apache.org/repos/asf/cassandra/blob/49c9c01f/src/java/org/apache/cassandra/utils/CLibrary.java -- diff --git a/src/java/org/apache/cassandra/utils/CLibrary.java b/src/java/org/apache/cassandra/utils/CLibrary.java index b4a1193..1235a58 100644 --- a/src/java/org/apache/cassandra/utils/CLibrary.java +++ b/src/java/org/apache/cassandra/utils/CLibrary.java @@ -17,7 +17,9 @@ */ package org.apache.cassandra.utils; +import java.io.File; import java.io.FileDescriptor; +import java.io.FileInputStream; import java.io.IOException; import java.lang.reflect.Field; import java.nio.channels.FileChannel; @@ -148,7 +150,18 @@ public final class CLibrary public static void trySkipCache(String path, long offset, long len) { -trySkipCache(getfd(path), offset, len, path); +File f = new File(path); +if (!f.exists()) +return; + +try (FileInputStream fis = new FileInputStream(f)) +{ +trySkipCach
[3/3] cassandra git commit: Merge branch 'cassandra-3.1' into trunk
Merge branch 'cassandra-3.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/55811e56 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/55811e56 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/55811e56 Branch: refs/heads/trunk Commit: 55811e561087da01c365aab74eb576cda11bddd7 Parents: 3820e89 6f7b389 Author: Marcus ErikssonAuthored: Wed Nov 11 08:56:12 2015 +0100 Committer: Marcus Eriksson Committed: Wed Nov 11 08:56:12 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/io/sstable/SSTableRewriter.java | 5 +--- .../org/apache/cassandra/utils/CLibrary.java| 29 ++-- .../apache/cassandra/utils/CLibraryTest.java| 3 +- 4 files changed, 17 insertions(+), 21 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/55811e56/CHANGES.txt -- diff --cc CHANGES.txt index 14b3a3f,5a1e79a..8bed34b --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,11 -1,6 +1,12 @@@ +3.2 + * 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) + + 3.1 Merged from 3.0: + * Keep the file open in trySkipCache (CASSANDRA-10669) * Updated trigger example (CASSANDRA-10257) Merged from 2.2: * (Hadoop) fix splits calculation (CASSANDRA-10640)
[1/2] cassandra git commit: Keep the file open in trySkipCache
Repository: cassandra Updated Branches: refs/heads/cassandra-3.1 11b073e63 -> 6f7b38987 Keep the file open in trySkipCache Patch by marcuse; reviewed by Stefania Alborghetti for CASSANDRA-10669 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/49c9c01f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/49c9c01f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/49c9c01f Branch: refs/heads/cassandra-3.1 Commit: 49c9c01f5b100ca400fb6d3a5b1fab6721c7ee8b Parents: d00fcbc Author: Marcus Eriksson <marc...@apache.org> Authored: Mon Nov 9 11:17:48 2015 +0100 Committer: Marcus Eriksson <marc...@apache.org> Committed: Wed Nov 11 08:52:28 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/io/sstable/SSTableRewriter.java | 5 +--- .../org/apache/cassandra/utils/CLibrary.java| 29 ++-- .../apache/cassandra/utils/CLibraryTest.java| 3 +- 4 files changed, 17 insertions(+), 21 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/49c9c01f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index ef21f9f..d271c95 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.1 + * Keep the file open in trySkipCache (CASSANDRA-10669) * Updated trigger example (CASSANDRA-10257) Merged from 2.2: * (Hadoop) fix splits calculation (CASSANDRA-10640) http://git-wip-us.apache.org/repos/asf/cassandra/blob/49c9c01f/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java index f3885de..3632a60 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java @@ -59,7 +59,6 @@ public class SSTableRewriter extends Transactional.AbstractTransactional impleme // the set of final readers we will expose on commit private final LifecycleTransaction transaction; // the readers we are rewriting (updated as they are replaced) private final List preparedForCommit = new ArrayList<>(); -private final Map<Descriptor, Integer> fileDescriptors = new HashMap<>(); // the file descriptors for each reader descriptor we are rewriting private long currentlyOpenedEarlyAt; // the position (in MB) in the target file we last (re)opened at @@ -87,8 +86,6 @@ public class SSTableRewriter extends Transactional.AbstractTransactional impleme public SSTableRewriter(LifecycleTransaction transaction, long maxAge, boolean isOffline, long preemptiveOpenInterval, boolean keepOriginals) { this.transaction = transaction; -for (SSTableReader sstable : this.transaction.originals()) -fileDescriptors.put(sstable.descriptor, CLibrary.getfd(sstable.getFilename())); this.maxAge = maxAge; this.isOffline = isOffline; this.keepOriginals = keepOriginals; @@ -160,7 +157,7 @@ public class SSTableRewriter extends Transactional.AbstractTransactional impleme for (SSTableReader reader : transaction.originals()) { RowIndexEntry index = reader.getPosition(key, SSTableReader.Operator.GE); - CLibrary.trySkipCache(fileDescriptors.get(reader.descriptor), 0, index == null ? 0 : index.position, reader.getFilename()); +CLibrary.trySkipCache(reader.getFilename(), 0, index == null ? 0 : index.position); } } else http://git-wip-us.apache.org/repos/asf/cassandra/blob/49c9c01f/src/java/org/apache/cassandra/utils/CLibrary.java -- diff --git a/src/java/org/apache/cassandra/utils/CLibrary.java b/src/java/org/apache/cassandra/utils/CLibrary.java index b4a1193..1235a58 100644 --- a/src/java/org/apache/cassandra/utils/CLibrary.java +++ b/src/java/org/apache/cassandra/utils/CLibrary.java @@ -17,7 +17,9 @@ */ package org.apache.cassandra.utils; +import java.io.File; import java.io.FileDescriptor; +import java.io.FileInputStream; import java.io.IOException; import java.lang.reflect.Field; import java.nio.channels.FileChannel; @@ -148,7 +150,18 @@ public final class CLibrary public static void trySkipCache(String path, long offset, long len) { -trySkipCache(getfd(path), offset, len, path); +File f = new File(path); +if (!f.exists()) +return; + +try (FileInputStream fis = new FileInputStream(f)) +{ +trySkipCach
[2/3] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.1
Merge branch 'cassandra-3.0' into cassandra-3.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6f7b3898 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6f7b3898 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6f7b3898 Branch: refs/heads/trunk Commit: 6f7b38987e45875d6857bc9ec6c72671d22bf82b Parents: 11b073e 49c9c01 Author: Marcus ErikssonAuthored: Wed Nov 11 08:55:34 2015 +0100 Committer: Marcus Eriksson Committed: Wed Nov 11 08:55:34 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/io/sstable/SSTableRewriter.java | 5 +--- .../org/apache/cassandra/utils/CLibrary.java| 29 ++-- .../apache/cassandra/utils/CLibraryTest.java| 3 +- 4 files changed, 17 insertions(+), 21 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6f7b3898/CHANGES.txt -- diff --cc CHANGES.txt index b6ab144,d271c95..5a1e79a --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,5 -1,5 +1,6 @@@ -3.0.1 +3.1 +Merged from 3.0: + * Keep the file open in trySkipCache (CASSANDRA-10669) * Updated trigger example (CASSANDRA-10257) Merged from 2.2: * (Hadoop) fix splits calculation (CASSANDRA-10640)
cassandra git commit: Skip redundant tombstones on compaction.
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 02f88e38e -> a61fc01f4 Skip redundant tombstones on compaction. Patch by Branimir Lambov; reviewed by marcuse for CASSANDRA-7953 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a61fc01f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a61fc01f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a61fc01f Branch: refs/heads/cassandra-2.1 Commit: a61fc01f418426847e3aad133127da3615813236 Parents: 02f88e3 Author: Branimir Lambov <branimir.lam...@datastax.com> Authored: Wed Oct 7 14:46:24 2015 +0300 Committer: Marcus Eriksson <marc...@apache.org> Committed: Thu Oct 15 15:28:42 2015 +0200 -- CHANGES.txt | 1 + .../org/apache/cassandra/db/ColumnIndex.java| 32 +++-- .../org/apache/cassandra/db/RangeTombstone.java | 135 ++- .../cassandra/cql3/RangeTombstoneMergeTest.java | 125 + 4 files changed, 218 insertions(+), 75 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a61fc01f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index b16acb5..68b44ed 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Merge range tombstones during compaction (CASSANDRA-7953) * (cqlsh) Distinguish negative and positive infinity in output (CASSANDRA-10523) * (cqlsh) allow custom time_format for COPY TO (CASSANDRA-8970) * Don't allow startup if the node's rack has changed (CASSANDRA-10242) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a61fc01f/src/java/org/apache/cassandra/db/ColumnIndex.java -- diff --git a/src/java/org/apache/cassandra/db/ColumnIndex.java b/src/java/org/apache/cassandra/db/ColumnIndex.java index d9d6a9c..0ea5c87 100644 --- a/src/java/org/apache/cassandra/db/ColumnIndex.java +++ b/src/java/org/apache/cassandra/db/ColumnIndex.java @@ -180,14 +180,24 @@ public class ColumnIndex firstColumn = column; startPosition = endPosition; // TODO: have that use the firstColumn as min + make sure we optimize that on read -endPosition += tombstoneTracker.writeOpenedMarker(firstColumn, output, atomSerializer); +endPosition += tombstoneTracker.writeOpenedMarkers(firstColumn.name(), output, atomSerializer); blockSize = 0; // We don't count repeated tombstone marker in the block size, to avoid a situation // where we wouldn't make any progress because a block is filled by said marker + +maybeWriteRowHeader(); } -long size = atomSerializer.serializedSizeForSSTable(column); -endPosition += size; -blockSize += size; +if (tombstoneTracker.update(column, false)) +{ +long size = tombstoneTracker.writeUnwrittenTombstones(output, atomSerializer); +size += atomSerializer.serializedSizeForSSTable(column); +endPosition += size; +blockSize += size; + +atomSerializer.serializeForSSTable(column, output); +} + +lastColumn = column; // if we hit the column index size that we have to index after, go ahead and index it. if (blockSize >= DatabaseDescriptor.getColumnIndexSize()) @@ -197,14 +207,6 @@ public class ColumnIndex firstColumn = null; lastBlockClosing = column; } - -maybeWriteRowHeader(); -atomSerializer.serializeForSSTable(column, output); - -// TODO: Should deal with removing unneeded tombstones -tombstoneTracker.update(column, false); - -lastColumn = column; } private void maybeWriteRowHeader() throws IOException @@ -216,12 +218,16 @@ public class ColumnIndex } } -public ColumnIndex build() +public ColumnIndex build() throws IOException { // all columns were GC'd after all if (lastColumn == null) return ColumnIndex.EMPTY; +long size = tombstoneTracker.writeUnwrittenTombstones(output, atomSerializer); +endPosition += size; +blockSize += size; + // the last column may have fallen on an index boundary already. if not, index it explicitly. if (result.columnsIndex.isEmpty() || lastBlockClosing != lastColumn) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/a61fc01f/src/java/org/apache/cassandra/db/R
[1/2] cassandra git commit: Skip redundant tombstones on compaction.
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 bee48ebe2 -> 3b7ccdfb1 Skip redundant tombstones on compaction. Patch by Branimir Lambov; reviewed by marcuse for CASSANDRA-7953 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a61fc01f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a61fc01f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a61fc01f Branch: refs/heads/cassandra-2.2 Commit: a61fc01f418426847e3aad133127da3615813236 Parents: 02f88e3 Author: Branimir Lambov <branimir.lam...@datastax.com> Authored: Wed Oct 7 14:46:24 2015 +0300 Committer: Marcus Eriksson <marc...@apache.org> Committed: Thu Oct 15 15:28:42 2015 +0200 -- CHANGES.txt | 1 + .../org/apache/cassandra/db/ColumnIndex.java| 32 +++-- .../org/apache/cassandra/db/RangeTombstone.java | 135 ++- .../cassandra/cql3/RangeTombstoneMergeTest.java | 125 + 4 files changed, 218 insertions(+), 75 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a61fc01f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index b16acb5..68b44ed 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Merge range tombstones during compaction (CASSANDRA-7953) * (cqlsh) Distinguish negative and positive infinity in output (CASSANDRA-10523) * (cqlsh) allow custom time_format for COPY TO (CASSANDRA-8970) * Don't allow startup if the node's rack has changed (CASSANDRA-10242) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a61fc01f/src/java/org/apache/cassandra/db/ColumnIndex.java -- diff --git a/src/java/org/apache/cassandra/db/ColumnIndex.java b/src/java/org/apache/cassandra/db/ColumnIndex.java index d9d6a9c..0ea5c87 100644 --- a/src/java/org/apache/cassandra/db/ColumnIndex.java +++ b/src/java/org/apache/cassandra/db/ColumnIndex.java @@ -180,14 +180,24 @@ public class ColumnIndex firstColumn = column; startPosition = endPosition; // TODO: have that use the firstColumn as min + make sure we optimize that on read -endPosition += tombstoneTracker.writeOpenedMarker(firstColumn, output, atomSerializer); +endPosition += tombstoneTracker.writeOpenedMarkers(firstColumn.name(), output, atomSerializer); blockSize = 0; // We don't count repeated tombstone marker in the block size, to avoid a situation // where we wouldn't make any progress because a block is filled by said marker + +maybeWriteRowHeader(); } -long size = atomSerializer.serializedSizeForSSTable(column); -endPosition += size; -blockSize += size; +if (tombstoneTracker.update(column, false)) +{ +long size = tombstoneTracker.writeUnwrittenTombstones(output, atomSerializer); +size += atomSerializer.serializedSizeForSSTable(column); +endPosition += size; +blockSize += size; + +atomSerializer.serializeForSSTable(column, output); +} + +lastColumn = column; // if we hit the column index size that we have to index after, go ahead and index it. if (blockSize >= DatabaseDescriptor.getColumnIndexSize()) @@ -197,14 +207,6 @@ public class ColumnIndex firstColumn = null; lastBlockClosing = column; } - -maybeWriteRowHeader(); -atomSerializer.serializeForSSTable(column, output); - -// TODO: Should deal with removing unneeded tombstones -tombstoneTracker.update(column, false); - -lastColumn = column; } private void maybeWriteRowHeader() throws IOException @@ -216,12 +218,16 @@ public class ColumnIndex } } -public ColumnIndex build() +public ColumnIndex build() throws IOException { // all columns were GC'd after all if (lastColumn == null) return ColumnIndex.EMPTY; +long size = tombstoneTracker.writeUnwrittenTombstones(output, atomSerializer); +endPosition += size; +blockSize += size; + // the last column may have fallen on an index boundary already. if not, index it explicitly. if (result.columnsIndex.isEmpty() || lastBlockClosing != lastColumn) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/a61fc01f/src/java/org/apache/cassandra/db/R
[3/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/6a1c1d90 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6a1c1d90 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6a1c1d90 Branch: refs/heads/trunk Commit: 6a1c1d900925cb0532633c943e7c4325edc8f64c Parents: b42a0cf 3b7ccdf Author: Marcus ErikssonAuthored: Thu Oct 15 15:35:53 2015 +0200 Committer: Marcus Eriksson Committed: Thu Oct 15 15:35:53 2015 +0200 -- --
[1/4] cassandra git commit: Skip redundant tombstones on compaction.
Repository: cassandra Updated Branches: refs/heads/trunk 29576a44d -> 0e3da95d6 Skip redundant tombstones on compaction. Patch by Branimir Lambov; reviewed by marcuse for CASSANDRA-7953 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a61fc01f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a61fc01f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a61fc01f Branch: refs/heads/trunk Commit: a61fc01f418426847e3aad133127da3615813236 Parents: 02f88e3 Author: Branimir Lambov <branimir.lam...@datastax.com> Authored: Wed Oct 7 14:46:24 2015 +0300 Committer: Marcus Eriksson <marc...@apache.org> Committed: Thu Oct 15 15:28:42 2015 +0200 -- CHANGES.txt | 1 + .../org/apache/cassandra/db/ColumnIndex.java| 32 +++-- .../org/apache/cassandra/db/RangeTombstone.java | 135 ++- .../cassandra/cql3/RangeTombstoneMergeTest.java | 125 + 4 files changed, 218 insertions(+), 75 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a61fc01f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index b16acb5..68b44ed 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Merge range tombstones during compaction (CASSANDRA-7953) * (cqlsh) Distinguish negative and positive infinity in output (CASSANDRA-10523) * (cqlsh) allow custom time_format for COPY TO (CASSANDRA-8970) * Don't allow startup if the node's rack has changed (CASSANDRA-10242) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a61fc01f/src/java/org/apache/cassandra/db/ColumnIndex.java -- diff --git a/src/java/org/apache/cassandra/db/ColumnIndex.java b/src/java/org/apache/cassandra/db/ColumnIndex.java index d9d6a9c..0ea5c87 100644 --- a/src/java/org/apache/cassandra/db/ColumnIndex.java +++ b/src/java/org/apache/cassandra/db/ColumnIndex.java @@ -180,14 +180,24 @@ public class ColumnIndex firstColumn = column; startPosition = endPosition; // TODO: have that use the firstColumn as min + make sure we optimize that on read -endPosition += tombstoneTracker.writeOpenedMarker(firstColumn, output, atomSerializer); +endPosition += tombstoneTracker.writeOpenedMarkers(firstColumn.name(), output, atomSerializer); blockSize = 0; // We don't count repeated tombstone marker in the block size, to avoid a situation // where we wouldn't make any progress because a block is filled by said marker + +maybeWriteRowHeader(); } -long size = atomSerializer.serializedSizeForSSTable(column); -endPosition += size; -blockSize += size; +if (tombstoneTracker.update(column, false)) +{ +long size = tombstoneTracker.writeUnwrittenTombstones(output, atomSerializer); +size += atomSerializer.serializedSizeForSSTable(column); +endPosition += size; +blockSize += size; + +atomSerializer.serializeForSSTable(column, output); +} + +lastColumn = column; // if we hit the column index size that we have to index after, go ahead and index it. if (blockSize >= DatabaseDescriptor.getColumnIndexSize()) @@ -197,14 +207,6 @@ public class ColumnIndex firstColumn = null; lastBlockClosing = column; } - -maybeWriteRowHeader(); -atomSerializer.serializeForSSTable(column, output); - -// TODO: Should deal with removing unneeded tombstones -tombstoneTracker.update(column, false); - -lastColumn = column; } private void maybeWriteRowHeader() throws IOException @@ -216,12 +218,16 @@ public class ColumnIndex } } -public ColumnIndex build() +public ColumnIndex build() throws IOException { // all columns were GC'd after all if (lastColumn == null) return ColumnIndex.EMPTY; +long size = tombstoneTracker.writeUnwrittenTombstones(output, atomSerializer); +endPosition += size; +blockSize += size; + // the last column may have fallen on an index boundary already. if not, index it explicitly. if (result.columnsIndex.isEmpty() || lastBlockClosing != lastColumn) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/a61fc01f/src/java/org/apache/cassandra/db/R
[3/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/6a1c1d90 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6a1c1d90 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6a1c1d90 Branch: refs/heads/cassandra-3.0 Commit: 6a1c1d900925cb0532633c943e7c4325edc8f64c Parents: b42a0cf 3b7ccdf Author: Marcus ErikssonAuthored: Thu Oct 15 15:35:53 2015 +0200 Committer: Marcus Eriksson Committed: Thu Oct 15 15:35:53 2015 +0200 -- --
[2/2] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3b7ccdfb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3b7ccdfb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3b7ccdfb Branch: refs/heads/cassandra-2.2 Commit: 3b7ccdfb15b43880804d61a5e7d62c82b3b664eb Parents: bee48eb a61fc01 Author: Marcus ErikssonAuthored: Thu Oct 15 15:33:29 2015 +0200 Committer: Marcus Eriksson Committed: Thu Oct 15 15:33:29 2015 +0200 -- .../org/apache/cassandra/db/ColumnIndex.java| 32 +++-- .../org/apache/cassandra/db/RangeTombstone.java | 135 ++- .../cassandra/cql3/RangeTombstoneMergeTest.java | 125 + 3 files changed, 217 insertions(+), 75 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b7ccdfb/src/java/org/apache/cassandra/db/RangeTombstone.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b7ccdfb/test/unit/org/apache/cassandra/cql3/RangeTombstoneMergeTest.java -- diff --cc test/unit/org/apache/cassandra/cql3/RangeTombstoneMergeTest.java index 000,0460a16..71634e9 mode 00,100644..100644 --- a/test/unit/org/apache/cassandra/cql3/RangeTombstoneMergeTest.java +++ b/test/unit/org/apache/cassandra/cql3/RangeTombstoneMergeTest.java @@@ -1,0 -1,125 +1,125 @@@ + /* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + package org.apache.cassandra.cql3; + + import static org.junit.Assert.assertEquals; + import static org.junit.Assert.assertTrue; + + import com.google.common.collect.Iterables; + + import org.junit.Before; + import org.junit.Test; + + import org.apache.cassandra.Util; + import org.apache.cassandra.db.*; + import org.apache.cassandra.db.columniterator.OnDiskAtomIterator; + import org.apache.cassandra.db.composites.*; ++import org.apache.cassandra.io.sstable.format.SSTableReader; + import org.apache.cassandra.io.sstable.ISSTableScanner; -import org.apache.cassandra.io.sstable.SSTableReader; + + public class RangeTombstoneMergeTest extends CQLTester + { + @Before + public void before() throws Throwable + { + createTable("CREATE TABLE %s(" + + " key text," + + " column text," + + " data text," + + " extra text," + + " PRIMARY KEY(key, column)" + + ");"); + + // If the sstable only contains tombstones during compaction it seems that the sstable either gets removed or isn't created (but that could probably be a separate JIRA issue). + execute("INSERT INTO %s (key, column, data) VALUES (?, ?, ?)", "1", "1", "1"); + } + + @Test + public void testEqualMerge() throws Throwable + { + addRemoveAndFlush(); + + for (int i=0; i<3; ++i) + { + addRemoveAndFlush(); + compact(); + } + + assertOneTombstone(); + } + + @Test + public void testRangeMerge() throws Throwable + { + addRemoveAndFlush(); + + execute("INSERT INTO %s (key, column, data, extra) VALUES (?, ?, ?, ?)", "1", "2", "2", "2"); + execute("DELETE extra FROM %s WHERE key=? AND column=?", "1", "2"); + + flush(); + compact(); + + execute("DELETE FROM %s WHERE key=? AND column=?", "1", "2"); + + flush(); + compact(); + + assertOneTombstone(); + } + + void assertOneTombstone() throws Throwable + { + assertRows(execute("SELECT column FROM %s"), +row("1")); + assertAllRows(row("1", "1", "1", null)); + + ColumnFamilyStore cfs = Keyspace.open(KEYSPACE).getColumnFamilyStore(currentTable()); + ColumnFamily cf = cfs.getColumnFamily(Util.dk("1"),
[2/3] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3b7ccdfb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3b7ccdfb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3b7ccdfb Branch: refs/heads/cassandra-3.0 Commit: 3b7ccdfb15b43880804d61a5e7d62c82b3b664eb Parents: bee48eb a61fc01 Author: Marcus ErikssonAuthored: Thu Oct 15 15:33:29 2015 +0200 Committer: Marcus Eriksson Committed: Thu Oct 15 15:33:29 2015 +0200 -- .../org/apache/cassandra/db/ColumnIndex.java| 32 +++-- .../org/apache/cassandra/db/RangeTombstone.java | 135 ++- .../cassandra/cql3/RangeTombstoneMergeTest.java | 125 + 3 files changed, 217 insertions(+), 75 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b7ccdfb/src/java/org/apache/cassandra/db/RangeTombstone.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b7ccdfb/test/unit/org/apache/cassandra/cql3/RangeTombstoneMergeTest.java -- diff --cc test/unit/org/apache/cassandra/cql3/RangeTombstoneMergeTest.java index 000,0460a16..71634e9 mode 00,100644..100644 --- a/test/unit/org/apache/cassandra/cql3/RangeTombstoneMergeTest.java +++ b/test/unit/org/apache/cassandra/cql3/RangeTombstoneMergeTest.java @@@ -1,0 -1,125 +1,125 @@@ + /* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + package org.apache.cassandra.cql3; + + import static org.junit.Assert.assertEquals; + import static org.junit.Assert.assertTrue; + + import com.google.common.collect.Iterables; + + import org.junit.Before; + import org.junit.Test; + + import org.apache.cassandra.Util; + import org.apache.cassandra.db.*; + import org.apache.cassandra.db.columniterator.OnDiskAtomIterator; + import org.apache.cassandra.db.composites.*; ++import org.apache.cassandra.io.sstable.format.SSTableReader; + import org.apache.cassandra.io.sstable.ISSTableScanner; -import org.apache.cassandra.io.sstable.SSTableReader; + + public class RangeTombstoneMergeTest extends CQLTester + { + @Before + public void before() throws Throwable + { + createTable("CREATE TABLE %s(" + + " key text," + + " column text," + + " data text," + + " extra text," + + " PRIMARY KEY(key, column)" + + ");"); + + // If the sstable only contains tombstones during compaction it seems that the sstable either gets removed or isn't created (but that could probably be a separate JIRA issue). + execute("INSERT INTO %s (key, column, data) VALUES (?, ?, ?)", "1", "1", "1"); + } + + @Test + public void testEqualMerge() throws Throwable + { + addRemoveAndFlush(); + + for (int i=0; i<3; ++i) + { + addRemoveAndFlush(); + compact(); + } + + assertOneTombstone(); + } + + @Test + public void testRangeMerge() throws Throwable + { + addRemoveAndFlush(); + + execute("INSERT INTO %s (key, column, data, extra) VALUES (?, ?, ?, ?)", "1", "2", "2", "2"); + execute("DELETE extra FROM %s WHERE key=? AND column=?", "1", "2"); + + flush(); + compact(); + + execute("DELETE FROM %s WHERE key=? AND column=?", "1", "2"); + + flush(); + compact(); + + assertOneTombstone(); + } + + void assertOneTombstone() throws Throwable + { + assertRows(execute("SELECT column FROM %s"), +row("1")); + assertAllRows(row("1", "1", "1", null)); + + ColumnFamilyStore cfs = Keyspace.open(KEYSPACE).getColumnFamilyStore(currentTable()); + ColumnFamily cf = cfs.getColumnFamily(Util.dk("1"),
[4/4] cassandra git commit: Merge branch 'cassandra-3.0' into trunk
Merge branch 'cassandra-3.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0e3da95d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0e3da95d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0e3da95d Branch: refs/heads/trunk Commit: 0e3da95d6bbfcddc1bdb381e02499206aac56d7a Parents: 29576a4 6a1c1d9 Author: Marcus ErikssonAuthored: Thu Oct 15 15:36:05 2015 +0200 Committer: Marcus Eriksson Committed: Thu Oct 15 15:36:05 2015 +0200 -- --
[1/3] cassandra git commit: Skip redundant tombstones on compaction.
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 b42a0cfe8 -> 6a1c1d900 Skip redundant tombstones on compaction. Patch by Branimir Lambov; reviewed by marcuse for CASSANDRA-7953 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a61fc01f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a61fc01f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a61fc01f Branch: refs/heads/cassandra-3.0 Commit: a61fc01f418426847e3aad133127da3615813236 Parents: 02f88e3 Author: Branimir Lambov <branimir.lam...@datastax.com> Authored: Wed Oct 7 14:46:24 2015 +0300 Committer: Marcus Eriksson <marc...@apache.org> Committed: Thu Oct 15 15:28:42 2015 +0200 -- CHANGES.txt | 1 + .../org/apache/cassandra/db/ColumnIndex.java| 32 +++-- .../org/apache/cassandra/db/RangeTombstone.java | 135 ++- .../cassandra/cql3/RangeTombstoneMergeTest.java | 125 + 4 files changed, 218 insertions(+), 75 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a61fc01f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index b16acb5..68b44ed 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Merge range tombstones during compaction (CASSANDRA-7953) * (cqlsh) Distinguish negative and positive infinity in output (CASSANDRA-10523) * (cqlsh) allow custom time_format for COPY TO (CASSANDRA-8970) * Don't allow startup if the node's rack has changed (CASSANDRA-10242) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a61fc01f/src/java/org/apache/cassandra/db/ColumnIndex.java -- diff --git a/src/java/org/apache/cassandra/db/ColumnIndex.java b/src/java/org/apache/cassandra/db/ColumnIndex.java index d9d6a9c..0ea5c87 100644 --- a/src/java/org/apache/cassandra/db/ColumnIndex.java +++ b/src/java/org/apache/cassandra/db/ColumnIndex.java @@ -180,14 +180,24 @@ public class ColumnIndex firstColumn = column; startPosition = endPosition; // TODO: have that use the firstColumn as min + make sure we optimize that on read -endPosition += tombstoneTracker.writeOpenedMarker(firstColumn, output, atomSerializer); +endPosition += tombstoneTracker.writeOpenedMarkers(firstColumn.name(), output, atomSerializer); blockSize = 0; // We don't count repeated tombstone marker in the block size, to avoid a situation // where we wouldn't make any progress because a block is filled by said marker + +maybeWriteRowHeader(); } -long size = atomSerializer.serializedSizeForSSTable(column); -endPosition += size; -blockSize += size; +if (tombstoneTracker.update(column, false)) +{ +long size = tombstoneTracker.writeUnwrittenTombstones(output, atomSerializer); +size += atomSerializer.serializedSizeForSSTable(column); +endPosition += size; +blockSize += size; + +atomSerializer.serializeForSSTable(column, output); +} + +lastColumn = column; // if we hit the column index size that we have to index after, go ahead and index it. if (blockSize >= DatabaseDescriptor.getColumnIndexSize()) @@ -197,14 +207,6 @@ public class ColumnIndex firstColumn = null; lastBlockClosing = column; } - -maybeWriteRowHeader(); -atomSerializer.serializeForSSTable(column, output); - -// TODO: Should deal with removing unneeded tombstones -tombstoneTracker.update(column, false); - -lastColumn = column; } private void maybeWriteRowHeader() throws IOException @@ -216,12 +218,16 @@ public class ColumnIndex } } -public ColumnIndex build() +public ColumnIndex build() throws IOException { // all columns were GC'd after all if (lastColumn == null) return ColumnIndex.EMPTY; +long size = tombstoneTracker.writeUnwrittenTombstones(output, atomSerializer); +endPosition += size; +blockSize += size; + // the last column may have fallen on an index boundary already. if not, index it explicitly. if (result.columnsIndex.isEmpty() || lastBlockClosing != lastColumn) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/a61fc01f/src/java/org/apache/cassandra/db/R
[2/4] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3b7ccdfb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3b7ccdfb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3b7ccdfb Branch: refs/heads/trunk Commit: 3b7ccdfb15b43880804d61a5e7d62c82b3b664eb Parents: bee48eb a61fc01 Author: Marcus ErikssonAuthored: Thu Oct 15 15:33:29 2015 +0200 Committer: Marcus Eriksson Committed: Thu Oct 15 15:33:29 2015 +0200 -- .../org/apache/cassandra/db/ColumnIndex.java| 32 +++-- .../org/apache/cassandra/db/RangeTombstone.java | 135 ++- .../cassandra/cql3/RangeTombstoneMergeTest.java | 125 + 3 files changed, 217 insertions(+), 75 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b7ccdfb/src/java/org/apache/cassandra/db/RangeTombstone.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b7ccdfb/test/unit/org/apache/cassandra/cql3/RangeTombstoneMergeTest.java -- diff --cc test/unit/org/apache/cassandra/cql3/RangeTombstoneMergeTest.java index 000,0460a16..71634e9 mode 00,100644..100644 --- a/test/unit/org/apache/cassandra/cql3/RangeTombstoneMergeTest.java +++ b/test/unit/org/apache/cassandra/cql3/RangeTombstoneMergeTest.java @@@ -1,0 -1,125 +1,125 @@@ + /* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + package org.apache.cassandra.cql3; + + import static org.junit.Assert.assertEquals; + import static org.junit.Assert.assertTrue; + + import com.google.common.collect.Iterables; + + import org.junit.Before; + import org.junit.Test; + + import org.apache.cassandra.Util; + import org.apache.cassandra.db.*; + import org.apache.cassandra.db.columniterator.OnDiskAtomIterator; + import org.apache.cassandra.db.composites.*; ++import org.apache.cassandra.io.sstable.format.SSTableReader; + import org.apache.cassandra.io.sstable.ISSTableScanner; -import org.apache.cassandra.io.sstable.SSTableReader; + + public class RangeTombstoneMergeTest extends CQLTester + { + @Before + public void before() throws Throwable + { + createTable("CREATE TABLE %s(" + + " key text," + + " column text," + + " data text," + + " extra text," + + " PRIMARY KEY(key, column)" + + ");"); + + // If the sstable only contains tombstones during compaction it seems that the sstable either gets removed or isn't created (but that could probably be a separate JIRA issue). + execute("INSERT INTO %s (key, column, data) VALUES (?, ?, ?)", "1", "1", "1"); + } + + @Test + public void testEqualMerge() throws Throwable + { + addRemoveAndFlush(); + + for (int i=0; i<3; ++i) + { + addRemoveAndFlush(); + compact(); + } + + assertOneTombstone(); + } + + @Test + public void testRangeMerge() throws Throwable + { + addRemoveAndFlush(); + + execute("INSERT INTO %s (key, column, data, extra) VALUES (?, ?, ?, ?)", "1", "2", "2", "2"); + execute("DELETE extra FROM %s WHERE key=? AND column=?", "1", "2"); + + flush(); + compact(); + + execute("DELETE FROM %s WHERE key=? AND column=?", "1", "2"); + + flush(); + compact(); + + assertOneTombstone(); + } + + void assertOneTombstone() throws Throwable + { + assertRows(execute("SELECT column FROM %s"), +row("1")); + assertAllRows(row("1", "1", "1", null)); + + ColumnFamilyStore cfs = Keyspace.open(KEYSPACE).getColumnFamilyStore(currentTable()); + ColumnFamily cf = cfs.getColumnFamily(Util.dk("1"), Composites.EMPTY,
[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk
Merge branch 'cassandra-3.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c20f6b37 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c20f6b37 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c20f6b37 Branch: refs/heads/trunk Commit: c20f6b374bc93e08cc5e6a65784e25185e386d9d Parents: 6ef817a e1fb18a Author: Marcus ErikssonAuthored: Fri Oct 16 12:31:24 2015 +0200 Committer: Marcus Eriksson Committed: Fri Oct 16 12:31:24 2015 +0200 -- src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 12 .../db/compaction/AbstractCompactionStrategy.java | 6 +- 2 files changed, 13 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c20f6b37/src/java/org/apache/cassandra/db/ColumnFamilyStore.java --
[1/2] cassandra git commit: Followup to CASSANDRA-8671 - additional data directories
Repository: cassandra Updated Branches: refs/heads/trunk 6ef817a51 -> c20f6b374 Followup to CASSANDRA-8671 - additional data directories Patch by Blake Eggleston; reviewed by marcuse for CASSANDRA-10518 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e1fb18a0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e1fb18a0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e1fb18a0 Branch: refs/heads/trunk Commit: e1fb18a00b598431f52b88d12e2eddbe07233e88 Parents: f3143e6 Author: Blake Eggleston <bdeggles...@gmail.com> Authored: Thu Oct 15 14:14:37 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Fri Oct 16 12:30:59 2015 +0200 -- src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 12 .../db/compaction/AbstractCompactionStrategy.java | 6 +- 2 files changed, 13 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1fb18a0/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 062eb0a..4c9fc55 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -84,12 +84,17 @@ import static org.apache.cassandra.utils.Throwables.maybeFail; public class ColumnFamilyStore implements ColumnFamilyStoreMBean { -// the directories used to load sstables on cfs instantiation +// The directories which will be searched for sstables on cfs instantiation. private static volatile Directories.DataDirectory[] initialDirectories = Directories.dataDirectories; /** - * a hook to add additional directories to initialDirectories. + * A hook to add additional directories to initialDirectories. * Any additional directories should be added prior to ColumnFamilyStore instantiation on startup + * + * Since the directories used by a given table are determined by the compaction strategy, + * it's possible for sstables to be written to directories specified outside of cassandra.yaml. + * By adding additional directories to initialDirectories, sstables in these extra locations are + * made discoverable on sstable instantiation. */ public static synchronized void addInitialDirectories(Directories.DataDirectory[] newDirectories) { @@ -363,7 +368,6 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean this.keyspace = keyspace; this.metadata = metadata; -this.directories = directories; name = columnFamilyName; minCompactionThreshold = new DefaultValue<>(metadata.params.compaction.minCompactionThreshold()); maxCompactionThreshold = new DefaultValue<>(metadata.params.compaction.maxCompactionThreshold()); @@ -388,7 +392,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean // compaction strategy should be created after the CFS has been prepared compactionStrategyManager = new CompactionStrategyManager(this); -this.directories = this.compactionStrategyManager.getDirectories(); +this.directories = compactionStrategyManager.getDirectories(); if (maxCompactionThreshold.value() <= 0 || minCompactionThreshold.value() <=0) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1fb18a0/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java index 721fd70..ae8839e 100644 --- a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java @@ -78,6 +78,8 @@ public abstract class AbstractCompactionStrategy protected boolean uncheckedTombstoneCompaction; protected boolean disableTombstoneCompactions = false; +private final Directories directories; + /** * pause/resume/getNextBackgroundTask must synchronize. This guarantees that after pause completes, * no new tasks will be generated; or put another way, pause can't run until in-progress tasks are @@ -117,11 +119,13 @@ public abstract class AbstractCompactionStrategy tombstoneCompactionInterval = DEFAULT_TOMBSTONE_COMPACTION_INTERVAL; uncheckedTombstoneCompaction = DEFAULT_UNCHECKED_TOMBSTONE_COMPACTION_OPTION; } + +directori
cassandra git commit: Followup to CASSANDRA-8671 - additional data directories
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 f3143e624 -> e1fb18a00 Followup to CASSANDRA-8671 - additional data directories Patch by Blake Eggleston; reviewed by marcuse for CASSANDRA-10518 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e1fb18a0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e1fb18a0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e1fb18a0 Branch: refs/heads/cassandra-3.0 Commit: e1fb18a00b598431f52b88d12e2eddbe07233e88 Parents: f3143e6 Author: Blake Eggleston <bdeggles...@gmail.com> Authored: Thu Oct 15 14:14:37 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Fri Oct 16 12:30:59 2015 +0200 -- src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 12 .../db/compaction/AbstractCompactionStrategy.java | 6 +- 2 files changed, 13 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1fb18a0/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 062eb0a..4c9fc55 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -84,12 +84,17 @@ import static org.apache.cassandra.utils.Throwables.maybeFail; public class ColumnFamilyStore implements ColumnFamilyStoreMBean { -// the directories used to load sstables on cfs instantiation +// The directories which will be searched for sstables on cfs instantiation. private static volatile Directories.DataDirectory[] initialDirectories = Directories.dataDirectories; /** - * a hook to add additional directories to initialDirectories. + * A hook to add additional directories to initialDirectories. * Any additional directories should be added prior to ColumnFamilyStore instantiation on startup + * + * Since the directories used by a given table are determined by the compaction strategy, + * it's possible for sstables to be written to directories specified outside of cassandra.yaml. + * By adding additional directories to initialDirectories, sstables in these extra locations are + * made discoverable on sstable instantiation. */ public static synchronized void addInitialDirectories(Directories.DataDirectory[] newDirectories) { @@ -363,7 +368,6 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean this.keyspace = keyspace; this.metadata = metadata; -this.directories = directories; name = columnFamilyName; minCompactionThreshold = new DefaultValue<>(metadata.params.compaction.minCompactionThreshold()); maxCompactionThreshold = new DefaultValue<>(metadata.params.compaction.maxCompactionThreshold()); @@ -388,7 +392,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean // compaction strategy should be created after the CFS has been prepared compactionStrategyManager = new CompactionStrategyManager(this); -this.directories = this.compactionStrategyManager.getDirectories(); +this.directories = compactionStrategyManager.getDirectories(); if (maxCompactionThreshold.value() <= 0 || minCompactionThreshold.value() <=0) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/e1fb18a0/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java index 721fd70..ae8839e 100644 --- a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java @@ -78,6 +78,8 @@ public abstract class AbstractCompactionStrategy protected boolean uncheckedTombstoneCompaction; protected boolean disableTombstoneCompactions = false; +private final Directories directories; + /** * pause/resume/getNextBackgroundTask must synchronize. This guarantees that after pause completes, * no new tasks will be generated; or put another way, pause can't run until in-progress tasks are @@ -117,11 +119,13 @@ public abstract class AbstractCompactionStrategy tombstoneCompactionInterval = DEFAULT_TOMBSTONE_COMPACTION_INTERVAL; uncheckedTombstoneCompaction = DEFAULT_UNCHECKED_TOMBSTONE_COMPACTION_OPTION; } + +
[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk
Merge branch 'cassandra-3.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/16f29aac Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/16f29aac Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/16f29aac Branch: refs/heads/trunk Commit: 16f29aac9f43a126573cfa22e99a78348c4207ea Parents: 739de13 50fae5d Author: Marcus ErikssonAuthored: Mon Oct 12 08:28:35 2015 +0200 Committer: Marcus Eriksson Committed: Mon Oct 12 08:28:35 2015 +0200 -- src/java/org/apache/cassandra/db/SystemKeyspace.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) --
cassandra git commit: Force blocking flush of peers when removing endpoint.
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 fc92c9621 -> 50fae5df1 Force blocking flush of peers when removing endpoint. Patch by Joel Knighton; reviewed by Stefania for CASSANDRA-10231 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/50fae5df Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/50fae5df Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/50fae5df Branch: refs/heads/cassandra-3.0 Commit: 50fae5df193a41c77a5b02a84c9350226eccaf9f Parents: fc92c96 Author: Joel KnightonAuthored: Thu Oct 8 18:35:13 2015 -0500 Committer: Marcus Eriksson Committed: Mon Oct 12 08:26:09 2015 +0200 -- src/java/org/apache/cassandra/db/SystemKeyspace.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/50fae5df/src/java/org/apache/cassandra/db/SystemKeyspace.java -- diff --git a/src/java/org/apache/cassandra/db/SystemKeyspace.java b/src/java/org/apache/cassandra/db/SystemKeyspace.java index 689a33d..6112869 100644 --- a/src/java/org/apache/cassandra/db/SystemKeyspace.java +++ b/src/java/org/apache/cassandra/db/SystemKeyspace.java @@ -690,10 +690,7 @@ public final class SystemKeyspace public static synchronized void updateTokens(InetAddress ep, Collection tokens) { if (ep.equals(FBUtilities.getBroadcastAddress())) -{ -removeEndpoint(ep); return; -} String req = "INSERT INTO system.%s (peer, tokens) VALUES (?, ?)"; executeInternal(String.format(req, PEERS), ep, tokensAsSet(tokens)); @@ -755,6 +752,7 @@ public final class SystemKeyspace { String req = "DELETE FROM system.%s WHERE peer = ?"; executeInternal(String.format(req, PEERS), ep); +forceBlockingFlush(PEERS); } /**
[1/2] cassandra git commit: Force blocking flush of peers when removing endpoint.
Repository: cassandra Updated Branches: refs/heads/trunk 739de136d -> 16f29aac9 Force blocking flush of peers when removing endpoint. Patch by Joel Knighton; reviewed by Stefania for CASSANDRA-10231 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/50fae5df Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/50fae5df Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/50fae5df Branch: refs/heads/trunk Commit: 50fae5df193a41c77a5b02a84c9350226eccaf9f Parents: fc92c96 Author: Joel KnightonAuthored: Thu Oct 8 18:35:13 2015 -0500 Committer: Marcus Eriksson Committed: Mon Oct 12 08:26:09 2015 +0200 -- src/java/org/apache/cassandra/db/SystemKeyspace.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/50fae5df/src/java/org/apache/cassandra/db/SystemKeyspace.java -- diff --git a/src/java/org/apache/cassandra/db/SystemKeyspace.java b/src/java/org/apache/cassandra/db/SystemKeyspace.java index 689a33d..6112869 100644 --- a/src/java/org/apache/cassandra/db/SystemKeyspace.java +++ b/src/java/org/apache/cassandra/db/SystemKeyspace.java @@ -690,10 +690,7 @@ public final class SystemKeyspace public static synchronized void updateTokens(InetAddress ep, Collection tokens) { if (ep.equals(FBUtilities.getBroadcastAddress())) -{ -removeEndpoint(ep); return; -} String req = "INSERT INTO system.%s (peer, tokens) VALUES (?, ?)"; executeInternal(String.format(req, PEERS), ep, tokensAsSet(tokens)); @@ -755,6 +752,7 @@ public final class SystemKeyspace { String req = "DELETE FROM system.%s WHERE peer = ?"; executeInternal(String.format(req, PEERS), ep); +forceBlockingFlush(PEERS); } /**
cassandra git commit: Update cassandra.yaml allocate_tokens_for_keyspace to match the actual config variable
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 566799f56 -> 36d0f55d4 Update cassandra.yaml allocate_tokens_for_keyspace to match the actual config variable Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/36d0f55d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/36d0f55d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/36d0f55d Branch: refs/heads/cassandra-3.0 Commit: 36d0f55d46ac0edb5a4f140c7993c6d207605fe7 Parents: 566799f Author: Marcus ErikssonAuthored: Wed Oct 7 13:57:13 2015 +0200 Committer: Marcus Eriksson Committed: Wed Oct 7 13:57:13 2015 +0200 -- conf/cassandra.yaml | 2 +- src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 4 ++-- src/java/org/apache/cassandra/dht/BootStrapper.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/36d0f55d/conf/cassandra.yaml -- diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index 33ca4a8..19ebf8a 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -33,7 +33,7 @@ num_tokens: 256 # vnodes. # # Only supported with the Murmur3Partitioner. -# allocate_tokens_keyspace: KEYSPACE +# allocate_tokens_for_keyspace: KEYSPACE # initial_token allows you to specify tokens manually. While you can use # it with # vnodes (num_tokens > 1, above) -- in which case you should provide a http://git-wip-us.apache.org/repos/asf/cassandra/blob/36d0f55d/src/java/org/apache/cassandra/config/DatabaseDescriptor.java -- diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index ccc3dd1..a43fe4e 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -912,9 +912,9 @@ public class DatabaseDescriptor return tokensFromString(System.getProperty("cassandra.initial_token", conf.initial_token)); } -public static String getAllocateTokensKeyspace() +public static String getAllocateTokensForKeyspace() { -return System.getProperty("cassandra.allocate_tokens_keyspace", conf.allocate_tokens_for_keyspace); +return System.getProperty("cassandra.allocate_tokens_for_keyspace", conf.allocate_tokens_for_keyspace); } public static Collection tokensFromString(String tokenString) http://git-wip-us.apache.org/repos/asf/cassandra/blob/36d0f55d/src/java/org/apache/cassandra/dht/BootStrapper.java -- diff --git a/src/java/org/apache/cassandra/dht/BootStrapper.java b/src/java/org/apache/cassandra/dht/BootStrapper.java index c0f0402..8d8f5c7 100644 --- a/src/java/org/apache/cassandra/dht/BootStrapper.java +++ b/src/java/org/apache/cassandra/dht/BootStrapper.java @@ -156,7 +156,7 @@ public class BootStrapper extends ProgressEventNotifierSupport */ public static Collection getBootstrapTokens(final TokenMetadata metadata, InetAddress address) throws ConfigurationException { -String allocationKeyspace = DatabaseDescriptor.getAllocateTokensKeyspace(); +String allocationKeyspace = DatabaseDescriptor.getAllocateTokensForKeyspace(); Collection initialTokens = DatabaseDescriptor.getInitialTokens(); if (initialTokens.size() > 0 && allocationKeyspace != null) logger.warn("manually specified tokens override automatic allocation");
[1/2] cassandra git commit: Update cassandra.yaml allocate_tokens_for_keyspace to match the actual config variable
Repository: cassandra Updated Branches: refs/heads/trunk 07782aa4a -> c2bc39f28 Update cassandra.yaml allocate_tokens_for_keyspace to match the actual config variable Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/36d0f55d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/36d0f55d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/36d0f55d Branch: refs/heads/trunk Commit: 36d0f55d46ac0edb5a4f140c7993c6d207605fe7 Parents: 566799f Author: Marcus ErikssonAuthored: Wed Oct 7 13:57:13 2015 +0200 Committer: Marcus Eriksson Committed: Wed Oct 7 13:57:13 2015 +0200 -- conf/cassandra.yaml | 2 +- src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 4 ++-- src/java/org/apache/cassandra/dht/BootStrapper.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/36d0f55d/conf/cassandra.yaml -- diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index 33ca4a8..19ebf8a 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -33,7 +33,7 @@ num_tokens: 256 # vnodes. # # Only supported with the Murmur3Partitioner. -# allocate_tokens_keyspace: KEYSPACE +# allocate_tokens_for_keyspace: KEYSPACE # initial_token allows you to specify tokens manually. While you can use # it with # vnodes (num_tokens > 1, above) -- in which case you should provide a http://git-wip-us.apache.org/repos/asf/cassandra/blob/36d0f55d/src/java/org/apache/cassandra/config/DatabaseDescriptor.java -- diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index ccc3dd1..a43fe4e 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -912,9 +912,9 @@ public class DatabaseDescriptor return tokensFromString(System.getProperty("cassandra.initial_token", conf.initial_token)); } -public static String getAllocateTokensKeyspace() +public static String getAllocateTokensForKeyspace() { -return System.getProperty("cassandra.allocate_tokens_keyspace", conf.allocate_tokens_for_keyspace); +return System.getProperty("cassandra.allocate_tokens_for_keyspace", conf.allocate_tokens_for_keyspace); } public static Collection tokensFromString(String tokenString) http://git-wip-us.apache.org/repos/asf/cassandra/blob/36d0f55d/src/java/org/apache/cassandra/dht/BootStrapper.java -- diff --git a/src/java/org/apache/cassandra/dht/BootStrapper.java b/src/java/org/apache/cassandra/dht/BootStrapper.java index c0f0402..8d8f5c7 100644 --- a/src/java/org/apache/cassandra/dht/BootStrapper.java +++ b/src/java/org/apache/cassandra/dht/BootStrapper.java @@ -156,7 +156,7 @@ public class BootStrapper extends ProgressEventNotifierSupport */ public static Collection getBootstrapTokens(final TokenMetadata metadata, InetAddress address) throws ConfigurationException { -String allocationKeyspace = DatabaseDescriptor.getAllocateTokensKeyspace(); +String allocationKeyspace = DatabaseDescriptor.getAllocateTokensForKeyspace(); Collection initialTokens = DatabaseDescriptor.getInitialTokens(); if (initialTokens.size() > 0 && allocationKeyspace != null) logger.warn("manually specified tokens override automatic allocation");
[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk
Merge branch 'cassandra-3.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c2bc39f2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c2bc39f2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c2bc39f2 Branch: refs/heads/trunk Commit: c2bc39f289794b6803fa8c89c91da857a37436bd Parents: 07782aa 36d0f55 Author: Marcus ErikssonAuthored: Wed Oct 7 13:57:28 2015 +0200 Committer: Marcus Eriksson Committed: Wed Oct 7 13:57:28 2015 +0200 -- conf/cassandra.yaml | 2 +- src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 4 ++-- src/java/org/apache/cassandra/dht/BootStrapper.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c2bc39f2/src/java/org/apache/cassandra/config/DatabaseDescriptor.java --
[2/3] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' 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/d434a33a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d434a33a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d434a33a Branch: refs/heads/cassandra-2.2 Commit: d434a33ace2dfe6715f4857f9537ee884f4ef410 Parents: 73a730f a8e8a67 Author: Marcus ErikssonAuthored: Tue Nov 17 10:07:04 2015 +0100 Committer: Marcus Eriksson Committed: Tue Nov 17 10:07:04 2015 +0100 -- CHANGES.txt| 1 + .../apache/cassandra/repair/messages/RepairOption.java | 3 +++ .../org/apache/cassandra/service/StorageService.java | 4 .../cassandra/repair/messages/RepairOptionTest.java| 13 +++-- 4 files changed, 19 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d434a33a/CHANGES.txt -- diff --cc CHANGES.txt index 5705453,b6b394a..489a76d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,16 -1,5 +1,17 @@@ -2.1.12 +2.2.4 + * Fix SimpleDateType type compatibility (CASSANDRA-10027) + * (Hadoop) fix splits calculation (CASSANDRA-10640) + * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058) + * (cqlsh) show partial trace if incomplete after max_trace_wait (CASSANDRA-7645) + * Use most up-to-date version of schema for system tables (CASSANDRA-10652) + * Deprecate memory_allocator in cassandra.yaml (CASSANDRA-10581,10628) + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) +Merged from 2.1: + * Reject incremental repair with subrange repair (CASSANDRA-10422) * Add a nodetool command to refresh size_estimates (CASSANDRA-9579) * Shutdown compaction in drain to prevent leak (CASSANDRA-10079) * Invalidate cache after stream receive task is completed (CASSANDRA-10341) http://git-wip-us.apache.org/repos/asf/cassandra/blob/d434a33a/src/java/org/apache/cassandra/repair/messages/RepairOption.java -- diff --cc src/java/org/apache/cassandra/repair/messages/RepairOption.java index f3e452c,000..1780b6b mode 100644,00..100644 --- a/src/java/org/apache/cassandra/repair/messages/RepairOption.java +++ b/src/java/org/apache/cassandra/repair/messages/RepairOption.java @@@ -1,308 -1,0 +1,311 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.repair.messages; + +import java.util.*; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.cassandra.config.Config; +import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.dht.IPartitioner; +import org.apache.cassandra.dht.Range; +import org.apache.cassandra.dht.Token; +import org.apache.cassandra.repair.RepairParallelism; +import org.apache.cassandra.tools.nodetool.Repair; +import org.apache.cassandra.utils.FBUtilities; + +/** + * Repair options. + */ +public class RepairOption +{ +public static final String PARALLELISM_KEY = "parallelism"; +public static final String PRIMARY_RANGE_KEY = "primaryRange"; +public static final String INCREMENTAL_KEY = "incremental"; +public static final String JOB_THREADS_KEY = "jobThreads"; +public static final String RANGES_KEY = "ranges"; +public static final String COLUMNFAMILIES_KEY = "columnFamilies"; +public static final String DATACENTERS_KEY = "dataCenters"; +public static final String HOSTS_KEY = "hosts"; +public static final String TRACE_KEY = "trace"; + +// we don't want to push nodes too much for repair +public static final int MAX_JOB_THREADS = 4; + +
[2/5] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' 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/d434a33a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d434a33a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d434a33a Branch: refs/heads/cassandra-3.1 Commit: d434a33ace2dfe6715f4857f9537ee884f4ef410 Parents: 73a730f a8e8a67 Author: Marcus ErikssonAuthored: Tue Nov 17 10:07:04 2015 +0100 Committer: Marcus Eriksson Committed: Tue Nov 17 10:07:04 2015 +0100 -- CHANGES.txt| 1 + .../apache/cassandra/repair/messages/RepairOption.java | 3 +++ .../org/apache/cassandra/service/StorageService.java | 4 .../cassandra/repair/messages/RepairOptionTest.java| 13 +++-- 4 files changed, 19 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d434a33a/CHANGES.txt -- diff --cc CHANGES.txt index 5705453,b6b394a..489a76d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,16 -1,5 +1,17 @@@ -2.1.12 +2.2.4 + * Fix SimpleDateType type compatibility (CASSANDRA-10027) + * (Hadoop) fix splits calculation (CASSANDRA-10640) + * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058) + * (cqlsh) show partial trace if incomplete after max_trace_wait (CASSANDRA-7645) + * Use most up-to-date version of schema for system tables (CASSANDRA-10652) + * Deprecate memory_allocator in cassandra.yaml (CASSANDRA-10581,10628) + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) +Merged from 2.1: + * Reject incremental repair with subrange repair (CASSANDRA-10422) * Add a nodetool command to refresh size_estimates (CASSANDRA-9579) * Shutdown compaction in drain to prevent leak (CASSANDRA-10079) * Invalidate cache after stream receive task is completed (CASSANDRA-10341) http://git-wip-us.apache.org/repos/asf/cassandra/blob/d434a33a/src/java/org/apache/cassandra/repair/messages/RepairOption.java -- diff --cc src/java/org/apache/cassandra/repair/messages/RepairOption.java index f3e452c,000..1780b6b mode 100644,00..100644 --- a/src/java/org/apache/cassandra/repair/messages/RepairOption.java +++ b/src/java/org/apache/cassandra/repair/messages/RepairOption.java @@@ -1,308 -1,0 +1,311 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.repair.messages; + +import java.util.*; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.cassandra.config.Config; +import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.dht.IPartitioner; +import org.apache.cassandra.dht.Range; +import org.apache.cassandra.dht.Token; +import org.apache.cassandra.repair.RepairParallelism; +import org.apache.cassandra.tools.nodetool.Repair; +import org.apache.cassandra.utils.FBUtilities; + +/** + * Repair options. + */ +public class RepairOption +{ +public static final String PARALLELISM_KEY = "parallelism"; +public static final String PRIMARY_RANGE_KEY = "primaryRange"; +public static final String INCREMENTAL_KEY = "incremental"; +public static final String JOB_THREADS_KEY = "jobThreads"; +public static final String RANGES_KEY = "ranges"; +public static final String COLUMNFAMILIES_KEY = "columnFamilies"; +public static final String DATACENTERS_KEY = "dataCenters"; +public static final String HOSTS_KEY = "hosts"; +public static final String TRACE_KEY = "trace"; + +// we don't want to push nodes too much for repair +public static final int MAX_JOB_THREADS = 4; + +
[1/5] cassandra git commit: Reject incremental repair requests combined with subrange repair
Repository: cassandra Updated Branches: refs/heads/cassandra-3.1 36e767714 -> 798a7a8fe Reject incremental repair requests combined with subrange repair Patch by Ariel Weisberg; reviewed by marcuse for CASSANDRA-10422 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a8e8a673 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a8e8a673 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a8e8a673 Branch: refs/heads/cassandra-3.1 Commit: a8e8a67306c0b26b8fe9c74a1fb00bacfa224cf7 Parents: 7e056fa Author: Ariel Weisberg <ariel.weisb...@datastax.com> Authored: Thu Oct 29 12:36:32 2015 -0400 Committer: Marcus Eriksson <marc...@apache.org> Committed: Tue Nov 17 09:57:15 2015 +0100 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/service/StorageService.java | 3 +++ .../org/apache/cassandra/service/StorageServiceServerTest.java | 6 ++ 3 files changed, 10 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 2eeda94..b6b394a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Reject incremental repair with subrange repair (CASSANDRA-10422) * Add a nodetool command to refresh size_estimates (CASSANDRA-9579) * Shutdown compaction in drain to prevent leak (CASSANDRA-10079) * Invalidate cache after stream receive task is completed (CASSANDRA-10341) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/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 665ce3a..03c1960 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -2830,6 +2830,9 @@ public class StorageService extends NotificationBroadcasterSupport implements IE public int forceRepairRangeAsync(String beginToken, String endToken, String keyspaceName, boolean isSequential, boolean isLocal, boolean fullRepair, String... columnFamilies) { +if (!fullRepair) +throw new IllegalArgumentException("Incremental repair can't be requested with subrange repair because " + + "each subrange repair would generate an anti-compacted table"); Collection<Range> repairingRange = createRepairRangeFrom(beginToken, endToken); logger.info("starting user-requested repair of range {} for keyspace {} and column families {}", http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java -- diff --git a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java index dd25b35..564239b 100644 --- a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java +++ b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java @@ -508,4 +508,10 @@ public class StorageServiceServerTest repairRangeFrom = StorageService.instance.createRepairRangeFrom("2000", "2000"); assert repairRangeFrom.size() == 0; } + +@Test(expected=IllegalArgumentException.class) +public void testIncrementalRepairWithSubrangesThrows() throws Exception +{ +StorageService.instance.forceRepairRangeAsync("", "", "", true, true, false, ""); +} }
[4/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/eb8afb71 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/eb8afb71 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/eb8afb71 Branch: refs/heads/cassandra-3.0 Commit: eb8afb71f52c65855efa1d7e8d3ef314ab7373e2 Parents: c0480d8 99b82db Author: Marcus ErikssonAuthored: Tue Nov 17 10:13:18 2015 +0100 Committer: Marcus Eriksson Committed: Tue Nov 17 10:13:18 2015 +0100 -- CHANGES.txt | 2 ++ .../cassandra/repair/messages/RepairOption.java | 18 +++--- .../cassandra/service/ActiveRepairService.java| 2 ++ .../apache/cassandra/service/StorageService.java | 9 +++-- .../repair/messages/RepairOptionTest.java | 17 +++-- 5 files changed, 41 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/eb8afb71/CHANGES.txt -- diff --cc CHANGES.txt index 8bb67e1,f5d3416..13647cc --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,56 -1,8 +1,58 @@@ -2.2.4 +3.0.1 + * Correctly preserve deletion info on updated rows when notifying indexers + of single-row deletions (CASSANDRA-10694) + * Notify indexers of partition delete during cleanup (CASSANDRA-10685) + * Keep the file open in trySkipCache (CASSANDRA-10669) + * Updated trigger example (CASSANDRA-10257) +Merged from 2.2: + * Don't do anticompaction after subrange repair (CASSANDRA-10422) * Fix SimpleDateType type compatibility (CASSANDRA-10027) * (Hadoop) fix splits calculation (CASSANDRA-10640) * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058) +Merged from 2.1: ++ * Reject incremental repair with subrange repair (CASSANDRA-10422) + * Add a nodetool command to refresh size_estimates (CASSANDRA-9579) + * Invalidate cache after stream receive task is completed (CASSANDRA-10341) + * Reject counter writes in CQLSSTableWriter (CASSANDRA-10258) + * Remove superfluous COUNTER_MUTATION stage mapping (CASSANDRA-10605) + + +3.0 + * Fix AssertionError while flushing memtable due to materialized views + incorrectly inserting empty rows (CASSANDRA-10614) + * Store UDA initcond as CQL literal in the schema table, instead of a blob (CASSANDRA-10650) + * Don't use -1 for the position of partition key in schema (CASSANDRA-10491) + * Fix distinct queries in mixed version cluster (CASSANDRA-10573) + * Skip sstable on clustering in names query (CASSANDRA-10571) + * Remove value skipping as it breaks read-repair (CASSANDRA-10655) + * Fix bootstrapping with MVs (CASSANDRA-10621) + * Make sure EACH_QUORUM reads are using NTS (CASSANDRA-10584) + * Fix MV replica filtering for non-NetworkTopologyStrategy (CASSANDRA-10634) + * (Hadoop) fix CIF describeSplits() not handling 0 size estimates (CASSANDRA-10600) + * Fix reading of legacy sstables (CASSANDRA-10590) + * Use CQL type names in schema metadata tables (CASSANDRA-10365) + * Guard batchlog replay against integer division by zero (CASSANDRA-9223) + * Fix bug when adding a column to thrift with the same name than a primary key (CASSANDRA-10608) + * Add client address argument to IAuthenticator::newSaslNegotiator (CASSANDRA-8068) + * Fix implementation of LegacyLayout.LegacyBoundComparator (CASSANDRA-10602) + * Don't use 'names query' read path for counters (CASSANDRA-10572) + * Fix backward compatibility for counters (CASSANDRA-10470) + * Remove memory_allocator paramter from cassandra.yaml (CASSANDRA-10581,10628) + * Execute the metadata reload task of all registered indexes on CFS::reload (CASSANDRA-10604) + * Fix thrift cas operations with defined columns (CASSANDRA-10576) + * Fix PartitionUpdate.operationCount()for updates with static column operations (CASSANDRA-10606) + * Fix thrift get() queries with defined columns (CASSANDRA-10586) + * Fix marking of indexes as built and removed (CASSANDRA-10601) + * Skip initialization of non-registered 2i instances, remove Index::getIndexName (CASSANDRA-10595) + * Fix batches on multiple tables (CASSANDRA-10554) + * Ensure compaction options are validated when updating KeyspaceMetadata (CASSANDRA-10569) + * Flatten Iterator Transformation Hierarchy (CASSANDRA-9975) + * Remove token generator (CASSANDRA-5261) + * RolesCache should not be created for any authenticator that does not requireAuthentication (CASSANDRA-10562) + * Fix LogTransaction checking only a single directory for files (CASSANDRA-10421) + * Fix handling of range tombstones when reading old format sstables (CASSANDRA-10360) + * Aggregate with Initial Condition fails with C* 3.0
[2/4] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' 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/d434a33a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d434a33a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d434a33a Branch: refs/heads/cassandra-3.0 Commit: d434a33ace2dfe6715f4857f9537ee884f4ef410 Parents: 73a730f a8e8a67 Author: Marcus ErikssonAuthored: Tue Nov 17 10:07:04 2015 +0100 Committer: Marcus Eriksson Committed: Tue Nov 17 10:07:04 2015 +0100 -- CHANGES.txt| 1 + .../apache/cassandra/repair/messages/RepairOption.java | 3 +++ .../org/apache/cassandra/service/StorageService.java | 4 .../cassandra/repair/messages/RepairOptionTest.java| 13 +++-- 4 files changed, 19 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d434a33a/CHANGES.txt -- diff --cc CHANGES.txt index 5705453,b6b394a..489a76d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,16 -1,5 +1,17 @@@ -2.1.12 +2.2.4 + * Fix SimpleDateType type compatibility (CASSANDRA-10027) + * (Hadoop) fix splits calculation (CASSANDRA-10640) + * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058) + * (cqlsh) show partial trace if incomplete after max_trace_wait (CASSANDRA-7645) + * Use most up-to-date version of schema for system tables (CASSANDRA-10652) + * Deprecate memory_allocator in cassandra.yaml (CASSANDRA-10581,10628) + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) +Merged from 2.1: + * Reject incremental repair with subrange repair (CASSANDRA-10422) * Add a nodetool command to refresh size_estimates (CASSANDRA-9579) * Shutdown compaction in drain to prevent leak (CASSANDRA-10079) * Invalidate cache after stream receive task is completed (CASSANDRA-10341) http://git-wip-us.apache.org/repos/asf/cassandra/blob/d434a33a/src/java/org/apache/cassandra/repair/messages/RepairOption.java -- diff --cc src/java/org/apache/cassandra/repair/messages/RepairOption.java index f3e452c,000..1780b6b mode 100644,00..100644 --- a/src/java/org/apache/cassandra/repair/messages/RepairOption.java +++ b/src/java/org/apache/cassandra/repair/messages/RepairOption.java @@@ -1,308 -1,0 +1,311 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.repair.messages; + +import java.util.*; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.cassandra.config.Config; +import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.dht.IPartitioner; +import org.apache.cassandra.dht.Range; +import org.apache.cassandra.dht.Token; +import org.apache.cassandra.repair.RepairParallelism; +import org.apache.cassandra.tools.nodetool.Repair; +import org.apache.cassandra.utils.FBUtilities; + +/** + * Repair options. + */ +public class RepairOption +{ +public static final String PARALLELISM_KEY = "parallelism"; +public static final String PRIMARY_RANGE_KEY = "primaryRange"; +public static final String INCREMENTAL_KEY = "incremental"; +public static final String JOB_THREADS_KEY = "jobThreads"; +public static final String RANGES_KEY = "ranges"; +public static final String COLUMNFAMILIES_KEY = "columnFamilies"; +public static final String DATACENTERS_KEY = "dataCenters"; +public static final String HOSTS_KEY = "hosts"; +public static final String TRACE_KEY = "trace"; + +// we don't want to push nodes too much for repair +public static final int MAX_JOB_THREADS = 4; + +
[4/6] 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/eb8afb71 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/eb8afb71 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/eb8afb71 Branch: refs/heads/trunk Commit: eb8afb71f52c65855efa1d7e8d3ef314ab7373e2 Parents: c0480d8 99b82db Author: Marcus ErikssonAuthored: Tue Nov 17 10:13:18 2015 +0100 Committer: Marcus Eriksson Committed: Tue Nov 17 10:13:18 2015 +0100 -- CHANGES.txt | 2 ++ .../cassandra/repair/messages/RepairOption.java | 18 +++--- .../cassandra/service/ActiveRepairService.java| 2 ++ .../apache/cassandra/service/StorageService.java | 9 +++-- .../repair/messages/RepairOptionTest.java | 17 +++-- 5 files changed, 41 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/eb8afb71/CHANGES.txt -- diff --cc CHANGES.txt index 8bb67e1,f5d3416..13647cc --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,56 -1,8 +1,58 @@@ -2.2.4 +3.0.1 + * Correctly preserve deletion info on updated rows when notifying indexers + of single-row deletions (CASSANDRA-10694) + * Notify indexers of partition delete during cleanup (CASSANDRA-10685) + * Keep the file open in trySkipCache (CASSANDRA-10669) + * Updated trigger example (CASSANDRA-10257) +Merged from 2.2: + * Don't do anticompaction after subrange repair (CASSANDRA-10422) * Fix SimpleDateType type compatibility (CASSANDRA-10027) * (Hadoop) fix splits calculation (CASSANDRA-10640) * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058) +Merged from 2.1: ++ * Reject incremental repair with subrange repair (CASSANDRA-10422) + * Add a nodetool command to refresh size_estimates (CASSANDRA-9579) + * Invalidate cache after stream receive task is completed (CASSANDRA-10341) + * Reject counter writes in CQLSSTableWriter (CASSANDRA-10258) + * Remove superfluous COUNTER_MUTATION stage mapping (CASSANDRA-10605) + + +3.0 + * Fix AssertionError while flushing memtable due to materialized views + incorrectly inserting empty rows (CASSANDRA-10614) + * Store UDA initcond as CQL literal in the schema table, instead of a blob (CASSANDRA-10650) + * Don't use -1 for the position of partition key in schema (CASSANDRA-10491) + * Fix distinct queries in mixed version cluster (CASSANDRA-10573) + * Skip sstable on clustering in names query (CASSANDRA-10571) + * Remove value skipping as it breaks read-repair (CASSANDRA-10655) + * Fix bootstrapping with MVs (CASSANDRA-10621) + * Make sure EACH_QUORUM reads are using NTS (CASSANDRA-10584) + * Fix MV replica filtering for non-NetworkTopologyStrategy (CASSANDRA-10634) + * (Hadoop) fix CIF describeSplits() not handling 0 size estimates (CASSANDRA-10600) + * Fix reading of legacy sstables (CASSANDRA-10590) + * Use CQL type names in schema metadata tables (CASSANDRA-10365) + * Guard batchlog replay against integer division by zero (CASSANDRA-9223) + * Fix bug when adding a column to thrift with the same name than a primary key (CASSANDRA-10608) + * Add client address argument to IAuthenticator::newSaslNegotiator (CASSANDRA-8068) + * Fix implementation of LegacyLayout.LegacyBoundComparator (CASSANDRA-10602) + * Don't use 'names query' read path for counters (CASSANDRA-10572) + * Fix backward compatibility for counters (CASSANDRA-10470) + * Remove memory_allocator paramter from cassandra.yaml (CASSANDRA-10581,10628) + * Execute the metadata reload task of all registered indexes on CFS::reload (CASSANDRA-10604) + * Fix thrift cas operations with defined columns (CASSANDRA-10576) + * Fix PartitionUpdate.operationCount()for updates with static column operations (CASSANDRA-10606) + * Fix thrift get() queries with defined columns (CASSANDRA-10586) + * Fix marking of indexes as built and removed (CASSANDRA-10601) + * Skip initialization of non-registered 2i instances, remove Index::getIndexName (CASSANDRA-10595) + * Fix batches on multiple tables (CASSANDRA-10554) + * Ensure compaction options are validated when updating KeyspaceMetadata (CASSANDRA-10569) + * Flatten Iterator Transformation Hierarchy (CASSANDRA-9975) + * Remove token generator (CASSANDRA-5261) + * RolesCache should not be created for any authenticator that does not requireAuthentication (CASSANDRA-10562) + * Fix LogTransaction checking only a single directory for files (CASSANDRA-10421) + * Fix handling of range tombstones when reading old format sstables (CASSANDRA-10360) + * Aggregate with Initial Condition fails with C* 3.0 (CASSANDRA-10367)
[3/6] cassandra git commit: Don't do anticompaction after subrange repair
Don't do anticompaction after subrange repair Patch by Ariel Weisberg; reviewed by marcuse for CASSANDRA-10422 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/99b82dbb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/99b82dbb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/99b82dbb Branch: refs/heads/trunk Commit: 99b82dbb43277035562e7b82bb9bdebd84510e96 Parents: d434a33 Author: Ariel Weisberg <ariel.weisb...@datastax.com> Authored: Tue Nov 10 13:08:05 2015 -0500 Committer: Marcus Eriksson <marc...@apache.org> Committed: Tue Nov 17 10:07:59 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/repair/messages/RepairOption.java | 19 ++- .../cassandra/service/ActiveRepairService.java | 2 ++ .../apache/cassandra/service/StorageService.java | 9 + .../repair/messages/RepairOptionTest.java| 10 +++--- 5 files changed, 29 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/99b82dbb/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 489a76d..f5d3416 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.4 + * Don't do anticompaction after subrange repair (CASSANDRA-10422) * Fix SimpleDateType type compatibility (CASSANDRA-10027) * (Hadoop) fix splits calculation (CASSANDRA-10640) * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058) http://git-wip-us.apache.org/repos/asf/cassandra/blob/99b82dbb/src/java/org/apache/cassandra/repair/messages/RepairOption.java -- diff --git a/src/java/org/apache/cassandra/repair/messages/RepairOption.java b/src/java/org/apache/cassandra/repair/messages/RepairOption.java index 1780b6b..d50a2ed 100644 --- a/src/java/org/apache/cassandra/repair/messages/RepairOption.java +++ b/src/java/org/apache/cassandra/repair/messages/RepairOption.java @@ -145,8 +145,9 @@ public class RepairOption if (rangesStr != null) { if (incremental) -throw new IllegalArgumentException("Incremental repair can't be requested with subrange repair " + - "because each subrange repair would generate an anti-compacted table"); +logger.warn("Incremental repair can't be requested with subrange repair " + +"because each subrange repair would generate an anti-compacted table. " + +"The repair will occur but without anti-compaction."); StringTokenizer tokenizer = new StringTokenizer(rangesStr, ","); while (tokenizer.hasMoreTokens()) { @@ -161,7 +162,7 @@ public class RepairOption } } -RepairOption option = new RepairOption(parallelism, primaryRange, incremental, trace, jobThreads, ranges); +RepairOption option = new RepairOption(parallelism, primaryRange, incremental, trace, jobThreads, ranges, !ranges.isEmpty()); // data centers String dataCentersStr = options.get(DATACENTERS_KEY); @@ -220,13 +221,14 @@ public class RepairOption private final boolean incremental; private final boolean trace; private final int jobThreads; +private final boolean isSubrangeRepair; private final Collection columnFamilies = new HashSet<>(); private final Collection dataCenters = new HashSet<>(); private final Collection hosts = new HashSet<>(); private final Collection<Range> ranges = new HashSet<>(); -public RepairOption(RepairParallelism parallelism, boolean primaryRange, boolean incremental, boolean trace, int jobThreads, Collection<Range> ranges) +public RepairOption(RepairParallelism parallelism, boolean primaryRange, boolean incremental, boolean trace, int jobThreads, Collection<Range> ranges, boolean isSubrangeRepair) { if (FBUtilities.isWindows() && (DatabaseDescriptor.getDiskAccessMode() != Config.DiskAccessMode.standard || DatabaseDescriptor.getIndexAccessMode() != Config.DiskAccessMode.standard) && @@ -243,6 +245,7 @@ public class RepairOption this.trace = trace; this.jobThreads = jobThreads; this.ranges.addAll(ranges); +this.isSubrangeRepair = isSubrangeRepair; } public RepairParallelism getParallelism() @@ -292,8 +295,14 @@ public class RepairOption public boolean isGlobal() { -return dataCenters.isEmpty() && hosts.isEmpty(); +retu
[1/4] cassandra git commit: Reject incremental repair requests combined with subrange repair
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 c0480d8bb -> eb8afb71f Reject incremental repair requests combined with subrange repair Patch by Ariel Weisberg; reviewed by marcuse for CASSANDRA-10422 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a8e8a673 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a8e8a673 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a8e8a673 Branch: refs/heads/cassandra-3.0 Commit: a8e8a67306c0b26b8fe9c74a1fb00bacfa224cf7 Parents: 7e056fa Author: Ariel Weisberg <ariel.weisb...@datastax.com> Authored: Thu Oct 29 12:36:32 2015 -0400 Committer: Marcus Eriksson <marc...@apache.org> Committed: Tue Nov 17 09:57:15 2015 +0100 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/service/StorageService.java | 3 +++ .../org/apache/cassandra/service/StorageServiceServerTest.java | 6 ++ 3 files changed, 10 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 2eeda94..b6b394a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Reject incremental repair with subrange repair (CASSANDRA-10422) * Add a nodetool command to refresh size_estimates (CASSANDRA-9579) * Shutdown compaction in drain to prevent leak (CASSANDRA-10079) * Invalidate cache after stream receive task is completed (CASSANDRA-10341) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/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 665ce3a..03c1960 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -2830,6 +2830,9 @@ public class StorageService extends NotificationBroadcasterSupport implements IE public int forceRepairRangeAsync(String beginToken, String endToken, String keyspaceName, boolean isSequential, boolean isLocal, boolean fullRepair, String... columnFamilies) { +if (!fullRepair) +throw new IllegalArgumentException("Incremental repair can't be requested with subrange repair because " + + "each subrange repair would generate an anti-compacted table"); Collection<Range> repairingRange = createRepairRangeFrom(beginToken, endToken); logger.info("starting user-requested repair of range {} for keyspace {} and column families {}", http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java -- diff --git a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java index dd25b35..564239b 100644 --- a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java +++ b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java @@ -508,4 +508,10 @@ public class StorageServiceServerTest repairRangeFrom = StorageService.instance.createRepairRangeFrom("2000", "2000"); assert repairRangeFrom.size() == 0; } + +@Test(expected=IllegalArgumentException.class) +public void testIncrementalRepairWithSubrangesThrows() throws Exception +{ +StorageService.instance.forceRepairRangeAsync("", "", "", true, true, false, ""); +} }
[5/5] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.1
Merge branch 'cassandra-3.0' into cassandra-3.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/798a7a8f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/798a7a8f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/798a7a8f Branch: refs/heads/cassandra-3.1 Commit: 798a7a8fe8e7f28605341ebabc538908c3ff8dba Parents: 36e7677 eb8afb7 Author: Marcus ErikssonAuthored: Tue Nov 17 10:13:33 2015 +0100 Committer: Marcus Eriksson Committed: Tue Nov 17 10:13:33 2015 +0100 -- CHANGES.txt | 2 ++ .../cassandra/repair/messages/RepairOption.java | 18 +++--- .../cassandra/service/ActiveRepairService.java| 2 ++ .../apache/cassandra/service/StorageService.java | 9 +++-- .../repair/messages/RepairOptionTest.java | 17 +++-- 5 files changed, 41 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/798a7a8f/CHANGES.txt --
[3/4] cassandra git commit: Don't do anticompaction after subrange repair
Don't do anticompaction after subrange repair Patch by Ariel Weisberg; reviewed by marcuse for CASSANDRA-10422 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/99b82dbb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/99b82dbb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/99b82dbb Branch: refs/heads/cassandra-3.0 Commit: 99b82dbb43277035562e7b82bb9bdebd84510e96 Parents: d434a33 Author: Ariel Weisberg <ariel.weisb...@datastax.com> Authored: Tue Nov 10 13:08:05 2015 -0500 Committer: Marcus Eriksson <marc...@apache.org> Committed: Tue Nov 17 10:07:59 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/repair/messages/RepairOption.java | 19 ++- .../cassandra/service/ActiveRepairService.java | 2 ++ .../apache/cassandra/service/StorageService.java | 9 + .../repair/messages/RepairOptionTest.java| 10 +++--- 5 files changed, 29 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/99b82dbb/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 489a76d..f5d3416 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.4 + * Don't do anticompaction after subrange repair (CASSANDRA-10422) * Fix SimpleDateType type compatibility (CASSANDRA-10027) * (Hadoop) fix splits calculation (CASSANDRA-10640) * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058) http://git-wip-us.apache.org/repos/asf/cassandra/blob/99b82dbb/src/java/org/apache/cassandra/repair/messages/RepairOption.java -- diff --git a/src/java/org/apache/cassandra/repair/messages/RepairOption.java b/src/java/org/apache/cassandra/repair/messages/RepairOption.java index 1780b6b..d50a2ed 100644 --- a/src/java/org/apache/cassandra/repair/messages/RepairOption.java +++ b/src/java/org/apache/cassandra/repair/messages/RepairOption.java @@ -145,8 +145,9 @@ public class RepairOption if (rangesStr != null) { if (incremental) -throw new IllegalArgumentException("Incremental repair can't be requested with subrange repair " + - "because each subrange repair would generate an anti-compacted table"); +logger.warn("Incremental repair can't be requested with subrange repair " + +"because each subrange repair would generate an anti-compacted table. " + +"The repair will occur but without anti-compaction."); StringTokenizer tokenizer = new StringTokenizer(rangesStr, ","); while (tokenizer.hasMoreTokens()) { @@ -161,7 +162,7 @@ public class RepairOption } } -RepairOption option = new RepairOption(parallelism, primaryRange, incremental, trace, jobThreads, ranges); +RepairOption option = new RepairOption(parallelism, primaryRange, incremental, trace, jobThreads, ranges, !ranges.isEmpty()); // data centers String dataCentersStr = options.get(DATACENTERS_KEY); @@ -220,13 +221,14 @@ public class RepairOption private final boolean incremental; private final boolean trace; private final int jobThreads; +private final boolean isSubrangeRepair; private final Collection columnFamilies = new HashSet<>(); private final Collection dataCenters = new HashSet<>(); private final Collection hosts = new HashSet<>(); private final Collection<Range> ranges = new HashSet<>(); -public RepairOption(RepairParallelism parallelism, boolean primaryRange, boolean incremental, boolean trace, int jobThreads, Collection<Range> ranges) +public RepairOption(RepairParallelism parallelism, boolean primaryRange, boolean incremental, boolean trace, int jobThreads, Collection<Range> ranges, boolean isSubrangeRepair) { if (FBUtilities.isWindows() && (DatabaseDescriptor.getDiskAccessMode() != Config.DiskAccessMode.standard || DatabaseDescriptor.getIndexAccessMode() != Config.DiskAccessMode.standard) && @@ -243,6 +245,7 @@ public class RepairOption this.trace = trace; this.jobThreads = jobThreads; this.ranges.addAll(ranges); +this.isSubrangeRepair = isSubrangeRepair; } public RepairParallelism getParallelism() @@ -292,8 +295,14 @@ public class RepairOption public boolean isGlobal() { -return dataCenters.isEmpty() && hosts
[2/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' 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/d434a33a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d434a33a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d434a33a Branch: refs/heads/trunk Commit: d434a33ace2dfe6715f4857f9537ee884f4ef410 Parents: 73a730f a8e8a67 Author: Marcus ErikssonAuthored: Tue Nov 17 10:07:04 2015 +0100 Committer: Marcus Eriksson Committed: Tue Nov 17 10:07:04 2015 +0100 -- CHANGES.txt| 1 + .../apache/cassandra/repair/messages/RepairOption.java | 3 +++ .../org/apache/cassandra/service/StorageService.java | 4 .../cassandra/repair/messages/RepairOptionTest.java| 13 +++-- 4 files changed, 19 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d434a33a/CHANGES.txt -- diff --cc CHANGES.txt index 5705453,b6b394a..489a76d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,16 -1,5 +1,17 @@@ -2.1.12 +2.2.4 + * Fix SimpleDateType type compatibility (CASSANDRA-10027) + * (Hadoop) fix splits calculation (CASSANDRA-10640) + * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058) + * (cqlsh) show partial trace if incomplete after max_trace_wait (CASSANDRA-7645) + * Use most up-to-date version of schema for system tables (CASSANDRA-10652) + * Deprecate memory_allocator in cassandra.yaml (CASSANDRA-10581,10628) + * Expose phi values from failure detector via JMX and tweak debug + and trace logging (CASSANDRA-9526) + * Fix RangeNamesQueryPager (CASSANDRA-10509) + * Deprecate Pig support (CASSANDRA-10542) + * Reduce contention getting instances of CompositeType (CASSANDRA-10433) +Merged from 2.1: + * Reject incremental repair with subrange repair (CASSANDRA-10422) * Add a nodetool command to refresh size_estimates (CASSANDRA-9579) * Shutdown compaction in drain to prevent leak (CASSANDRA-10079) * Invalidate cache after stream receive task is completed (CASSANDRA-10341) http://git-wip-us.apache.org/repos/asf/cassandra/blob/d434a33a/src/java/org/apache/cassandra/repair/messages/RepairOption.java -- diff --cc src/java/org/apache/cassandra/repair/messages/RepairOption.java index f3e452c,000..1780b6b mode 100644,00..100644 --- a/src/java/org/apache/cassandra/repair/messages/RepairOption.java +++ b/src/java/org/apache/cassandra/repair/messages/RepairOption.java @@@ -1,308 -1,0 +1,311 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.repair.messages; + +import java.util.*; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.cassandra.config.Config; +import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.dht.IPartitioner; +import org.apache.cassandra.dht.Range; +import org.apache.cassandra.dht.Token; +import org.apache.cassandra.repair.RepairParallelism; +import org.apache.cassandra.tools.nodetool.Repair; +import org.apache.cassandra.utils.FBUtilities; + +/** + * Repair options. + */ +public class RepairOption +{ +public static final String PARALLELISM_KEY = "parallelism"; +public static final String PRIMARY_RANGE_KEY = "primaryRange"; +public static final String INCREMENTAL_KEY = "incremental"; +public static final String JOB_THREADS_KEY = "jobThreads"; +public static final String RANGES_KEY = "ranges"; +public static final String COLUMNFAMILIES_KEY = "columnFamilies"; +public static final String DATACENTERS_KEY = "dataCenters"; +public static final String HOSTS_KEY = "hosts"; +public static final String TRACE_KEY = "trace"; + +// we don't want to push nodes too much for repair +public static final int MAX_JOB_THREADS = 4; + +private
[4/5] 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/eb8afb71 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/eb8afb71 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/eb8afb71 Branch: refs/heads/cassandra-3.1 Commit: eb8afb71f52c65855efa1d7e8d3ef314ab7373e2 Parents: c0480d8 99b82db Author: Marcus ErikssonAuthored: Tue Nov 17 10:13:18 2015 +0100 Committer: Marcus Eriksson Committed: Tue Nov 17 10:13:18 2015 +0100 -- CHANGES.txt | 2 ++ .../cassandra/repair/messages/RepairOption.java | 18 +++--- .../cassandra/service/ActiveRepairService.java| 2 ++ .../apache/cassandra/service/StorageService.java | 9 +++-- .../repair/messages/RepairOptionTest.java | 17 +++-- 5 files changed, 41 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/eb8afb71/CHANGES.txt -- diff --cc CHANGES.txt index 8bb67e1,f5d3416..13647cc --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,56 -1,8 +1,58 @@@ -2.2.4 +3.0.1 + * Correctly preserve deletion info on updated rows when notifying indexers + of single-row deletions (CASSANDRA-10694) + * Notify indexers of partition delete during cleanup (CASSANDRA-10685) + * Keep the file open in trySkipCache (CASSANDRA-10669) + * Updated trigger example (CASSANDRA-10257) +Merged from 2.2: + * Don't do anticompaction after subrange repair (CASSANDRA-10422) * Fix SimpleDateType type compatibility (CASSANDRA-10027) * (Hadoop) fix splits calculation (CASSANDRA-10640) * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058) +Merged from 2.1: ++ * Reject incremental repair with subrange repair (CASSANDRA-10422) + * Add a nodetool command to refresh size_estimates (CASSANDRA-9579) + * Invalidate cache after stream receive task is completed (CASSANDRA-10341) + * Reject counter writes in CQLSSTableWriter (CASSANDRA-10258) + * Remove superfluous COUNTER_MUTATION stage mapping (CASSANDRA-10605) + + +3.0 + * Fix AssertionError while flushing memtable due to materialized views + incorrectly inserting empty rows (CASSANDRA-10614) + * Store UDA initcond as CQL literal in the schema table, instead of a blob (CASSANDRA-10650) + * Don't use -1 for the position of partition key in schema (CASSANDRA-10491) + * Fix distinct queries in mixed version cluster (CASSANDRA-10573) + * Skip sstable on clustering in names query (CASSANDRA-10571) + * Remove value skipping as it breaks read-repair (CASSANDRA-10655) + * Fix bootstrapping with MVs (CASSANDRA-10621) + * Make sure EACH_QUORUM reads are using NTS (CASSANDRA-10584) + * Fix MV replica filtering for non-NetworkTopologyStrategy (CASSANDRA-10634) + * (Hadoop) fix CIF describeSplits() not handling 0 size estimates (CASSANDRA-10600) + * Fix reading of legacy sstables (CASSANDRA-10590) + * Use CQL type names in schema metadata tables (CASSANDRA-10365) + * Guard batchlog replay against integer division by zero (CASSANDRA-9223) + * Fix bug when adding a column to thrift with the same name than a primary key (CASSANDRA-10608) + * Add client address argument to IAuthenticator::newSaslNegotiator (CASSANDRA-8068) + * Fix implementation of LegacyLayout.LegacyBoundComparator (CASSANDRA-10602) + * Don't use 'names query' read path for counters (CASSANDRA-10572) + * Fix backward compatibility for counters (CASSANDRA-10470) + * Remove memory_allocator paramter from cassandra.yaml (CASSANDRA-10581,10628) + * Execute the metadata reload task of all registered indexes on CFS::reload (CASSANDRA-10604) + * Fix thrift cas operations with defined columns (CASSANDRA-10576) + * Fix PartitionUpdate.operationCount()for updates with static column operations (CASSANDRA-10606) + * Fix thrift get() queries with defined columns (CASSANDRA-10586) + * Fix marking of indexes as built and removed (CASSANDRA-10601) + * Skip initialization of non-registered 2i instances, remove Index::getIndexName (CASSANDRA-10595) + * Fix batches on multiple tables (CASSANDRA-10554) + * Ensure compaction options are validated when updating KeyspaceMetadata (CASSANDRA-10569) + * Flatten Iterator Transformation Hierarchy (CASSANDRA-9975) + * Remove token generator (CASSANDRA-5261) + * RolesCache should not be created for any authenticator that does not requireAuthentication (CASSANDRA-10562) + * Fix LogTransaction checking only a single directory for files (CASSANDRA-10421) + * Fix handling of range tombstones when reading old format sstables (CASSANDRA-10360) + * Aggregate with Initial Condition fails with C* 3.0
[3/3] cassandra git commit: Don't do anticompaction after subrange repair
Don't do anticompaction after subrange repair Patch by Ariel Weisberg; reviewed by marcuse for CASSANDRA-10422 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/99b82dbb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/99b82dbb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/99b82dbb Branch: refs/heads/cassandra-2.2 Commit: 99b82dbb43277035562e7b82bb9bdebd84510e96 Parents: d434a33 Author: Ariel Weisberg <ariel.weisb...@datastax.com> Authored: Tue Nov 10 13:08:05 2015 -0500 Committer: Marcus Eriksson <marc...@apache.org> Committed: Tue Nov 17 10:07:59 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/repair/messages/RepairOption.java | 19 ++- .../cassandra/service/ActiveRepairService.java | 2 ++ .../apache/cassandra/service/StorageService.java | 9 + .../repair/messages/RepairOptionTest.java| 10 +++--- 5 files changed, 29 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/99b82dbb/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 489a76d..f5d3416 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.4 + * Don't do anticompaction after subrange repair (CASSANDRA-10422) * Fix SimpleDateType type compatibility (CASSANDRA-10027) * (Hadoop) fix splits calculation (CASSANDRA-10640) * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058) http://git-wip-us.apache.org/repos/asf/cassandra/blob/99b82dbb/src/java/org/apache/cassandra/repair/messages/RepairOption.java -- diff --git a/src/java/org/apache/cassandra/repair/messages/RepairOption.java b/src/java/org/apache/cassandra/repair/messages/RepairOption.java index 1780b6b..d50a2ed 100644 --- a/src/java/org/apache/cassandra/repair/messages/RepairOption.java +++ b/src/java/org/apache/cassandra/repair/messages/RepairOption.java @@ -145,8 +145,9 @@ public class RepairOption if (rangesStr != null) { if (incremental) -throw new IllegalArgumentException("Incremental repair can't be requested with subrange repair " + - "because each subrange repair would generate an anti-compacted table"); +logger.warn("Incremental repair can't be requested with subrange repair " + +"because each subrange repair would generate an anti-compacted table. " + +"The repair will occur but without anti-compaction."); StringTokenizer tokenizer = new StringTokenizer(rangesStr, ","); while (tokenizer.hasMoreTokens()) { @@ -161,7 +162,7 @@ public class RepairOption } } -RepairOption option = new RepairOption(parallelism, primaryRange, incremental, trace, jobThreads, ranges); +RepairOption option = new RepairOption(parallelism, primaryRange, incremental, trace, jobThreads, ranges, !ranges.isEmpty()); // data centers String dataCentersStr = options.get(DATACENTERS_KEY); @@ -220,13 +221,14 @@ public class RepairOption private final boolean incremental; private final boolean trace; private final int jobThreads; +private final boolean isSubrangeRepair; private final Collection columnFamilies = new HashSet<>(); private final Collection dataCenters = new HashSet<>(); private final Collection hosts = new HashSet<>(); private final Collection<Range> ranges = new HashSet<>(); -public RepairOption(RepairParallelism parallelism, boolean primaryRange, boolean incremental, boolean trace, int jobThreads, Collection<Range> ranges) +public RepairOption(RepairParallelism parallelism, boolean primaryRange, boolean incremental, boolean trace, int jobThreads, Collection<Range> ranges, boolean isSubrangeRepair) { if (FBUtilities.isWindows() && (DatabaseDescriptor.getDiskAccessMode() != Config.DiskAccessMode.standard || DatabaseDescriptor.getIndexAccessMode() != Config.DiskAccessMode.standard) && @@ -243,6 +245,7 @@ public class RepairOption this.trace = trace; this.jobThreads = jobThreads; this.ranges.addAll(ranges); +this.isSubrangeRepair = isSubrangeRepair; } public RepairParallelism getParallelism() @@ -292,8 +295,14 @@ public class RepairOption public boolean isGlobal() { -return dataCenters.isEmpty() && hosts
[5/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.1
Merge branch 'cassandra-3.0' into cassandra-3.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/798a7a8f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/798a7a8f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/798a7a8f Branch: refs/heads/trunk Commit: 798a7a8fe8e7f28605341ebabc538908c3ff8dba Parents: 36e7677 eb8afb7 Author: Marcus ErikssonAuthored: Tue Nov 17 10:13:33 2015 +0100 Committer: Marcus Eriksson Committed: Tue Nov 17 10:13:33 2015 +0100 -- CHANGES.txt | 2 ++ .../cassandra/repair/messages/RepairOption.java | 18 +++--- .../cassandra/service/ActiveRepairService.java| 2 ++ .../apache/cassandra/service/StorageService.java | 9 +++-- .../repair/messages/RepairOptionTest.java | 17 +++-- 5 files changed, 41 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/798a7a8f/CHANGES.txt --
[1/6] cassandra git commit: Reject incremental repair requests combined with subrange repair
Repository: cassandra Updated Branches: refs/heads/trunk 0010fce6d -> 6645062ca Reject incremental repair requests combined with subrange repair Patch by Ariel Weisberg; reviewed by marcuse for CASSANDRA-10422 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a8e8a673 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a8e8a673 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a8e8a673 Branch: refs/heads/trunk Commit: a8e8a67306c0b26b8fe9c74a1fb00bacfa224cf7 Parents: 7e056fa Author: Ariel Weisberg <ariel.weisb...@datastax.com> Authored: Thu Oct 29 12:36:32 2015 -0400 Committer: Marcus Eriksson <marc...@apache.org> Committed: Tue Nov 17 09:57:15 2015 +0100 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/service/StorageService.java | 3 +++ .../org/apache/cassandra/service/StorageServiceServerTest.java | 6 ++ 3 files changed, 10 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 2eeda94..b6b394a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Reject incremental repair with subrange repair (CASSANDRA-10422) * Add a nodetool command to refresh size_estimates (CASSANDRA-9579) * Shutdown compaction in drain to prevent leak (CASSANDRA-10079) * Invalidate cache after stream receive task is completed (CASSANDRA-10341) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/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 665ce3a..03c1960 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -2830,6 +2830,9 @@ public class StorageService extends NotificationBroadcasterSupport implements IE public int forceRepairRangeAsync(String beginToken, String endToken, String keyspaceName, boolean isSequential, boolean isLocal, boolean fullRepair, String... columnFamilies) { +if (!fullRepair) +throw new IllegalArgumentException("Incremental repair can't be requested with subrange repair because " + + "each subrange repair would generate an anti-compacted table"); Collection<Range> repairingRange = createRepairRangeFrom(beginToken, endToken); logger.info("starting user-requested repair of range {} for keyspace {} and column families {}", http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java -- diff --git a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java index dd25b35..564239b 100644 --- a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java +++ b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java @@ -508,4 +508,10 @@ public class StorageServiceServerTest repairRangeFrom = StorageService.instance.createRepairRangeFrom("2000", "2000"); assert repairRangeFrom.size() == 0; } + +@Test(expected=IllegalArgumentException.class) +public void testIncrementalRepairWithSubrangesThrows() throws Exception +{ +StorageService.instance.forceRepairRangeAsync("", "", "", true, true, false, ""); +} }
[3/5] cassandra git commit: Don't do anticompaction after subrange repair
Don't do anticompaction after subrange repair Patch by Ariel Weisberg; reviewed by marcuse for CASSANDRA-10422 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/99b82dbb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/99b82dbb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/99b82dbb Branch: refs/heads/cassandra-3.1 Commit: 99b82dbb43277035562e7b82bb9bdebd84510e96 Parents: d434a33 Author: Ariel Weisberg <ariel.weisb...@datastax.com> Authored: Tue Nov 10 13:08:05 2015 -0500 Committer: Marcus Eriksson <marc...@apache.org> Committed: Tue Nov 17 10:07:59 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/repair/messages/RepairOption.java | 19 ++- .../cassandra/service/ActiveRepairService.java | 2 ++ .../apache/cassandra/service/StorageService.java | 9 + .../repair/messages/RepairOptionTest.java| 10 +++--- 5 files changed, 29 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/99b82dbb/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 489a76d..f5d3416 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.4 + * Don't do anticompaction after subrange repair (CASSANDRA-10422) * Fix SimpleDateType type compatibility (CASSANDRA-10027) * (Hadoop) fix splits calculation (CASSANDRA-10640) * (Hadoop) ensure that Cluster instances are always closed (CASSANDRA-10058) http://git-wip-us.apache.org/repos/asf/cassandra/blob/99b82dbb/src/java/org/apache/cassandra/repair/messages/RepairOption.java -- diff --git a/src/java/org/apache/cassandra/repair/messages/RepairOption.java b/src/java/org/apache/cassandra/repair/messages/RepairOption.java index 1780b6b..d50a2ed 100644 --- a/src/java/org/apache/cassandra/repair/messages/RepairOption.java +++ b/src/java/org/apache/cassandra/repair/messages/RepairOption.java @@ -145,8 +145,9 @@ public class RepairOption if (rangesStr != null) { if (incremental) -throw new IllegalArgumentException("Incremental repair can't be requested with subrange repair " + - "because each subrange repair would generate an anti-compacted table"); +logger.warn("Incremental repair can't be requested with subrange repair " + +"because each subrange repair would generate an anti-compacted table. " + +"The repair will occur but without anti-compaction."); StringTokenizer tokenizer = new StringTokenizer(rangesStr, ","); while (tokenizer.hasMoreTokens()) { @@ -161,7 +162,7 @@ public class RepairOption } } -RepairOption option = new RepairOption(parallelism, primaryRange, incremental, trace, jobThreads, ranges); +RepairOption option = new RepairOption(parallelism, primaryRange, incremental, trace, jobThreads, ranges, !ranges.isEmpty()); // data centers String dataCentersStr = options.get(DATACENTERS_KEY); @@ -220,13 +221,14 @@ public class RepairOption private final boolean incremental; private final boolean trace; private final int jobThreads; +private final boolean isSubrangeRepair; private final Collection columnFamilies = new HashSet<>(); private final Collection dataCenters = new HashSet<>(); private final Collection hosts = new HashSet<>(); private final Collection<Range> ranges = new HashSet<>(); -public RepairOption(RepairParallelism parallelism, boolean primaryRange, boolean incremental, boolean trace, int jobThreads, Collection<Range> ranges) +public RepairOption(RepairParallelism parallelism, boolean primaryRange, boolean incremental, boolean trace, int jobThreads, Collection<Range> ranges, boolean isSubrangeRepair) { if (FBUtilities.isWindows() && (DatabaseDescriptor.getDiskAccessMode() != Config.DiskAccessMode.standard || DatabaseDescriptor.getIndexAccessMode() != Config.DiskAccessMode.standard) && @@ -243,6 +245,7 @@ public class RepairOption this.trace = trace; this.jobThreads = jobThreads; this.ranges.addAll(ranges); +this.isSubrangeRepair = isSubrangeRepair; } public RepairParallelism getParallelism() @@ -292,8 +295,14 @@ public class RepairOption public boolean isGlobal() { -return dataCenters.isEmpty() && hosts
[1/3] cassandra git commit: Reject incremental repair requests combined with subrange repair
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 73a730f92 -> 99b82dbb4 Reject incremental repair requests combined with subrange repair Patch by Ariel Weisberg; reviewed by marcuse for CASSANDRA-10422 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a8e8a673 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a8e8a673 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a8e8a673 Branch: refs/heads/cassandra-2.2 Commit: a8e8a67306c0b26b8fe9c74a1fb00bacfa224cf7 Parents: 7e056fa Author: Ariel Weisberg <ariel.weisb...@datastax.com> Authored: Thu Oct 29 12:36:32 2015 -0400 Committer: Marcus Eriksson <marc...@apache.org> Committed: Tue Nov 17 09:57:15 2015 +0100 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/service/StorageService.java | 3 +++ .../org/apache/cassandra/service/StorageServiceServerTest.java | 6 ++ 3 files changed, 10 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 2eeda94..b6b394a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Reject incremental repair with subrange repair (CASSANDRA-10422) * Add a nodetool command to refresh size_estimates (CASSANDRA-9579) * Shutdown compaction in drain to prevent leak (CASSANDRA-10079) * Invalidate cache after stream receive task is completed (CASSANDRA-10341) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/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 665ce3a..03c1960 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -2830,6 +2830,9 @@ public class StorageService extends NotificationBroadcasterSupport implements IE public int forceRepairRangeAsync(String beginToken, String endToken, String keyspaceName, boolean isSequential, boolean isLocal, boolean fullRepair, String... columnFamilies) { +if (!fullRepair) +throw new IllegalArgumentException("Incremental repair can't be requested with subrange repair because " + + "each subrange repair would generate an anti-compacted table"); Collection<Range> repairingRange = createRepairRangeFrom(beginToken, endToken); logger.info("starting user-requested repair of range {} for keyspace {} and column families {}", http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java -- diff --git a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java index dd25b35..564239b 100644 --- a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java +++ b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java @@ -508,4 +508,10 @@ public class StorageServiceServerTest repairRangeFrom = StorageService.instance.createRepairRangeFrom("2000", "2000"); assert repairRangeFrom.size() == 0; } + +@Test(expected=IllegalArgumentException.class) +public void testIncrementalRepairWithSubrangesThrows() throws Exception +{ +StorageService.instance.forceRepairRangeAsync("", "", "", true, true, false, ""); +} }
[6/6] cassandra git commit: Merge branch 'cassandra-3.1' into trunk
Merge branch 'cassandra-3.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6645062c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6645062c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6645062c Branch: refs/heads/trunk Commit: 6645062caaebfa7d77ae0c77db9e33cd1be44005 Parents: 0010fce 798a7a8 Author: Marcus ErikssonAuthored: Tue Nov 17 10:15:58 2015 +0100 Committer: Marcus Eriksson Committed: Tue Nov 17 10:15:58 2015 +0100 -- CHANGES.txt | 2 ++ .../cassandra/repair/messages/RepairOption.java | 18 +++--- .../cassandra/service/ActiveRepairService.java| 2 ++ .../apache/cassandra/service/StorageService.java | 9 +++-- .../repair/messages/RepairOptionTest.java | 17 +++-- 5 files changed, 41 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6645062c/CHANGES.txt --
cassandra git commit: Reject incremental repair requests combined with subrange repair
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 7e056fa27 -> a8e8a6730 Reject incremental repair requests combined with subrange repair Patch by Ariel Weisberg; reviewed by marcuse for CASSANDRA-10422 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a8e8a673 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a8e8a673 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a8e8a673 Branch: refs/heads/cassandra-2.1 Commit: a8e8a67306c0b26b8fe9c74a1fb00bacfa224cf7 Parents: 7e056fa Author: Ariel Weisberg <ariel.weisb...@datastax.com> Authored: Thu Oct 29 12:36:32 2015 -0400 Committer: Marcus Eriksson <marc...@apache.org> Committed: Tue Nov 17 09:57:15 2015 +0100 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/service/StorageService.java | 3 +++ .../org/apache/cassandra/service/StorageServiceServerTest.java | 6 ++ 3 files changed, 10 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 2eeda94..b6b394a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Reject incremental repair with subrange repair (CASSANDRA-10422) * Add a nodetool command to refresh size_estimates (CASSANDRA-9579) * Shutdown compaction in drain to prevent leak (CASSANDRA-10079) * Invalidate cache after stream receive task is completed (CASSANDRA-10341) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/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 665ce3a..03c1960 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -2830,6 +2830,9 @@ public class StorageService extends NotificationBroadcasterSupport implements IE public int forceRepairRangeAsync(String beginToken, String endToken, String keyspaceName, boolean isSequential, boolean isLocal, boolean fullRepair, String... columnFamilies) { +if (!fullRepair) +throw new IllegalArgumentException("Incremental repair can't be requested with subrange repair because " + + "each subrange repair would generate an anti-compacted table"); Collection<Range> repairingRange = createRepairRangeFrom(beginToken, endToken); logger.info("starting user-requested repair of range {} for keyspace {} and column families {}", http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java -- diff --git a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java index dd25b35..564239b 100644 --- a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java +++ b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java @@ -508,4 +508,10 @@ public class StorageServiceServerTest repairRangeFrom = StorageService.instance.createRepairRangeFrom("2000", "2000"); assert repairRangeFrom.size() == 0; } + +@Test(expected=IllegalArgumentException.class) +public void testIncrementalRepairWithSubrangesThrows() throws Exception +{ +StorageService.instance.forceRepairRangeAsync("", "", "", true, true, false, ""); +} }
[2/4] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c2eb7bd7 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c2eb7bd7 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c2eb7bd7 Branch: refs/heads/cassandra-2.2 Commit: c2eb7bd7ddb83d0a4d4612adb0e3ebd773c8ba67 Parents: acdbdc2 0bb32f0 Author: Marcus ErikssonAuthored: Mon Sep 7 07:56:58 2015 +0200 Committer: Marcus Eriksson Committed: Mon Sep 7 07:56:58 2015 +0200 -- src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c2eb7bd7/src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java --
[4/4] cassandra git commit: Properly deserialize PrepareMessage for global repairs
Properly deserialize PrepareMessage for global repairs Patch by marcuse; reviewed by yukim for CASSANDRA-10265 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dae2045f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dae2045f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dae2045f Branch: refs/heads/cassandra-2.2 Commit: dae2045f0b444f4857141463335893becaa05a89 Parents: 99c6ad6 Author: Marcus Eriksson <marc...@apache.org> Authored: Fri Sep 4 10:20:31 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Mon Sep 7 08:04:52 2015 +0200 -- NEWS.txt| 4 .../cassandra/repair/messages/PrepareMessage.java | 12 ++-- .../apache/cassandra/repair/messages/RepairMessage.java | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dae2045f/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 2523af2..4c2c52e 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -22,6 +22,10 @@ Changed Defaults - commitlog_total_space_in_mb will use the smaller of 8192, and 1/4 of the total space of the commitlog volume. (Before: always used 8192) + - Incremental repair is on by default since 2.2.0, run full repairs by + providing the '-full' parameter to nodetool repair. + - Parallel repairs are the default since 2.2.0, run sequential repairs + by providing the '-seq' parameter to nodetool repair. 2.2.1 http://git-wip-us.apache.org/repos/asf/cassandra/blob/dae2045f/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java -- diff --git a/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java b/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java index a57c27e..3a00376 100644 --- a/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java +++ b/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java @@ -34,7 +34,8 @@ import org.apache.cassandra.utils.UUIDSerializer; public class PrepareMessage extends RepairMessage { -public final static MessageSerializer serializer = new PrepareMessageSerializer(); +public final static MessageSerializer serializer = new PrepareMessageSerializer(false); +public final static MessageSerializer globalSerializer = new PrepareMessageSerializer(true); public final List cfIds; public final Collection<Range> ranges; @@ -52,6 +53,13 @@ public class PrepareMessage extends RepairMessage public static class PrepareMessageSerializer implements MessageSerializer { +private final boolean isGlobal; + +public PrepareMessageSerializer(boolean global) +{ +this.isGlobal = global; +} + public void serialize(PrepareMessage message, DataOutputPlus out, int version) throws IOException { out.writeInt(message.cfIds.size()); @@ -80,7 +88,7 @@ public class PrepareMessage extends RepairMessage ranges.add((Range) Range.tokenSerializer.deserialize(in, MessagingService.globalPartitioner(), version)); boolean isIncremental = in.readBoolean(); -return new PrepareMessage(parentRepairSession, cfIds, ranges, isIncremental, false); +return new PrepareMessage(parentRepairSession, cfIds, ranges, isIncremental, isGlobal); } public long serializedSize(PrepareMessage message, int version) http://git-wip-us.apache.org/repos/asf/cassandra/blob/dae2045f/src/java/org/apache/cassandra/repair/messages/RepairMessage.java -- diff --git a/src/java/org/apache/cassandra/repair/messages/RepairMessage.java b/src/java/org/apache/cassandra/repair/messages/RepairMessage.java index d78c2fd..82e474f 100644 --- a/src/java/org/apache/cassandra/repair/messages/RepairMessage.java +++ b/src/java/org/apache/cassandra/repair/messages/RepairMessage.java @@ -45,7 +45,7 @@ public abstract class RepairMessage SYNC_COMPLETE(3, SyncComplete.serializer), ANTICOMPACTION_REQUEST(4, AnticompactionRequest.serializer), PREPARE_MESSAGE(5, PrepareMessage.serializer), -PREPARE_GLOBAL_MESSAGE(8, PrepareMessage.serializer), +PREPARE_GLOBAL_MESSAGE(8, PrepareMessage.globalSerializer), SNAPSHOT(6, SnapshotMessage.serializer), CLEANUP(7, CleanupMessage.serializer);
[1/4] cassandra git commit: Dont propagate exception in sstableexpiredblockers
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 464ca14aa -> dae2045f0 Dont propagate exception in sstableexpiredblockers Patch by marcuse; reviewed by brandonwilliams for CASSANDRA-10240 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0bb32f0b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0bb32f0b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0bb32f0b Branch: refs/heads/cassandra-2.2 Commit: 0bb32f0b6349ca25ac74a171afffed55d5aa8131 Parents: 5bc56c3 Author: Marcus Eriksson <marc...@apache.org> Authored: Wed Sep 2 19:24:36 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Mon Sep 7 07:53:11 2015 +0200 -- src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0bb32f0b/src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java -- diff --git a/src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java b/src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java index b5fa779..d324e73 100644 --- a/src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java +++ b/src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java @@ -80,8 +80,7 @@ public class SSTableExpiredBlockers } catch (Throwable t) { -out.println("Couldn't open sstable: " + sstable.getKey().filenameFor(Component.DATA)); -Throwables.propagate(t); +out.println("Couldn't open sstable: " + sstable.getKey().filenameFor(Component.DATA)+" ("+t.getMessage()+")"); } } }
[2/8] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c2eb7bd7 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c2eb7bd7 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c2eb7bd7 Branch: refs/heads/trunk Commit: c2eb7bd7ddb83d0a4d4612adb0e3ebd773c8ba67 Parents: acdbdc2 0bb32f0 Author: Marcus ErikssonAuthored: Mon Sep 7 07:56:58 2015 +0200 Committer: Marcus Eriksson Committed: Mon Sep 7 07:56:58 2015 +0200 -- src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c2eb7bd7/src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java --
[6/8] cassandra git commit: Properly deserialize PrepareMessage for global repairs
Properly deserialize PrepareMessage for global repairs Patch by marcuse; reviewed by yukim for CASSANDRA-10265 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dae2045f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dae2045f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dae2045f Branch: refs/heads/trunk Commit: dae2045f0b444f4857141463335893becaa05a89 Parents: 99c6ad6 Author: Marcus Eriksson <marc...@apache.org> Authored: Fri Sep 4 10:20:31 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Mon Sep 7 08:04:52 2015 +0200 -- NEWS.txt| 4 .../cassandra/repair/messages/PrepareMessage.java | 12 ++-- .../apache/cassandra/repair/messages/RepairMessage.java | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dae2045f/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 2523af2..4c2c52e 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -22,6 +22,10 @@ Changed Defaults - commitlog_total_space_in_mb will use the smaller of 8192, and 1/4 of the total space of the commitlog volume. (Before: always used 8192) + - Incremental repair is on by default since 2.2.0, run full repairs by + providing the '-full' parameter to nodetool repair. + - Parallel repairs are the default since 2.2.0, run sequential repairs + by providing the '-seq' parameter to nodetool repair. 2.2.1 http://git-wip-us.apache.org/repos/asf/cassandra/blob/dae2045f/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java -- diff --git a/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java b/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java index a57c27e..3a00376 100644 --- a/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java +++ b/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java @@ -34,7 +34,8 @@ import org.apache.cassandra.utils.UUIDSerializer; public class PrepareMessage extends RepairMessage { -public final static MessageSerializer serializer = new PrepareMessageSerializer(); +public final static MessageSerializer serializer = new PrepareMessageSerializer(false); +public final static MessageSerializer globalSerializer = new PrepareMessageSerializer(true); public final List cfIds; public final Collection<Range> ranges; @@ -52,6 +53,13 @@ public class PrepareMessage extends RepairMessage public static class PrepareMessageSerializer implements MessageSerializer { +private final boolean isGlobal; + +public PrepareMessageSerializer(boolean global) +{ +this.isGlobal = global; +} + public void serialize(PrepareMessage message, DataOutputPlus out, int version) throws IOException { out.writeInt(message.cfIds.size()); @@ -80,7 +88,7 @@ public class PrepareMessage extends RepairMessage ranges.add((Range) Range.tokenSerializer.deserialize(in, MessagingService.globalPartitioner(), version)); boolean isIncremental = in.readBoolean(); -return new PrepareMessage(parentRepairSession, cfIds, ranges, isIncremental, false); +return new PrepareMessage(parentRepairSession, cfIds, ranges, isIncremental, isGlobal); } public long serializedSize(PrepareMessage message, int version) http://git-wip-us.apache.org/repos/asf/cassandra/blob/dae2045f/src/java/org/apache/cassandra/repair/messages/RepairMessage.java -- diff --git a/src/java/org/apache/cassandra/repair/messages/RepairMessage.java b/src/java/org/apache/cassandra/repair/messages/RepairMessage.java index d78c2fd..82e474f 100644 --- a/src/java/org/apache/cassandra/repair/messages/RepairMessage.java +++ b/src/java/org/apache/cassandra/repair/messages/RepairMessage.java @@ -45,7 +45,7 @@ public abstract class RepairMessage SYNC_COMPLETE(3, SyncComplete.serializer), ANTICOMPACTION_REQUEST(4, AnticompactionRequest.serializer), PREPARE_MESSAGE(5, PrepareMessage.serializer), -PREPARE_GLOBAL_MESSAGE(8, PrepareMessage.serializer), +PREPARE_GLOBAL_MESSAGE(8, PrepareMessage.globalSerializer), SNAPSHOT(6, SnapshotMessage.serializer), CLEANUP(7, CleanupMessage.serializer);
[4/8] 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/53359607 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/53359607 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/53359607 Branch: refs/heads/trunk Commit: 53359607640b064db91ff772e3c0e487eb03f7c4 Parents: a7895cf 99c6ad6 Author: Marcus ErikssonAuthored: Mon Sep 7 08:01:29 2015 +0200 Committer: Marcus Eriksson Committed: Mon Sep 7 08:01:29 2015 +0200 -- src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/53359607/src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java --
[8/8] cassandra git commit: Merge branch 'cassandra-3.0' into trunk
Merge branch 'cassandra-3.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/51d7aaad Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/51d7aaad Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/51d7aaad Branch: refs/heads/trunk Commit: 51d7aaada74cd0110d1c4255e1df947c830a4ca5 Parents: aa41b6d f669588 Author: Marcus ErikssonAuthored: Mon Sep 7 08:07:04 2015 +0200 Committer: Marcus Eriksson Committed: Mon Sep 7 08:07:04 2015 +0200 -- --