[3/3] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

2015-08-10 Thread marcuse
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

2015-08-10 Thread marcuse
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

2015-08-10 Thread marcuse
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

2015-08-10 Thread marcuse
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

2015-08-10 Thread marcuse
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

2015-08-10 Thread marcuse
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

2015-08-10 Thread marcuse
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)

2015-08-10 Thread marcuse
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

2015-08-10 Thread marcuse
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

2015-08-10 Thread marcuse
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)

2015-08-10 Thread marcuse
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)

2015-08-10 Thread marcuse
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

2015-08-10 Thread marcuse
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

2015-07-13 Thread marcuse
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

2015-07-13 Thread marcuse
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

2015-07-13 Thread marcuse
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

2015-07-13 Thread marcuse
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

2015-07-13 Thread marcuse
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

2015-07-13 Thread marcuse
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

2015-07-13 Thread marcuse
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

2015-07-13 Thread marcuse
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

2015-07-13 Thread marcuse
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

2015-07-13 Thread marcuse
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

2015-08-25 Thread marcuse
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

2015-08-25 Thread marcuse
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

2015-08-25 Thread marcuse
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

2015-08-25 Thread marcuse
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

2015-08-25 Thread marcuse
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

2015-08-25 Thread marcuse
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

2015-10-27 Thread marcuse
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

2015-10-27 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-27 Thread marcuse
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

2015-10-27 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-27 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-27 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-27 Thread marcuse
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

2015-10-27 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-27 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-27 Thread marcuse
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

2015-10-28 Thread marcuse
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

2015-10-28 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-28 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-28 Thread marcuse
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

2015-10-28 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-28 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-28 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-28 Thread marcuse
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

2015-10-28 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-28 Thread marcuse
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

2015-11-10 Thread marcuse
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

2015-11-10 Thread marcuse
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 Eriksson 
Authored: 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

2015-11-10 Thread marcuse
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

2015-11-10 Thread marcuse
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 Eriksson 
Authored: 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

2015-11-10 Thread marcuse
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

2015-11-10 Thread marcuse
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 Eriksson 
Authored: 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.

2015-10-15 Thread marcuse
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.

2015-10-15 Thread marcuse
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

2015-10-15 Thread marcuse
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 Eriksson 
Authored: 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.

2015-10-15 Thread marcuse
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

2015-10-15 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-15 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-15 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-15 Thread marcuse
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 Eriksson 
Authored: 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.

2015-10-15 Thread marcuse
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

2015-10-15 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-16 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-16 Thread marcuse
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

2015-10-16 Thread marcuse
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

2015-10-12 Thread marcuse
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 Eriksson 
Authored: 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.

2015-10-12 Thread marcuse
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 Knighton 
Authored: 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.

2015-10-12 Thread marcuse
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 Knighton 
Authored: 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

2015-10-07 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-07 Thread marcuse
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 Eriksson 
Authored: 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

2015-10-07 Thread marcuse
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 Eriksson 
Authored: 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

2015-11-17 Thread marcuse
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 Eriksson 
Authored: 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

2015-11-17 Thread marcuse
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 Eriksson 
Authored: 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

2015-11-17 Thread marcuse
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

2015-11-17 Thread marcuse
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 Eriksson 
Authored: 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

2015-11-17 Thread marcuse
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 Eriksson 
Authored: 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

2015-11-17 Thread marcuse
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 Eriksson 
Authored: 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

2015-11-17 Thread marcuse
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

2015-11-17 Thread marcuse
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

2015-11-17 Thread marcuse
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 Eriksson 
Authored: 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

2015-11-17 Thread marcuse
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

2015-11-17 Thread marcuse
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 Eriksson 
Authored: 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

2015-11-17 Thread marcuse
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 Eriksson 
Authored: 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

2015-11-17 Thread marcuse
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

2015-11-17 Thread marcuse
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 Eriksson 
Authored: 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

2015-11-17 Thread marcuse
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

2015-11-17 Thread marcuse
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

2015-11-17 Thread marcuse
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

2015-11-17 Thread marcuse
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 Eriksson 
Authored: 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

2015-11-17 Thread marcuse
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

2015-09-07 Thread marcuse
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 Eriksson 
Authored: 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

2015-09-07 Thread marcuse
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

2015-09-07 Thread marcuse
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

2015-09-07 Thread marcuse
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 Eriksson 
Authored: 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

2015-09-07 Thread marcuse
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

2015-09-07 Thread marcuse
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 Eriksson 
Authored: 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

2015-09-07 Thread marcuse
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 Eriksson 
Authored: Mon Sep 7 08:07:04 2015 +0200
Committer: Marcus Eriksson 
Committed: Mon Sep 7 08:07:04 2015 +0200

--

--




<    5   6   7   8   9   10   11   12   13   14   >