cassandra git commit: Expand use of vints

2015-07-28 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 639d4b240 -> a59be2693


Expand use of vints

patch by Sylvain Lebresne; reviewed by Aleksey Yeschenko for
CASSANDRA-9801


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a59be269
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a59be269
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a59be269

Branch: refs/heads/trunk
Commit: a59be2693e33e899264bc29b37b669d4bb645a74
Parents: 639d4b2
Author: Sylvain Lebresne 
Authored: Tue Jul 14 14:23:28 2015 +0200
Committer: Aleksey Yeschenko 
Committed: Tue Jul 28 17:17:52 2015 +0300

--
 CHANGES.txt |  4 +-
 src/java/org/apache/cassandra/db/Columns.java   | 16 
 src/java/org/apache/cassandra/db/Mutation.java  | 28 +++---
 .../org/apache/cassandra/db/ReadResponse.java   | 15 +++-
 .../cassandra/db/SerializationHeader.java   | 24 ++--
 src/java/org/apache/cassandra/db/Slices.java|  6 +--
 .../db/filter/ClusteringIndexNamesFilter.java   |  6 +--
 .../cassandra/db/filter/ColumnFilter.java   |  6 +--
 .../apache/cassandra/db/filter/DataLimits.java  | 40 ++--
 .../apache/cassandra/db/filter/RowFilter.java   | 12 +++---
 .../rows/UnfilteredRowIteratorSerializer.java   |  6 +--
 .../cassandra/db/rows/UnfilteredSerializer.java | 16 
 12 files changed, 97 insertions(+), 82 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a59be269/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 2db4115..4608492 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -5,8 +5,8 @@
  * Metrics should use up to date nomenclature (CASSANDRA-9448)
  * 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, 9781, 9808, 
9825, 9848,
-   9705, 9859, 9867, 9874, 9828, 9801)
+ * Storage engine refactor (CASSANDRA-8099, 9743, 9746, 9759, 9781, 9808, 9825,
+   9848, 9705, 9859, 9867, 9874, 9828, 9801)
  * 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)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a59be269/src/java/org/apache/cassandra/db/Columns.java
--
diff --git a/src/java/org/apache/cassandra/db/Columns.java 
b/src/java/org/apache/cassandra/db/Columns.java
index 48a4504..03d2e14 100644
--- a/src/java/org/apache/cassandra/db/Columns.java
+++ b/src/java/org/apache/cassandra/db/Columns.java
@@ -17,7 +17,6 @@
  */
 package org.apache.cassandra.db;
 
-import java.io.DataInput;
 import java.io.IOException;
 import java.util.*;
 import java.util.function.Predicate;
@@ -31,6 +30,7 @@ import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.ColumnDefinition;
 import org.apache.cassandra.db.marshal.UTF8Type;
 import org.apache.cassandra.db.marshal.MapType;
+import org.apache.cassandra.io.util.DataInputPlus;
 import org.apache.cassandra.io.util.DataOutputPlus;
 import org.apache.cassandra.utils.ByteBufferUtil;
 
@@ -526,26 +526,26 @@ public class Columns implements Iterable
 {
 public void serialize(Columns columns, DataOutputPlus out) throws 
IOException
 {
-out.writeShort(columns.columnCount());
+out.writeVInt(columns.columnCount());
 for (ColumnDefinition column : columns)
-ByteBufferUtil.writeWithShortLength(column.name.bytes, out);
+ByteBufferUtil.writeWithVIntLength(column.name.bytes, out);
 }
 
 public long serializedSize(Columns columns)
 {
-long size = TypeSizes.sizeof((short)columns.columnCount());
+long size = TypeSizes.sizeofVInt(columns.columnCount());
 for (ColumnDefinition column : columns)
-size += TypeSizes.sizeofWithShortLength(column.name.bytes);
+size += 
ByteBufferUtil.serializedSizeWithVIntLength(column.name.bytes);
 return size;
 }
 
-public Columns deserialize(DataInput in, CFMetaData metadata) throws 
IOException
+public Columns deserialize(DataInputPlus in, CFMetaData metadata) 
throws IOException
 {
-int length = in.readUnsignedShort();
+int length = (int)in.readVInt();
 ColumnDefinition[] columns = new ColumnDefinition[length];
 for (int i = 0; i < length; i++)
 {
-ByteBuffer name = ByteBufferUtil.readWithShortLen

cassandra git commit: Get entropy from /dev/urandom for unit tests

2015-07-28 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 fcb5bd67d -> ae179e453


Get entropy from /dev/urandom for unit tests

patch by Ariel Weisberg; reviewed by Aleksey Yeschenko for
CASSANDRA-9581


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ae179e45
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ae179e45
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ae179e45

Branch: refs/heads/cassandra-2.2
Commit: ae179e45327a133248c06019f87615c9cf69f643
Parents: fcb5bd6
Author: Ariel Weisberg 
Authored: Thu Jun 11 11:49:59 2015 -0400
Committer: Aleksey Yeschenko 
Committed: Tue Jul 28 18:03:46 2015 +0300

--
 build.xml | 2 ++
 1 file changed, 2 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ae179e45/build.xml
--
diff --git a/build.xml b/build.xml
index 9de6ab1..8d5c827 100644
--- a/build.xml
+++ b/build.xml
@@ -1198,6 +1198,8 @@

 
 
+
+

 
   



[1/2] cassandra git commit: Get entropy from /dev/urandom for unit tests

2015-07-28 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 3879bfd1e -> fb10df212


Get entropy from /dev/urandom for unit tests

patch by Ariel Weisberg; reviewed by Aleksey Yeschenko for
CASSANDRA-9581


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ae179e45
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ae179e45
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ae179e45

Branch: refs/heads/trunk
Commit: ae179e45327a133248c06019f87615c9cf69f643
Parents: fcb5bd6
Author: Ariel Weisberg 
Authored: Thu Jun 11 11:49:59 2015 -0400
Committer: Aleksey Yeschenko 
Committed: Tue Jul 28 18:03:46 2015 +0300

--
 build.xml | 2 ++
 1 file changed, 2 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ae179e45/build.xml
--
diff --git a/build.xml b/build.xml
index 9de6ab1..8d5c827 100644
--- a/build.xml
+++ b/build.xml
@@ -1198,6 +1198,8 @@

 
 
+
+

 
   



[2/2] cassandra git commit: Merge branch 'cassandra-2.2' into trunk

2015-07-28 Thread aleksey
Merge branch 'cassandra-2.2' into trunk


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fb10df21
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fb10df21
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fb10df21

Branch: refs/heads/trunk
Commit: fb10df212eebf5870ba93a3b9624049b8bdfbf44
Parents: 3879bfd ae179e4
Author: Aleksey Yeschenko 
Authored: Tue Jul 28 18:10:58 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Jul 28 18:10:58 2015 +0300

--
 build.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb10df21/build.xml
--
diff --cc build.xml
index e6581ea,8d5c827..5cd8f20
--- a/build.xml
+++ b/build.xml
@@@ -1214,10 -1195,11 +1214,10 @@@
  
  
  
 -  
 +
  
-  
- 
 -
+ 
+ 

  




cassandra git commit: Fix little endian handling by NIODataInputStream.readVInt()

2015-07-29 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk d26187e5c -> 85c6b2edb


Fix little endian handling by NIODataInputStream.readVInt()

patch by Ariel Weisberg; reviewed by Aleksey Yeschenko for
CASSANDRA-9865


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/85c6b2ed
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/85c6b2ed
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/85c6b2ed

Branch: refs/heads/trunk
Commit: 85c6b2edb82bdc797a47c29a1d4af0ad2739e0f5
Parents: d26187e
Author: Ariel Weisberg 
Authored: Tue Jul 28 14:15:23 2015 -0400
Committer: Aleksey Yeschenko 
Committed: Wed Jul 29 20:03:11 2015 +0300

--
 CHANGES.txt   | 4 ++--
 src/java/org/apache/cassandra/io/util/NIODataInputStream.java | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/85c6b2ed/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 562fce5..6931701 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -19,8 +19,8 @@
  * 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)
+ * Undeprecate cache recentHitRate (CASSANDRA-6591)
+ * Add support for selectively varint encoding fields (CASSANDRA-9499, 9865)
 
 
 2.2.1

http://git-wip-us.apache.org/repos/asf/cassandra/blob/85c6b2ed/src/java/org/apache/cassandra/io/util/NIODataInputStream.java
--
diff --git a/src/java/org/apache/cassandra/io/util/NIODataInputStream.java 
b/src/java/org/apache/cassandra/io/util/NIODataInputStream.java
index fbe24be..f6c939a 100644
--- a/src/java/org/apache/cassandra/io/util/NIODataInputStream.java
+++ b/src/java/org/apache/cassandra/io/util/NIODataInputStream.java
@@ -23,6 +23,7 @@ import java.io.EOFException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 import java.nio.channels.ReadableByteChannel;
 import java.nio.channels.SeekableByteChannel;
 
@@ -321,6 +322,8 @@ public class NIODataInputStream extends InputStream 
implements DataInputPlus, Cl
 int extraBits = extraBytes * 8;
 
 long retval = buf.getLong(position);
+if (buf.order() == ByteOrder.LITTLE_ENDIAN)
+retval = Long.reverseBytes(retval);
 buf.position(position + extraBytes);
 
 // truncate the bytes we read in excess of those we needed



cassandra git commit: Fix AntiCompactionTest.antiCompactionSizeTest

2015-07-29 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 85c6b2edb -> eca7cbb2e


Fix AntiCompactionTest.antiCompactionSizeTest

relax AntiCompactionTest.antiCompactionSizeTest so the sizes don't have to be
as close, but also verify that the row count doesn't change.

patch by Ariel Weisberg; reviewed by Aleksey Yeschenko


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/eca7cbb2
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/eca7cbb2
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/eca7cbb2

Branch: refs/heads/trunk
Commit: eca7cbb2e20858625c39cf0f9a5a76c6cc905dc0
Parents: 85c6b2e
Author: Ariel Weisberg 
Authored: Tue Jul 28 14:45:21 2015 -0400
Committer: Aleksey Yeschenko 
Committed: Wed Jul 29 20:07:57 2015 +0300

--
 .../apache/cassandra/db/compaction/AntiCompactionTest.java  | 9 +++--
 1 file changed, 7 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/eca7cbb2/test/unit/org/apache/cassandra/db/compaction/AntiCompactionTest.java
--
diff --git 
a/test/unit/org/apache/cassandra/db/compaction/AntiCompactionTest.java 
b/test/unit/org/apache/cassandra/db/compaction/AntiCompactionTest.java
index b85c5ec..73baeeb 100644
--- a/test/unit/org/apache/cassandra/db/compaction/AntiCompactionTest.java
+++ b/test/unit/org/apache/cassandra/db/compaction/AntiCompactionTest.java
@@ -149,10 +149,15 @@ public class AntiCompactionTest
 CompactionManager.instance.performAnticompaction(cfs, 
Arrays.asList(range), refs, txn, 12345);
 }
 long sum = 0;
+long rows = 0;
 for (SSTableReader x : cfs.getLiveSSTables())
+{
 sum += x.bytesOnDisk();
+rows += x.getTotalRows();
+}
 assertEquals(sum, cfs.metric.liveDiskSpaceUsed.getCount());
-assertEquals(origSize, cfs.metric.liveDiskSpaceUsed.getCount(), 
10);
+assertEquals(rows, 1000 * (1000 * 5));//See writeFile for how this 
number is derived
+assertEquals(origSize, cfs.metric.liveDiskSpaceUsed.getCount(), 
1600);
 }
 
 private SSTableReader writeFile(ColumnFamilyStore cfs, int count)
@@ -293,7 +298,7 @@ public class AntiCompactionTest
 }
 Collection sstables = getUnrepairedSSTables(store);
 assertEquals(store.getLiveSSTables().size(), sstables.size());
-
+
 Range range = new Range(new 
BytesToken("-10".getBytes()), new BytesToken("-1".getBytes()));
 List> ranges = Arrays.asList(range);
 



cassandra git commit: Revert "Revert "Expand use of vints""

2015-07-29 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk eca7cbb2e -> 2fea59d5e


Revert "Revert "Expand use of vints""

This reverts commit 59a28615c4f7e746b4dce09f907e875bcd761f65.


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2fea59d5
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2fea59d5
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2fea59d5

Branch: refs/heads/trunk
Commit: 2fea59d5e37abba93280dd9231d6dd9fcd9fff96
Parents: eca7cbb
Author: Aleksey Yeschenko 
Authored: Wed Jul 29 20:09:56 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Wed Jul 29 20:09:56 2015 +0300

--
 CHANGES.txt |  4 +-
 src/java/org/apache/cassandra/db/Columns.java   | 16 
 src/java/org/apache/cassandra/db/Mutation.java  | 28 +++---
 .../org/apache/cassandra/db/ReadResponse.java   | 15 +++-
 .../cassandra/db/SerializationHeader.java   | 24 ++--
 src/java/org/apache/cassandra/db/Slices.java|  6 +--
 .../db/filter/ClusteringIndexNamesFilter.java   |  6 +--
 .../cassandra/db/filter/ColumnFilter.java   |  6 +--
 .../apache/cassandra/db/filter/DataLimits.java  | 40 ++--
 .../apache/cassandra/db/filter/RowFilter.java   | 12 +++---
 .../rows/UnfilteredRowIteratorSerializer.java   |  6 +--
 .../cassandra/db/rows/UnfilteredSerializer.java | 16 
 12 files changed, 97 insertions(+), 82 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2fea59d5/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 6931701..07bd212 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -5,8 +5,8 @@
  * Metrics should use up to date nomenclature (CASSANDRA-9448)
  * 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, 9781, 9808, 
9825, 9848,
-   9705, 9859, 9867, 9874, 9828, 9801)
+ * Storage engine refactor (CASSANDRA-8099, 9743, 9746, 9759, 9781, 9808, 9825,
+   9848, 9705, 9859, 9867, 9874, 9828, 9801)
  * 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)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2fea59d5/src/java/org/apache/cassandra/db/Columns.java
--
diff --git a/src/java/org/apache/cassandra/db/Columns.java 
b/src/java/org/apache/cassandra/db/Columns.java
index 48a4504..03d2e14 100644
--- a/src/java/org/apache/cassandra/db/Columns.java
+++ b/src/java/org/apache/cassandra/db/Columns.java
@@ -17,7 +17,6 @@
  */
 package org.apache.cassandra.db;
 
-import java.io.DataInput;
 import java.io.IOException;
 import java.util.*;
 import java.util.function.Predicate;
@@ -31,6 +30,7 @@ import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.ColumnDefinition;
 import org.apache.cassandra.db.marshal.UTF8Type;
 import org.apache.cassandra.db.marshal.MapType;
+import org.apache.cassandra.io.util.DataInputPlus;
 import org.apache.cassandra.io.util.DataOutputPlus;
 import org.apache.cassandra.utils.ByteBufferUtil;
 
@@ -526,26 +526,26 @@ public class Columns implements Iterable
 {
 public void serialize(Columns columns, DataOutputPlus out) throws 
IOException
 {
-out.writeShort(columns.columnCount());
+out.writeVInt(columns.columnCount());
 for (ColumnDefinition column : columns)
-ByteBufferUtil.writeWithShortLength(column.name.bytes, out);
+ByteBufferUtil.writeWithVIntLength(column.name.bytes, out);
 }
 
 public long serializedSize(Columns columns)
 {
-long size = TypeSizes.sizeof((short)columns.columnCount());
+long size = TypeSizes.sizeofVInt(columns.columnCount());
 for (ColumnDefinition column : columns)
-size += TypeSizes.sizeofWithShortLength(column.name.bytes);
+size += 
ByteBufferUtil.serializedSizeWithVIntLength(column.name.bytes);
 return size;
 }
 
-public Columns deserialize(DataInput in, CFMetaData metadata) throws 
IOException
+public Columns deserialize(DataInputPlus in, CFMetaData metadata) 
throws IOException
 {
-int length = in.readUnsignedShort();
+int length = (int)in.readVInt();
 ColumnDefinition[] columns = new ColumnDefinition[length];
 for (int i = 0; i < length; i++)
 {
-ByteBuffer name = ByteBufferU

[1/2] cassandra git commit: Fix CommitLogUpgradeTest

2015-07-29 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 2fea59d5e -> 5f4cc45cd


Fix CommitLogUpgradeTest

filter hashed/counted rows to only the ones containing the required data.

patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-9790


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fb34b795
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fb34b795
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fb34b795

Branch: refs/heads/trunk
Commit: fb34b7950483abc5a15c09e802852183699c0ecb
Parents: 2fea59d
Author: Branimir Lambov 
Authored: Wed Jul 29 18:56:14 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Wed Jul 29 20:23:41 2015 +0300

--
 .../db/commitlog/CommitLogUpgradeTest.java| 18 +-
 .../db/commitlog/CommitLogUpgradeTestMaker.java   |  2 +-
 2 files changed, 10 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb34b795/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTest.java
--
diff --git 
a/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTest.java 
b/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTest.java
index ce4e605..d8784d9 100644
--- a/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTest.java
+++ b/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTest.java
@@ -23,8 +23,6 @@ package org.apache.cassandra.db.commitlog;
 
 import java.io.*;
 import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
-import java.util.Iterator;
 import java.util.Properties;
 import java.util.UUID;
 
@@ -42,7 +40,6 @@ import org.apache.cassandra.db.Mutation;
 import org.apache.cassandra.db.rows.Cell;
 import org.apache.cassandra.db.rows.Row;
 import org.apache.cassandra.db.marshal.AsciiType;
-import org.apache.cassandra.db.marshal.UTF8Type;
 import org.apache.cassandra.db.marshal.BytesType;
 import org.apache.cassandra.db.partitions.PartitionUpdate;
 import org.apache.cassandra.schema.KeyspaceParams;
@@ -57,6 +54,7 @@ public class CommitLogUpgradeTest
 
 static final String TABLE = "Standard1";
 static final String KEYSPACE = "Keyspace1";
+static final String CELLNAME = "name";
 
 @Test
 public void test20() throws Exception
@@ -75,7 +73,7 @@ public class CommitLogUpgradeTest
 {
 CFMetaData metadata = CFMetaData.Builder.createDense(KEYSPACE, TABLE, 
false, false)
 .addPartitionKey("key", 
AsciiType.instance)
-.addClusteringColumn("col", 
BytesType.instance)
+.addClusteringColumn("col", 
AsciiType.instance)
 .addRegularColumn("val", 
BytesType.instance)
 .build()
 
.compressionParameters(SchemaLoader.getCompressionParameters());
@@ -142,13 +140,15 @@ public class CommitLogUpgradeTest
 for (PartitionUpdate update : mutation.getPartitionUpdates())
 {
 for (Row row : update)
-{
-for (Cell cell : row.cells())
+if (row.clustering().size() > 0 &&
+
AsciiType.instance.compose(row.clustering().get(0)).startsWith(CELLNAME))
 {
-hash = hash(hash, cell.value());
-++cells;
+for (Cell cell : row.cells())
+{
+hash = hash(hash, cell.value());
+++cells;
+}
 }
-}
 }
 return true;
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb34b795/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTestMaker.java
--
diff --git 
a/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTestMaker.java 
b/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTestMaker.java
index cbae7e3..dbdb7fc 100644
--- a/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTestMaker.java
+++ b/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTestMaker.java
@@ -239,7 +239,7 @@ public class CommitLogUpgradeTestMaker
 {
 int sz = randomSize ? tlr.nextInt(cellSize) : cellSize;
 ByteBuffer bytes = randomBytes(sz, tlr);
-builder.newRow("name&qu

[2/2] cassandra git commit: Add upgrade tests for lz4 and snappy compressed 2.2 commit logs

2015-07-29 Thread aleksey
Add upgrade tests for lz4 and snappy compressed 2.2 commit logs

patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-9790


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5f4cc45c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5f4cc45c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5f4cc45c

Branch: refs/heads/trunk
Commit: 5f4cc45cdb9c4da3bd78c1714738dd39b4768ace
Parents: fb34b79
Author: Branimir Lambov 
Authored: Wed Jul 29 19:33:45 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Wed Jul 29 20:25:48 2015 +0300

--
 .../2.2-lz4/CommitLog-5-1438186885380.log| Bin 0 -> 839051 bytes
 .../2.2-lz4/CommitLog-5-1438186885381.log| Bin 0 -> 100 bytes
 test/data/legacy-commitlog/2.2-lz4/hash.txt  |   5 +
 .../2.2-snappy/CommitLog-5-1438186915514.log | Bin 0 -> 820332 bytes
 .../2.2-snappy/CommitLog-5-1438186915515.log | Bin 0 -> 99 bytes
 test/data/legacy-commitlog/2.2-snappy/hash.txt   |   5 +
 .../2.2/CommitLog-5-1438186815314.log| Bin 0 -> 2097152 bytes
 .../2.2/CommitLog-5-1438186815315.log| Bin 0 -> 2097152 bytes
 test/data/legacy-commitlog/2.2/hash.txt  |   5 +
 .../db/commitlog/CommitLogUpgradeTest.java   |  18 ++
 10 files changed, 33 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f4cc45c/test/data/legacy-commitlog/2.2-lz4/CommitLog-5-1438186885380.log
--
diff --git a/test/data/legacy-commitlog/2.2-lz4/CommitLog-5-1438186885380.log 
b/test/data/legacy-commitlog/2.2-lz4/CommitLog-5-1438186885380.log
new file mode 100644
index 000..b98304a
Binary files /dev/null and 
b/test/data/legacy-commitlog/2.2-lz4/CommitLog-5-1438186885380.log differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f4cc45c/test/data/legacy-commitlog/2.2-lz4/CommitLog-5-1438186885381.log
--
diff --git a/test/data/legacy-commitlog/2.2-lz4/CommitLog-5-1438186885381.log 
b/test/data/legacy-commitlog/2.2-lz4/CommitLog-5-1438186885381.log
new file mode 100644
index 000..adac94f
Binary files /dev/null and 
b/test/data/legacy-commitlog/2.2-lz4/CommitLog-5-1438186885381.log differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f4cc45c/test/data/legacy-commitlog/2.2-lz4/hash.txt
--
diff --git a/test/data/legacy-commitlog/2.2-lz4/hash.txt 
b/test/data/legacy-commitlog/2.2-lz4/hash.txt
new file mode 100644
index 000..20aa6e5
--- /dev/null
+++ b/test/data/legacy-commitlog/2.2-lz4/hash.txt
@@ -0,0 +1,5 @@
+#CommitLog upgrade test, version 2.2.0-SNAPSHOT
+#Wed Jul 29 19:21:31 EEST 2015
+cells=6052
+hash=1274136076
+cfid=dc32ce20-360d-11e5-826c-afadad37221d

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f4cc45c/test/data/legacy-commitlog/2.2-snappy/CommitLog-5-1438186915514.log
--
diff --git 
a/test/data/legacy-commitlog/2.2-snappy/CommitLog-5-1438186915514.log 
b/test/data/legacy-commitlog/2.2-snappy/CommitLog-5-1438186915514.log
new file mode 100644
index 000..e69dfb7
Binary files /dev/null and 
b/test/data/legacy-commitlog/2.2-snappy/CommitLog-5-1438186915514.log differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f4cc45c/test/data/legacy-commitlog/2.2-snappy/CommitLog-5-1438186915515.log
--
diff --git 
a/test/data/legacy-commitlog/2.2-snappy/CommitLog-5-1438186915515.log 
b/test/data/legacy-commitlog/2.2-snappy/CommitLog-5-1438186915515.log
new file mode 100644
index 000..3e06675
Binary files /dev/null and 
b/test/data/legacy-commitlog/2.2-snappy/CommitLog-5-1438186915515.log differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f4cc45c/test/data/legacy-commitlog/2.2-snappy/hash.txt
--
diff --git a/test/data/legacy-commitlog/2.2-snappy/hash.txt 
b/test/data/legacy-commitlog/2.2-snappy/hash.txt
new file mode 100644
index 000..f3dd72e
--- /dev/null
+++ b/test/data/legacy-commitlog/2.2-snappy/hash.txt
@@ -0,0 +1,5 @@
+#CommitLog upgrade test, version 2.2.0-SNAPSHOT
+#Wed Jul 29 19:22:01 EEST 2015
+cells=6051
+hash=881633109
+cfid=ee2fe860-360d-11e5-951c-afadad37221d

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f4cc45c/test/data/legacy-commitlog/2.2/CommitLog-5-1438186815314.log
--
diff --git a/test/data/legacy-commitlog/2.2/CommitLog-5-1438186815314.log 
b/test/data/legacy-commitlog/2.2/CommitLog-5-1438186815314

cassandra git commit: Fix CHANGES.txt

2015-07-29 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 33e3af59f -> 2da016921


Fix CHANGES.txt


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2da01692
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2da01692
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2da01692

Branch: refs/heads/cassandra-2.2
Commit: 2da016921d0a3a1bf9e7744bd0f5772b931ced07
Parents: 33e3af5
Author: Aleksey Yeschenko 
Authored: Thu Jul 30 00:11:28 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Jul 30 00:11:28 2015 +0300

--
 CHANGES.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2da01692/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 4b079d4..50ac561 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -10,8 +10,10 @@ Merged from 2.0:
  * Log when messages are dropped due to cross_node_timeout (CASSANDRA-9793)
  * Don't track hotness when opening from snapshot for validation 
(CASSANDRA-9382)
 
+
 2.2.0
- * Fix cqlsh copy methods and other windows specific issues (CASSANDRA-9795) 
+ * Allow the selection of columns together with aggregates (CASSANDRA-9767)
+ * Fix cqlsh copy methods and other windows specific issues (CASSANDRA-9795)
  * Don't wrap byte arrays in SequentialWriter (CASSANDRA-9797)
  * sum() and avg() functions missing for smallint and tinyint types 
(CASSANDRA-9671)
  * Revert CASSANDRA-9542 (allow native functions in UDA) (CASSANDRA-9771)



[1/2] cassandra git commit: Fix CHANGES.txt

2015-07-29 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk b93f05d7d -> 4635f2f95


Fix CHANGES.txt


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2da01692
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2da01692
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2da01692

Branch: refs/heads/trunk
Commit: 2da016921d0a3a1bf9e7744bd0f5772b931ced07
Parents: 33e3af5
Author: Aleksey Yeschenko 
Authored: Thu Jul 30 00:11:28 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Jul 30 00:11:28 2015 +0300

--
 CHANGES.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2da01692/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 4b079d4..50ac561 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -10,8 +10,10 @@ Merged from 2.0:
  * Log when messages are dropped due to cross_node_timeout (CASSANDRA-9793)
  * Don't track hotness when opening from snapshot for validation 
(CASSANDRA-9382)
 
+
 2.2.0
- * Fix cqlsh copy methods and other windows specific issues (CASSANDRA-9795) 
+ * Allow the selection of columns together with aggregates (CASSANDRA-9767)
+ * Fix cqlsh copy methods and other windows specific issues (CASSANDRA-9795)
  * Don't wrap byte arrays in SequentialWriter (CASSANDRA-9797)
  * sum() and avg() functions missing for smallint and tinyint types 
(CASSANDRA-9671)
  * Revert CASSANDRA-9542 (allow native functions in UDA) (CASSANDRA-9771)



[2/2] cassandra git commit: Merge branch 'cassandra-2.2' into trunk

2015-07-29 Thread aleksey
Merge branch 'cassandra-2.2' into trunk


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4635f2f9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4635f2f9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4635f2f9

Branch: refs/heads/trunk
Commit: 4635f2f95ff509bc07b65ad899a3fd9190cb9fc4
Parents: b93f05d 2da0169
Author: Aleksey Yeschenko 
Authored: Thu Jul 30 00:12:02 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Jul 30 00:12:02 2015 +0300

--
 CHANGES.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4635f2f9/CHANGES.txt
--



cassandra git commit: Ninja fix table names

2015-07-30 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk f9947ff6a -> d645bfd46


Ninja fix table names


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d645bfd4
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d645bfd4
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d645bfd4

Branch: refs/heads/trunk
Commit: d645bfd464fcae3e8aef59a08f5eb6c7846ac11c
Parents: f9947ff
Author: Aleksey Yeschenko 
Authored: Thu Jul 30 16:40:23 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Jul 30 16:40:23 2015 +0300

--
 .../org/apache/cassandra/db/SystemKeyspace.java | 34 ++--
 1 file changed, 17 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/d645bfd4/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 3d1f555..e31feaa 100644
--- a/src/java/org/apache/cassandra/db/SystemKeyspace.java
+++ b/src/java/org/apache/cassandra/db/SystemKeyspace.java
@@ -100,8 +100,8 @@ public final class SystemKeyspace
 public static final String SSTABLE_ACTIVITY = "sstable_activity";
 public static final String SIZE_ESTIMATES = "size_estimates";
 public static final String AVAILABLE_RANGES = "available_ranges";
-public static final String MATERIALIZEDVIEWS_BUILDS_IN_PROGRESS = 
"materializedviews_builds_in_progress";
-public static final String BUILT_MATERIALIZEDVIEWS = 
"built_materializedviews";
+public static final String MATERIALIZED_VIEWS_BUILDS_IN_PROGRESS = 
"materialized_views_builds_in_progress";
+public static final String BUILT_MATERIALIZED_VIEWS = 
"built_materialized_views";
 
 @Deprecated public static final String LEGACY_KEYSPACES = 
"schema_keyspaces";
 @Deprecated public static final String LEGACY_COLUMNFAMILIES = 
"schema_columnfamilies";
@@ -263,7 +263,7 @@ public final class SystemKeyspace
 + "PRIMARY KEY ((keyspace_name)))");
 
 private static final CFMetaData MaterializedViewsBuildsInProgress =
-compile(MATERIALIZEDVIEWS_BUILDS_IN_PROGRESS,
+compile(MATERIALIZED_VIEWS_BUILDS_IN_PROGRESS,
 "materialized views builds current progress",
 "CREATE TABLE %s ("
 + "keyspace_name text,"
@@ -273,7 +273,7 @@ public final class SystemKeyspace
 + "PRIMARY KEY ((keyspace_name), view_name))");
 
 private static final CFMetaData BuiltMaterializedViews =
-compile(BUILT_MATERIALIZEDVIEWS,
+compile(BUILT_MATERIALIZED_VIEWS,
 "built materialized views",
 "CREATE TABLE %s ("
 + "keyspace_name text,"
@@ -517,32 +517,32 @@ public final class SystemKeyspace
 public static boolean isViewBuilt(String keyspaceName, String viewName)
 {
 String req = "SELECT view_name FROM %s.\"%s\" WHERE keyspace_name=? 
AND view_name=?";
-UntypedResultSet result = executeInternal(String.format(req, NAME, 
BUILT_MATERIALIZEDVIEWS), keyspaceName, viewName);
+UntypedResultSet result = executeInternal(String.format(req, NAME, 
BUILT_MATERIALIZED_VIEWS), keyspaceName, viewName);
 return !result.isEmpty();
 }
 
 public static void setMaterializedViewBuilt(String keyspaceName, String 
viewName)
 {
 String req = "INSERT INTO %s.\"%s\" (keyspace_name, view_name) VALUES 
(?, ?)";
-executeInternal(String.format(req, NAME, BUILT_MATERIALIZEDVIEWS), 
keyspaceName, viewName);
-forceBlockingFlush(BUILT_MATERIALIZEDVIEWS);
+executeInternal(String.format(req, NAME, BUILT_MATERIALIZED_VIEWS), 
keyspaceName, viewName);
+forceBlockingFlush(BUILT_MATERIALIZED_VIEWS);
 }
 
 
 public static void setMaterializedViewRemoved(String keyspaceName, String 
viewName)
 {
 String buildReq = "DELETE FROM %S.%s WHERE keyspace_name = ? AND 
view_name = ?";
-executeInternal(String.format(buildReq, NAME, 
MATERIALIZEDVIEWS_BUILDS_IN_PROGRESS), keyspaceName, viewName);
-forceBlockingFlush(MATERIALIZEDVIEWS_BUILDS_IN_PROGRESS);
+executeInternal(String.format(buildReq, NAME, 
MATERIALIZED_VIEWS_BUILDS_IN_PROGRESS), keyspaceName, viewName);
+forceBlockingFlush(MATERIALIZED_VIEWS_BUILDS_IN_PROGRESS);
 
 String builtReq = "DELETE FROM %s.\"%s\" WHERE keyspace_name = ? AND 
view_name = ?";
-executeInterna

[3/4] cassandra git commit: Stop accessing the partitioner directly via StorageService

2015-07-31 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/69f77cbd/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
--
diff --git a/src/java/org/apache/cassandra/db/index/SecondaryIndex.java 
b/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
index 94031ab..9221090 100644
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
@@ -42,15 +42,12 @@ import org.apache.cassandra.db.index.keys.KeysIndex;
 import org.apache.cassandra.db.lifecycle.SSTableSet;
 import org.apache.cassandra.db.lifecycle.View;
 import org.apache.cassandra.db.marshal.AbstractType;
-import org.apache.cassandra.db.marshal.BytesType;
-import org.apache.cassandra.db.marshal.LocalByPartionerType;
+import org.apache.cassandra.dht.LocalPartitioner;
 import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.io.sstable.format.SSTableReader;
 import org.apache.cassandra.exceptions.InvalidRequestException;
 import org.apache.cassandra.io.sstable.ReducingKeyIterator;
-import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.FBUtilities;
-
 import org.apache.cassandra.utils.concurrent.Refs;
 
 /**
@@ -79,10 +76,6 @@ public abstract class SecondaryIndex
  */
 public static final String INDEX_ENTRIES_OPTION_NAME = 
"index_keys_and_values";
 
-public static final AbstractType keyComparator = 
StorageService.getPartitioner().preservesOrder()
-  ? BytesType.instance
-  : new 
LocalByPartionerType(StorageService.getPartitioner());
-
 /**
  * Base CF that has many indexes
  */
@@ -303,7 +296,7 @@ public abstract class SecondaryIndex
  */
 public DecoratedKey getIndexKeyFor(ByteBuffer value)
 {
-return getIndexCfs().partitioner.decorateKey(value);
+return getIndexCfs().decorateKey(value);
 }
 
 /**
@@ -381,11 +374,20 @@ public abstract class SecondaryIndex
  */
 public static CFMetaData newIndexMetadata(CFMetaData baseMetadata, 
ColumnDefinition def)
 {
+return newIndexMetadata(baseMetadata, def, def.type);
+}
+
+/**
+ * Create the index metadata for the index on a given column of a given 
table.
+ */
+static CFMetaData newIndexMetadata(CFMetaData baseMetadata, 
ColumnDefinition def, AbstractType comparator)
+{
 if (def.getIndexType() == IndexType.CUSTOM)
 return null;
 
 CFMetaData.Builder builder = 
CFMetaData.Builder.create(baseMetadata.ksName, 
baseMetadata.indexColumnFamilyName(def))

.withId(baseMetadata.cfId)
+   .withPartitioner(new 
LocalPartitioner(comparator))

.addPartitionKey(def.name, def.type);
 
 if (def.getIndexType() == IndexType.COMPOSITES)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/69f77cbd/src/java/org/apache/cassandra/db/index/composites/CompositesIndex.java
--
diff --git 
a/src/java/org/apache/cassandra/db/index/composites/CompositesIndex.java 
b/src/java/org/apache/cassandra/db/index/composites/CompositesIndex.java
index 42861c5..29f235c 100644
--- a/src/java/org/apache/cassandra/db/index/composites/CompositesIndex.java
+++ b/src/java/org/apache/cassandra/db/index/composites/CompositesIndex.java
@@ -101,7 +101,7 @@ public abstract class CompositesIndex extends 
AbstractSimplePerColumnSecondaryIn
 
 protected static void addGenericClusteringColumns(CFMetaData.Builder 
indexMetadata, CFMetaData baseMetadata, ColumnDefinition columnDef)
 {
-indexMetadata.addClusteringColumn("partition_key", 
SecondaryIndex.keyComparator);
+indexMetadata.addClusteringColumn("partition_key", 
baseMetadata.partitioner.partitionOrdering());
 for (ColumnDefinition def : baseMetadata.clusteringColumns())
 indexMetadata.addClusteringColumn(def.name, def.type);
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/69f77cbd/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnClusteringKey.java
--
diff --git 
a/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnClusteringKey.java
 
b/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnClusteringKey.java
index 6529ad9..cd4aff9 100644
--- 
a/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnClusteringKey.java
+++ 
b/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnClusteringKey.java
@@ -24,7 +24,6 @@ import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.ColumnDefinition;
 import org.apache.ca

[2/4] cassandra git commit: Stop accessing the partitioner directly via StorageService

2015-07-31 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/69f77cbd/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
--
diff --git 
a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java 
b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
index 0451a98..1b3b407 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
@@ -172,7 +172,7 @@ public class BigTableScanner implements ISSTableScanner
 while (!ifile.isEOF())
 {
 indexPosition = ifile.getFilePointer();
-DecoratedKey indexDecoratedKey = 
sstable.partitioner.decorateKey(ByteBufferUtil.readWithShortLength(ifile));
+DecoratedKey indexDecoratedKey = 
sstable.decorateKey(ByteBufferUtil.readWithShortLength(ifile));
 if (indexDecoratedKey.compareTo(currentRange.left) > 0 || 
currentRange.contains(indexDecoratedKey))
 {
 // Found, just read the dataPosition and seek into index 
and data files
@@ -282,7 +282,7 @@ public class BigTableScanner implements ISSTableScanner
 if (ifile.isEOF())
 return endOfData();
 
-currentKey = 
sstable.partitioner.decorateKey(ByteBufferUtil.readWithShortLength(ifile));
+currentKey = 
sstable.decorateKey(ByteBufferUtil.readWithShortLength(ifile));
 currentEntry = 
rowIndexEntrySerializer.deserialize(ifile);
 } while (!currentRange.contains(currentKey));
 }
@@ -301,7 +301,7 @@ public class BigTableScanner implements ISSTableScanner
 else
 {
 // we need the position of the start of the next key, 
regardless of whether it falls in the current range
-nextKey = 
sstable.partitioner.decorateKey(ByteBufferUtil.readWithShortLength(ifile));
+nextKey = 
sstable.decorateKey(ByteBufferUtil.readWithShortLength(ifile));
 nextEntry = rowIndexEntrySerializer.deserialize(ifile);
 
 if (!currentRange.contains(nextKey))

http://git-wip-us.apache.org/repos/asf/cassandra/blob/69f77cbd/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java
--
diff --git 
a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java 
b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java
index ff279a8..5607a7e 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java
@@ -19,7 +19,6 @@ package org.apache.cassandra.io.sstable.format.big;
 
 import java.io.*;
 import java.util.Map;
-import java.util.Set;
 
 import org.apache.cassandra.db.*;
 import org.apache.cassandra.db.lifecycle.LifecycleTransaction;
@@ -32,7 +31,6 @@ import org.slf4j.LoggerFactory;
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.rows.*;
-import org.apache.cassandra.dht.IPartitioner;
 import org.apache.cassandra.io.FSWriteError;
 import org.apache.cassandra.io.compress.CompressedSequentialWriter;
 import org.apache.cassandra.io.sstable.metadata.MetadataCollector;
@@ -62,12 +60,11 @@ public class BigTableWriter extends SSTableWriter
   Long keyCount, 
   Long repairedAt, 
   CFMetaData metadata, 
-  IPartitioner partitioner, 
   MetadataCollector metadataCollector, 
   SerializationHeader header,
   LifecycleTransaction txn)
 {
-super(descriptor, keyCount, repairedAt, metadata, partitioner, 
metadataCollector, header);
+super(descriptor, keyCount, repairedAt, metadata, metadataCollector, 
header);
 txn.trackNew(this); // must track before any files are created
 
 if (compression)
@@ -243,13 +240,12 @@ public class BigTableWriter extends SSTableWriter
 StatsMetadata stats = statsMetadata();
 assert boundary.indexLength > 0 && boundary.dataLength > 0;
 // open the reader early
-IndexSummary indexSummary = iwriter.summary.build(partitioner, 
boundary);
+IndexSummary indexSummary = 
iwriter.summary.build(metadata.partitioner, boundary);
 SegmentedFile ifile = iwriter.builder.buildIndex(descriptor, 
indexSummary, boundary);
 SegmentedFile dfile = dbuilder.buildData(descriptor, stats, boundary);
 SSTableReader sstable = SSTableReader.internalOpen(descriptor,

[1/4] cassandra git commit: Stop accessing the partitioner directly via StorageService

2015-07-31 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk df3b6027b -> 69f77cbdd


http://git-wip-us.apache.org/repos/asf/cassandra/blob/69f77cbd/test/unit/org/apache/cassandra/db/ScrubTest.java
--
diff --git a/test/unit/org/apache/cassandra/db/ScrubTest.java 
b/test/unit/org/apache/cassandra/db/ScrubTest.java
index ee51a4d..25b9cde 100644
--- a/test/unit/org/apache/cassandra/db/ScrubTest.java
+++ b/test/unit/org/apache/cassandra/db/ScrubTest.java
@@ -22,8 +22,6 @@ import java.io.File;
 import java.io.IOError;
 import java.io.IOException;
 import java.io.RandomAccessFile;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
 import java.nio.ByteBuffer;
 import java.util.*;
 import java.util.concurrent.ExecutionException;
@@ -44,9 +42,9 @@ import org.apache.cassandra.cql3.UntypedResultSet;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.compaction.OperationType;
 import org.apache.cassandra.db.compaction.Scrubber;
-import org.apache.cassandra.db.index.SecondaryIndex;
 import org.apache.cassandra.db.lifecycle.LifecycleTransaction;
 import org.apache.cassandra.db.marshal.*;
+import org.apache.cassandra.db.marshal.UUIDType;
 import org.apache.cassandra.db.partitions.Partition;
 import org.apache.cassandra.db.partitions.PartitionUpdate;
 import org.apache.cassandra.dht.ByteOrderedPartitioner;
@@ -55,14 +53,10 @@ import 
org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.exceptions.RequestExecutionException;
 import org.apache.cassandra.exceptions.WriteTimeoutException;
 import org.apache.cassandra.io.compress.CompressionMetadata;
-import org.apache.cassandra.io.sstable.Component;
-import org.apache.cassandra.io.sstable.Descriptor;
-import org.apache.cassandra.io.sstable.SSTableRewriter;
-import org.apache.cassandra.io.sstable.SSTableTxnWriter;
+import org.apache.cassandra.io.sstable.*;
 import org.apache.cassandra.io.sstable.format.SSTableReader;
 import org.apache.cassandra.io.util.FileUtils;
 import org.apache.cassandra.schema.KeyspaceParams;
-import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.ByteBufferUtil;
 
 import static org.junit.Assert.*;
@@ -79,6 +73,8 @@ public class ScrubTest
 public static final String CF_UUID = "UUIDKeys";
 public static final String CF_INDEX1 = "Indexed1";
 public static final String CF_INDEX2 = "Indexed2";
+public static final String CF_INDEX1_BYTEORDERED = "Indexed1_ordered";
+public static final String CF_INDEX2_BYTEORDERED = "Indexed2_ordered";
 
 public static final String COL_INDEX = "birthdate";
 public static final String COL_NON_INDEX = "notbirthdate";
@@ -98,7 +94,9 @@ public class ScrubTest
 
.compressionParameters(SchemaLoader.getCompressionParameters(COMPRESSION_CHUNK_LENGTH)),
 SchemaLoader.standardCFMD(KEYSPACE, 
CF_UUID, 0, UUIDType.instance),
 SchemaLoader.keysIndexCFMD(KEYSPACE, 
CF_INDEX1, true),
-SchemaLoader.compositeIndexCFMD(KEYSPACE, 
CF_INDEX2, true));
+SchemaLoader.compositeIndexCFMD(KEYSPACE, 
CF_INDEX2, true),
+SchemaLoader.keysIndexCFMD(KEYSPACE, 
CF_INDEX1_BYTEORDERED, true).copy(ByteOrderedPartitioner.instance),
+SchemaLoader.compositeIndexCFMD(KEYSPACE, 
CF_INDEX2_BYTEORDERED, true).copy(ByteOrderedPartitioner.instance));
 }
 
 @Test
@@ -306,7 +304,7 @@ public class ScrubTest
 {
 // This test assumes ByteOrderPartitioner to create out-of-order 
SSTable
 IPartitioner oldPartitioner = DatabaseDescriptor.getPartitioner();
-DatabaseDescriptor.setPartitioner(new ByteOrderedPartitioner());
+DatabaseDescriptor.setPartitionerUnsafe(new ByteOrderedPartitioner());
 
 // Create out-of-order SSTable
 File tempDir = File.createTempFile("ScrubTest.testScrubOutOfOrder", 
"").getParentFile();
@@ -380,7 +378,7 @@ public class ScrubTest
 {
 FileUtils.deleteRecursive(tempDataDir);
 // reset partitioner
-DatabaseDescriptor.setPartitioner(oldPartitioner);
+DatabaseDescriptor.setPartitionerUnsafe(oldPartitioner);
 }
 }
 
@@ -394,9 +392,9 @@ public class ScrubTest
 CompressionMetadata compData = 
CompressionMetadata.create(sstable.getFilename());
 
 CompressionMetadata.Chunk chunk1 = compData.chunkFor(
-sstable.getPosition(PartitionPosition.ForKey.get(key1, 
sstable.partitioner), SSTableReader.Operator.EQ).position);
+sstable.getPosition(PartitionPosition.ForKey.get(key1, 
sstable.getPartitioner()), SSTableReader.Operator.EQ).position);
 CompressionMetadata.Chunk chunk2 = compData.chunkF

[4/4] cassandra git commit: Stop accessing the partitioner directly via StorageService

2015-07-31 Thread aleksey
Stop accessing the partitioner directly via StorageService

Changes the way the partitioner is accessed. Partitioner is now stored
and accessed according to the reason for needing it:
* if it is to access a table / prepare a statement, the partitioner
relevant to this table can be found in its CFMetaData.
* if it is to route messages to the relevant member of the cluster, the
partitioner in TokenMetadata is to be used.

patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-8143


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/69f77cbd
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/69f77cbd
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/69f77cbd

Branch: refs/heads/trunk
Commit: 69f77cbddd4c74448f227e9aceef84d345118184
Parents: df3b602
Author: Branimir Lambov 
Authored: Fri Jul 3 14:38:40 2015 +0100
Committer: Aleksey Yeschenko 
Committed: Fri Jul 31 14:42:47 2015 +0300

--
 .../org/apache/cassandra/config/CFMetaData.java |  64 +++-
 .../cassandra/config/DatabaseDescriptor.java|   7 +-
 .../org/apache/cassandra/config/Schema.java |   2 +-
 .../apache/cassandra/cql3/TokenRelation.java|   7 +-
 .../cassandra/cql3/functions/TokenFct.java  |  10 +-
 .../restrictions/StatementRestrictions.java |   2 +-
 .../cql3/restrictions/TokenFilter.java  |  14 +-
 .../cql3/restrictions/TokenRestriction.java |  23 +--
 .../cql3/statements/BatchStatement.java |   5 +-
 .../cql3/statements/ModificationStatement.java  |   7 +-
 .../cql3/statements/SelectStatement.java|   2 +-
 .../db/AbstractReadCommandBuilder.java  |  11 +-
 .../apache/cassandra/db/BatchlogManager.java|   7 +-
 .../apache/cassandra/db/ColumnFamilyStore.java  |  35 ++--
 src/java/org/apache/cassandra/db/DataRange.java |   3 +-
 .../cassandra/db/HintedHandOffManager.java  |  29 ++--
 src/java/org/apache/cassandra/db/Memtable.java  |   1 -
 src/java/org/apache/cassandra/db/Mutation.java  |  26 ++-
 .../apache/cassandra/db/PartitionPosition.java  |   2 +-
 .../cassandra/db/PartitionRangeReadCommand.java |   2 +-
 .../apache/cassandra/db/RowUpdateBuilder.java   |   2 +-
 .../db/SinglePartitionNamesCommand.java |  12 ++
 .../db/SinglePartitionReadCommand.java  |  18 ++-
 .../db/SinglePartitionSliceCommand.java |  17 ++
 .../org/apache/cassandra/db/SystemKeyspace.java |  18 +--
 .../db/compaction/CompactionManager.java|   4 +-
 .../db/compaction/LeveledManifest.java  |   2 +-
 .../cassandra/db/compaction/Scrubber.java   |   4 +-
 .../cassandra/db/compaction/Upgrader.java   |   1 -
 .../cassandra/db/compaction/Verifier.java   |   2 +-
 .../writers/DefaultCompactionWriter.java|   1 -
 .../writers/MajorLeveledCompactionWriter.java   |   2 -
 .../writers/MaxSSTableSizeWriter.java   |   2 -
 .../SplittingSizeTieredCompactionWriter.java|   2 -
 .../AbstractSimplePerColumnSecondaryIndex.java  |   4 +-
 .../cassandra/db/index/SecondaryIndex.java  |  20 +--
 .../db/index/composites/CompositesIndex.java|   2 +-
 .../CompositesIndexOnClusteringKey.java |   3 +-
 .../db/index/composites/CompositesSearcher.java |   2 +-
 .../cassandra/db/index/keys/KeysIndex.java  |   3 +-
 .../cassandra/db/index/keys/KeysSearcher.java   |   2 +-
 .../db/marshal/LocalByPartionerType.java|  97 
 .../db/marshal/PartitionerDefinedOrder.java |  91 +++
 .../db/partitions/AtomicBTreePartition.java |   4 +-
 .../db/partitions/PartitionUpdate.java  | 108 ++---
 .../rows/UnfilteredRowIteratorSerializer.java   |   3 +-
 .../cassandra/db/view/MaterializedView.java |   7 +-
 .../apache/cassandra/db/view/TemporalRow.java   |   2 +-
 .../org/apache/cassandra/dht/BootStrapper.java  |  12 +-
 .../cassandra/dht/ByteOrderedPartitioner.java   |   5 +
 .../org/apache/cassandra/dht/IPartitioner.java  |   6 +
 .../apache/cassandra/dht/LocalPartitioner.java  |   5 +
 .../cassandra/dht/Murmur3Partitioner.java   |   7 +
 .../dht/OrderPreservingPartitioner.java |   5 +
 .../apache/cassandra/dht/RandomPartitioner.java |   7 +
 .../org/apache/cassandra/dht/RangeStreamer.java |   2 +-
 .../dht/tokenallocator/TokenAllocation.java |   8 +-
 src/java/org/apache/cassandra/gms/Gossiper.java |   2 +-
 .../io/sstable/AbstractSSTableSimpleWriter.java |  10 +-
 .../cassandra/io/sstable/CQLSSTableWriter.java  |  15 +-
 .../cassandra/io/sstable/KeyIterator.java   |   8 +-
 .../io/sstable/ReducingKeyIterator.java |   2 +-
 .../apache/cassandra/io/sstable/SSTable.java|  21 ++-
 .../cassandra/io/sstable/SSTableLoader.java |  20 +--
 .../io/sstable/SSTableSimpleUnsortedWriter.java |   5 +-
 .../io/sstable/SSTableSimpleWriter.java |   4 +-
 .../io/sstable/format/SSTableReader.java|  74

[1/4] cassandra git commit: Revert "Revert "Stop accessing the partitioner directly via StorageService""

2015-07-31 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 43139f866 -> 0a08525ad


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0a08525a/test/unit/org/apache/cassandra/db/ScrubTest.java
--
diff --git a/test/unit/org/apache/cassandra/db/ScrubTest.java 
b/test/unit/org/apache/cassandra/db/ScrubTest.java
index ee51a4d..25b9cde 100644
--- a/test/unit/org/apache/cassandra/db/ScrubTest.java
+++ b/test/unit/org/apache/cassandra/db/ScrubTest.java
@@ -22,8 +22,6 @@ import java.io.File;
 import java.io.IOError;
 import java.io.IOException;
 import java.io.RandomAccessFile;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
 import java.nio.ByteBuffer;
 import java.util.*;
 import java.util.concurrent.ExecutionException;
@@ -44,9 +42,9 @@ import org.apache.cassandra.cql3.UntypedResultSet;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.compaction.OperationType;
 import org.apache.cassandra.db.compaction.Scrubber;
-import org.apache.cassandra.db.index.SecondaryIndex;
 import org.apache.cassandra.db.lifecycle.LifecycleTransaction;
 import org.apache.cassandra.db.marshal.*;
+import org.apache.cassandra.db.marshal.UUIDType;
 import org.apache.cassandra.db.partitions.Partition;
 import org.apache.cassandra.db.partitions.PartitionUpdate;
 import org.apache.cassandra.dht.ByteOrderedPartitioner;
@@ -55,14 +53,10 @@ import 
org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.exceptions.RequestExecutionException;
 import org.apache.cassandra.exceptions.WriteTimeoutException;
 import org.apache.cassandra.io.compress.CompressionMetadata;
-import org.apache.cassandra.io.sstable.Component;
-import org.apache.cassandra.io.sstable.Descriptor;
-import org.apache.cassandra.io.sstable.SSTableRewriter;
-import org.apache.cassandra.io.sstable.SSTableTxnWriter;
+import org.apache.cassandra.io.sstable.*;
 import org.apache.cassandra.io.sstable.format.SSTableReader;
 import org.apache.cassandra.io.util.FileUtils;
 import org.apache.cassandra.schema.KeyspaceParams;
-import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.ByteBufferUtil;
 
 import static org.junit.Assert.*;
@@ -79,6 +73,8 @@ public class ScrubTest
 public static final String CF_UUID = "UUIDKeys";
 public static final String CF_INDEX1 = "Indexed1";
 public static final String CF_INDEX2 = "Indexed2";
+public static final String CF_INDEX1_BYTEORDERED = "Indexed1_ordered";
+public static final String CF_INDEX2_BYTEORDERED = "Indexed2_ordered";
 
 public static final String COL_INDEX = "birthdate";
 public static final String COL_NON_INDEX = "notbirthdate";
@@ -98,7 +94,9 @@ public class ScrubTest
 
.compressionParameters(SchemaLoader.getCompressionParameters(COMPRESSION_CHUNK_LENGTH)),
 SchemaLoader.standardCFMD(KEYSPACE, 
CF_UUID, 0, UUIDType.instance),
 SchemaLoader.keysIndexCFMD(KEYSPACE, 
CF_INDEX1, true),
-SchemaLoader.compositeIndexCFMD(KEYSPACE, 
CF_INDEX2, true));
+SchemaLoader.compositeIndexCFMD(KEYSPACE, 
CF_INDEX2, true),
+SchemaLoader.keysIndexCFMD(KEYSPACE, 
CF_INDEX1_BYTEORDERED, true).copy(ByteOrderedPartitioner.instance),
+SchemaLoader.compositeIndexCFMD(KEYSPACE, 
CF_INDEX2_BYTEORDERED, true).copy(ByteOrderedPartitioner.instance));
 }
 
 @Test
@@ -306,7 +304,7 @@ public class ScrubTest
 {
 // This test assumes ByteOrderPartitioner to create out-of-order 
SSTable
 IPartitioner oldPartitioner = DatabaseDescriptor.getPartitioner();
-DatabaseDescriptor.setPartitioner(new ByteOrderedPartitioner());
+DatabaseDescriptor.setPartitionerUnsafe(new ByteOrderedPartitioner());
 
 // Create out-of-order SSTable
 File tempDir = File.createTempFile("ScrubTest.testScrubOutOfOrder", 
"").getParentFile();
@@ -380,7 +378,7 @@ public class ScrubTest
 {
 FileUtils.deleteRecursive(tempDataDir);
 // reset partitioner
-DatabaseDescriptor.setPartitioner(oldPartitioner);
+DatabaseDescriptor.setPartitionerUnsafe(oldPartitioner);
 }
 }
 
@@ -394,9 +392,9 @@ public class ScrubTest
 CompressionMetadata compData = 
CompressionMetadata.create(sstable.getFilename());
 
 CompressionMetadata.Chunk chunk1 = compData.chunkFor(
-sstable.getPosition(PartitionPosition.ForKey.get(key1, 
sstable.partitioner), SSTableReader.Operator.EQ).position);
+sstable.getPosition(PartitionPosition.ForKey.get(key1, 
sstable.getPartitioner()), SSTableReader.Operator.EQ).position);
 CompressionMetadata.Chunk chunk2 = compData.chunkF

[3/4] cassandra git commit: Revert "Revert "Stop accessing the partitioner directly via StorageService""

2015-07-31 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0a08525a/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
--
diff --git a/src/java/org/apache/cassandra/db/index/SecondaryIndex.java 
b/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
index 94031ab..9221090 100644
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
@@ -42,15 +42,12 @@ import org.apache.cassandra.db.index.keys.KeysIndex;
 import org.apache.cassandra.db.lifecycle.SSTableSet;
 import org.apache.cassandra.db.lifecycle.View;
 import org.apache.cassandra.db.marshal.AbstractType;
-import org.apache.cassandra.db.marshal.BytesType;
-import org.apache.cassandra.db.marshal.LocalByPartionerType;
+import org.apache.cassandra.dht.LocalPartitioner;
 import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.io.sstable.format.SSTableReader;
 import org.apache.cassandra.exceptions.InvalidRequestException;
 import org.apache.cassandra.io.sstable.ReducingKeyIterator;
-import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.FBUtilities;
-
 import org.apache.cassandra.utils.concurrent.Refs;
 
 /**
@@ -79,10 +76,6 @@ public abstract class SecondaryIndex
  */
 public static final String INDEX_ENTRIES_OPTION_NAME = 
"index_keys_and_values";
 
-public static final AbstractType keyComparator = 
StorageService.getPartitioner().preservesOrder()
-  ? BytesType.instance
-  : new 
LocalByPartionerType(StorageService.getPartitioner());
-
 /**
  * Base CF that has many indexes
  */
@@ -303,7 +296,7 @@ public abstract class SecondaryIndex
  */
 public DecoratedKey getIndexKeyFor(ByteBuffer value)
 {
-return getIndexCfs().partitioner.decorateKey(value);
+return getIndexCfs().decorateKey(value);
 }
 
 /**
@@ -381,11 +374,20 @@ public abstract class SecondaryIndex
  */
 public static CFMetaData newIndexMetadata(CFMetaData baseMetadata, 
ColumnDefinition def)
 {
+return newIndexMetadata(baseMetadata, def, def.type);
+}
+
+/**
+ * Create the index metadata for the index on a given column of a given 
table.
+ */
+static CFMetaData newIndexMetadata(CFMetaData baseMetadata, 
ColumnDefinition def, AbstractType comparator)
+{
 if (def.getIndexType() == IndexType.CUSTOM)
 return null;
 
 CFMetaData.Builder builder = 
CFMetaData.Builder.create(baseMetadata.ksName, 
baseMetadata.indexColumnFamilyName(def))

.withId(baseMetadata.cfId)
+   .withPartitioner(new 
LocalPartitioner(comparator))

.addPartitionKey(def.name, def.type);
 
 if (def.getIndexType() == IndexType.COMPOSITES)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0a08525a/src/java/org/apache/cassandra/db/index/composites/CompositesIndex.java
--
diff --git 
a/src/java/org/apache/cassandra/db/index/composites/CompositesIndex.java 
b/src/java/org/apache/cassandra/db/index/composites/CompositesIndex.java
index 42861c5..29f235c 100644
--- a/src/java/org/apache/cassandra/db/index/composites/CompositesIndex.java
+++ b/src/java/org/apache/cassandra/db/index/composites/CompositesIndex.java
@@ -101,7 +101,7 @@ public abstract class CompositesIndex extends 
AbstractSimplePerColumnSecondaryIn
 
 protected static void addGenericClusteringColumns(CFMetaData.Builder 
indexMetadata, CFMetaData baseMetadata, ColumnDefinition columnDef)
 {
-indexMetadata.addClusteringColumn("partition_key", 
SecondaryIndex.keyComparator);
+indexMetadata.addClusteringColumn("partition_key", 
baseMetadata.partitioner.partitionOrdering());
 for (ColumnDefinition def : baseMetadata.clusteringColumns())
 indexMetadata.addClusteringColumn(def.name, def.type);
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0a08525a/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnClusteringKey.java
--
diff --git 
a/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnClusteringKey.java
 
b/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnClusteringKey.java
index 6529ad9..cd4aff9 100644
--- 
a/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnClusteringKey.java
+++ 
b/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnClusteringKey.java
@@ -24,7 +24,6 @@ import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.ColumnDefinition;
 import org.apache.ca

[2/4] cassandra git commit: Revert "Revert "Stop accessing the partitioner directly via StorageService""

2015-07-31 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0a08525a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
--
diff --git 
a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java 
b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
index 0451a98..1b3b407 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
@@ -172,7 +172,7 @@ public class BigTableScanner implements ISSTableScanner
 while (!ifile.isEOF())
 {
 indexPosition = ifile.getFilePointer();
-DecoratedKey indexDecoratedKey = 
sstable.partitioner.decorateKey(ByteBufferUtil.readWithShortLength(ifile));
+DecoratedKey indexDecoratedKey = 
sstable.decorateKey(ByteBufferUtil.readWithShortLength(ifile));
 if (indexDecoratedKey.compareTo(currentRange.left) > 0 || 
currentRange.contains(indexDecoratedKey))
 {
 // Found, just read the dataPosition and seek into index 
and data files
@@ -282,7 +282,7 @@ public class BigTableScanner implements ISSTableScanner
 if (ifile.isEOF())
 return endOfData();
 
-currentKey = 
sstable.partitioner.decorateKey(ByteBufferUtil.readWithShortLength(ifile));
+currentKey = 
sstable.decorateKey(ByteBufferUtil.readWithShortLength(ifile));
 currentEntry = 
rowIndexEntrySerializer.deserialize(ifile);
 } while (!currentRange.contains(currentKey));
 }
@@ -301,7 +301,7 @@ public class BigTableScanner implements ISSTableScanner
 else
 {
 // we need the position of the start of the next key, 
regardless of whether it falls in the current range
-nextKey = 
sstable.partitioner.decorateKey(ByteBufferUtil.readWithShortLength(ifile));
+nextKey = 
sstable.decorateKey(ByteBufferUtil.readWithShortLength(ifile));
 nextEntry = rowIndexEntrySerializer.deserialize(ifile);
 
 if (!currentRange.contains(nextKey))

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0a08525a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java
--
diff --git 
a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java 
b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java
index ff279a8..5607a7e 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java
@@ -19,7 +19,6 @@ package org.apache.cassandra.io.sstable.format.big;
 
 import java.io.*;
 import java.util.Map;
-import java.util.Set;
 
 import org.apache.cassandra.db.*;
 import org.apache.cassandra.db.lifecycle.LifecycleTransaction;
@@ -32,7 +31,6 @@ import org.slf4j.LoggerFactory;
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.rows.*;
-import org.apache.cassandra.dht.IPartitioner;
 import org.apache.cassandra.io.FSWriteError;
 import org.apache.cassandra.io.compress.CompressedSequentialWriter;
 import org.apache.cassandra.io.sstable.metadata.MetadataCollector;
@@ -62,12 +60,11 @@ public class BigTableWriter extends SSTableWriter
   Long keyCount, 
   Long repairedAt, 
   CFMetaData metadata, 
-  IPartitioner partitioner, 
   MetadataCollector metadataCollector, 
   SerializationHeader header,
   LifecycleTransaction txn)
 {
-super(descriptor, keyCount, repairedAt, metadata, partitioner, 
metadataCollector, header);
+super(descriptor, keyCount, repairedAt, metadata, metadataCollector, 
header);
 txn.trackNew(this); // must track before any files are created
 
 if (compression)
@@ -243,13 +240,12 @@ public class BigTableWriter extends SSTableWriter
 StatsMetadata stats = statsMetadata();
 assert boundary.indexLength > 0 && boundary.dataLength > 0;
 // open the reader early
-IndexSummary indexSummary = iwriter.summary.build(partitioner, 
boundary);
+IndexSummary indexSummary = 
iwriter.summary.build(metadata.partitioner, boundary);
 SegmentedFile ifile = iwriter.builder.buildIndex(descriptor, 
indexSummary, boundary);
 SegmentedFile dfile = dbuilder.buildData(descriptor, stats, boundary);
 SSTableReader sstable = SSTableReader.internalOpen(descriptor,

[4/4] cassandra git commit: Revert "Revert "Stop accessing the partitioner directly via StorageService""

2015-07-31 Thread aleksey
Revert "Revert "Stop accessing the partitioner directly via StorageService""

This reverts commit a22ce89e868644ea04f0f3dacec05fff1673a345.


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0a08525a
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0a08525a
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0a08525a

Branch: refs/heads/trunk
Commit: 0a08525ad236f78df05c854dead62f300eae271d
Parents: 43139f8
Author: Aleksey Yeschenko 
Authored: Sat Aug 1 01:33:20 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Sat Aug 1 01:33:51 2015 +0300

--
 .../org/apache/cassandra/config/CFMetaData.java |  64 +++-
 .../cassandra/config/DatabaseDescriptor.java|   7 +-
 .../org/apache/cassandra/config/Schema.java |   2 +-
 .../apache/cassandra/cql3/TokenRelation.java|   7 +-
 .../cassandra/cql3/functions/TokenFct.java  |  10 +-
 .../restrictions/StatementRestrictions.java |   2 +-
 .../cql3/restrictions/TokenFilter.java  |  14 +-
 .../cql3/restrictions/TokenRestriction.java |  23 +--
 .../cql3/statements/BatchStatement.java |   5 +-
 .../cql3/statements/ModificationStatement.java  |   7 +-
 .../cql3/statements/SelectStatement.java|   2 +-
 .../db/AbstractReadCommandBuilder.java  |  11 +-
 .../apache/cassandra/db/BatchlogManager.java|   7 +-
 .../apache/cassandra/db/ColumnFamilyStore.java  |  35 ++--
 src/java/org/apache/cassandra/db/DataRange.java |   3 +-
 .../cassandra/db/HintedHandOffManager.java  |  29 ++--
 src/java/org/apache/cassandra/db/Memtable.java  |   1 -
 src/java/org/apache/cassandra/db/Mutation.java  |  28 ++--
 .../apache/cassandra/db/PartitionPosition.java  |   2 +-
 .../cassandra/db/PartitionRangeReadCommand.java |   2 +-
 .../apache/cassandra/db/RowUpdateBuilder.java   |   2 +-
 .../db/SinglePartitionNamesCommand.java |  12 ++
 .../db/SinglePartitionReadCommand.java  |  18 ++-
 .../db/SinglePartitionSliceCommand.java |  17 ++
 .../org/apache/cassandra/db/SystemKeyspace.java |  18 +--
 .../db/compaction/CompactionManager.java|   4 +-
 .../db/compaction/LeveledManifest.java  |   2 +-
 .../cassandra/db/compaction/Scrubber.java   |   4 +-
 .../cassandra/db/compaction/Upgrader.java   |   1 -
 .../cassandra/db/compaction/Verifier.java   |   2 +-
 .../writers/DefaultCompactionWriter.java|   1 -
 .../writers/MajorLeveledCompactionWriter.java   |   2 -
 .../writers/MaxSSTableSizeWriter.java   |   2 -
 .../SplittingSizeTieredCompactionWriter.java|   2 -
 .../AbstractSimplePerColumnSecondaryIndex.java  |   4 +-
 .../cassandra/db/index/SecondaryIndex.java  |  20 +--
 .../db/index/composites/CompositesIndex.java|   2 +-
 .../CompositesIndexOnClusteringKey.java |   3 +-
 .../db/index/composites/CompositesSearcher.java |   2 +-
 .../cassandra/db/index/keys/KeysIndex.java  |   3 +-
 .../cassandra/db/index/keys/KeysSearcher.java   |   2 +-
 .../db/marshal/LocalByPartionerType.java|  97 
 .../db/marshal/PartitionerDefinedOrder.java |  91 +++
 .../db/partitions/AtomicBTreePartition.java |   4 +-
 .../db/partitions/PartitionUpdate.java  | 108 ++---
 .../rows/UnfilteredRowIteratorSerializer.java   |   3 +-
 .../cassandra/db/view/MaterializedView.java |   7 +-
 .../apache/cassandra/db/view/TemporalRow.java   |   2 +-
 .../org/apache/cassandra/dht/BootStrapper.java  |  12 +-
 .../cassandra/dht/ByteOrderedPartitioner.java   |   5 +
 .../org/apache/cassandra/dht/IPartitioner.java  |   6 +
 .../apache/cassandra/dht/LocalPartitioner.java  |   5 +
 .../cassandra/dht/Murmur3Partitioner.java   |   7 +
 .../dht/OrderPreservingPartitioner.java |   5 +
 .../apache/cassandra/dht/RandomPartitioner.java |   7 +
 .../org/apache/cassandra/dht/RangeStreamer.java |   2 +-
 .../dht/tokenallocator/TokenAllocation.java |   8 +-
 src/java/org/apache/cassandra/gms/Gossiper.java |   2 +-
 .../io/sstable/AbstractSSTableSimpleWriter.java |  10 +-
 .../cassandra/io/sstable/CQLSSTableWriter.java  |  15 +-
 .../cassandra/io/sstable/KeyIterator.java   |   8 +-
 .../io/sstable/ReducingKeyIterator.java |   2 +-
 .../apache/cassandra/io/sstable/SSTable.java|  21 ++-
 .../cassandra/io/sstable/SSTableLoader.java |  20 +--
 .../io/sstable/SSTableSimpleUnsortedWriter.java |   5 +-
 .../io/sstable/SSTableSimpleWriter.java |   4 +-
 .../io/sstable/format/SSTableReader.java|  74 -
 .../io/sstable/format/SSTableWriter.java|  16 +-
 .../io/sstable/format/big/BigFormat.java|   8 +-
 .../io/sstable/format/big/BigTableReader.java   |   8 +-
 .../io/sstable/format/big/BigTableScanner.java  |   6 +-
 .../io/sstable/format/big/BigTableWriter.java   |  15 +-
 .../apache/cassandra/locator/Toke

cassandra git commit: Fix dtest failures caused by CASSANDRA-8143

2015-08-02 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk b623375c5 -> 6aa7d6ce8


Fix dtest failures caused by CASSANDRA-8143

patch by Branimir Lambov; reviewed by Aleksey Yeschenko


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6aa7d6ce
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6aa7d6ce
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6aa7d6ce

Branch: refs/heads/trunk
Commit: 6aa7d6ce89f155b72111bffce54e9bee66080b03
Parents: b623375
Author: Branimir Lambov 
Authored: Sat Aug 1 18:17:11 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Sun Aug 2 23:02:12 2015 +0300

--
 .../org/apache/cassandra/config/CFMetaData.java | 17 ++
 .../db/marshal/PartitionerDefinedOrder.java | 22 +-
 .../apache/cassandra/schema/SchemaKeyspace.java | 24 +++-
 .../cassandra/thrift/CassandraServer.java   |  2 +-
 .../utils/NativeSSTableLoaderClient.java| 15 +++-
 .../cassandra/db/marshal/TypeParserTest.java| 24 +---
 6 files changed, 72 insertions(+), 32 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6aa7d6ce/src/java/org/apache/cassandra/config/CFMetaData.java
--
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java 
b/src/java/org/apache/cassandra/config/CFMetaData.java
index ffb7b5e..43c95ea 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -24,6 +24,7 @@ import java.nio.ByteBuffer;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ThreadLocalRandom;
+import java.util.stream.Collectors;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
@@ -1390,6 +1391,22 @@ public final class CFMetaData
  : (isCompactTable() ? compactValueColumn().type : 
BytesType.instance);
 }
 
+public static Set flagsFromStrings(Set strings)
+{
+return strings.stream()
+  .map(String::toUpperCase)
+  .map(Flag::valueOf)
+  .collect(Collectors.toSet());
+}
+
+public static Set flagsToStrings(Set flags)
+{
+return flags.stream()
+.map(Flag::toString)
+.map(String::toLowerCase)
+.collect(Collectors.toSet());
+}
+
 @Override
 public String toString()
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6aa7d6ce/src/java/org/apache/cassandra/db/marshal/PartitionerDefinedOrder.java
--
diff --git 
a/src/java/org/apache/cassandra/db/marshal/PartitionerDefinedOrder.java 
b/src/java/org/apache/cassandra/db/marshal/PartitionerDefinedOrder.java
index efaea53..88f9906 100644
--- a/src/java/org/apache/cassandra/db/marshal/PartitionerDefinedOrder.java
+++ b/src/java/org/apache/cassandra/db/marshal/PartitionerDefinedOrder.java
@@ -18,14 +18,16 @@
 package org.apache.cassandra.db.marshal;
 
 import java.nio.ByteBuffer;
+import java.util.Iterator;
 
+import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.cql3.Term;
 import org.apache.cassandra.db.PartitionPosition;
 import org.apache.cassandra.serializers.TypeSerializer;
 import org.apache.cassandra.serializers.MarshalException;
-
 import org.apache.cassandra.dht.IPartitioner;
 import org.apache.cassandra.utils.ByteBufferUtil;
+import org.apache.cassandra.utils.FBUtilities;
 
 /** for sorting columns representing row keys in the row ordering as 
determined by a partitioner.
  * Not intended for user-defined CFs, and will in fact error out if used with 
such. */
@@ -38,6 +40,18 @@ public class PartitionerDefinedOrder extends 
AbstractType
 this.partitioner = partitioner;
 }
 
+public static AbstractType getInstance(TypeParser parser)
+{
+IPartitioner partitioner = DatabaseDescriptor.getPartitioner();
+Iterator argIterator = 
parser.getKeyValueParameters().keySet().iterator();
+if (argIterator.hasNext())
+{
+partitioner = FBUtilities.newPartitioner(argIterator.next());
+assert !argIterator.hasNext();
+}
+return partitioner.partitionOrdering();
+}
+
 @Override
 public ByteBuffer compose(ByteBuffer bytes)
 {
@@ -88,4 +102,10 @@ public class PartitionerDefinedOrder extends 
AbstractType
 {
 throw new UnsupportedOperationException("You can't do this with a 
local partitioner.");
 }
+
+@Override
+public String toString()
+{
+return String.format("%s(%

[1/5] cassandra git commit: Factor out TableParams from CFMetaData

2015-08-04 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 6932bd879 -> b31845c4a


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/test/unit/org/apache/cassandra/io/sstable/IndexSummaryManagerTest.java
--
diff --git 
a/test/unit/org/apache/cassandra/io/sstable/IndexSummaryManagerTest.java 
b/test/unit/org/apache/cassandra/io/sstable/IndexSummaryManagerTest.java
index 5f11f51..5493edb 100644
--- a/test/unit/org/apache/cassandra/io/sstable/IndexSummaryManagerTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/IndexSummaryManagerTest.java
@@ -39,7 +39,6 @@ import org.slf4j.LoggerFactory;
 import org.apache.cassandra.OrderedJUnit4ClassRunner;
 import org.apache.cassandra.SchemaLoader;
 import org.apache.cassandra.Util;
-import org.apache.cassandra.cache.CachingOptions;
 import org.apache.cassandra.db.ColumnFamilyStore;
 import org.apache.cassandra.db.Keyspace;
 import org.apache.cassandra.db.RowUpdateBuilder;
@@ -49,6 +48,7 @@ import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.io.sstable.format.SSTableReader;
 import org.apache.cassandra.db.lifecycle.LifecycleTransaction;
 import org.apache.cassandra.metrics.RestorableMeter;
+import org.apache.cassandra.schema.CachingParams;
 import org.apache.cassandra.schema.KeyspaceParams;
 import org.apache.cassandra.utils.ByteBufferUtil;
 
@@ -87,12 +87,11 @@ public class IndexSummaryManagerTest
 SchemaLoader.standardCFMD(KEYSPACE1, 
CF_STANDARDLOWiINTERVAL)
 .minIndexInterval(8)
 .maxIndexInterval(256)
-.caching(CachingOptions.NONE),
+
.caching(CachingParams.CACHE_NOTHING),
 SchemaLoader.standardCFMD(KEYSPACE1, 
CF_STANDARDRACE)
 .minIndexInterval(8)
 .maxIndexInterval(256)
-.caching(CachingOptions.NONE)
-);
+
.caching(CachingParams.CACHE_NOTHING));
 }
 
 @Before
@@ -102,8 +101,8 @@ public class IndexSummaryManagerTest
 String cfname = CF_STANDARDLOWiINTERVAL; // index interval of 8, no 
key caching
 Keyspace keyspace = Keyspace.open(ksname);
 ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(cfname);
-originalMinIndexInterval = cfs.metadata.getMinIndexInterval();
-originalMaxIndexInterval = cfs.metadata.getMaxIndexInterval();
+originalMinIndexInterval = cfs.metadata.params.minIndexInterval;
+originalMaxIndexInterval = cfs.metadata.params.maxIndexInterval;
 originalCapacity = 
IndexSummaryManager.instance.getMemoryPoolCapacityInMB();
 }
 
@@ -215,15 +214,15 @@ public class IndexSummaryManagerTest
 sstable.overrideReadMeter(new RestorableMeter(100.0, 100.0));
 
 for (SSTableReader sstable : sstables)
-assertEquals(cfs.metadata.getMinIndexInterval(), 
sstable.getEffectiveIndexInterval(), 0.001);
+assertEquals(cfs.metadata.params.minIndexInterval, 
sstable.getEffectiveIndexInterval(), 0.001);
 
 // double the min_index_interval
 cfs.metadata.minIndexInterval(originalMinIndexInterval * 2);
 IndexSummaryManager.instance.redistributeSummaries();
 for (SSTableReader sstable : cfs.getLiveSSTables())
 {
-assertEquals(cfs.metadata.getMinIndexInterval(), 
sstable.getEffectiveIndexInterval(), 0.001);
-assertEquals(numRows / cfs.metadata.getMinIndexInterval(), 
sstable.getIndexSummarySize());
+assertEquals(cfs.metadata.params.minIndexInterval, 
sstable.getEffectiveIndexInterval(), 0.001);
+assertEquals(numRows / cfs.metadata.params.minIndexInterval, 
sstable.getIndexSummarySize());
 }
 
 // return min_index_interval to its original value
@@ -231,8 +230,8 @@ public class IndexSummaryManagerTest
 IndexSummaryManager.instance.redistributeSummaries();
 for (SSTableReader sstable : cfs.getLiveSSTables())
 {
-assertEquals(cfs.metadata.getMinIndexInterval(), 
sstable.getEffectiveIndexInterval(), 0.001);
-assertEquals(numRows / cfs.metadata.getMinIndexInterval(), 
sstable.getIndexSummarySize());
+assertEquals(cfs.metadata.params.minIndexInterval, 
sstable.getEffectiveIndexInterval(), 0.001);
+assertEquals(numRows / cfs.metadata.params.minIndexInterval, 
sstable.getIndexSummarySize());
 }
 
 // halve the min_index_interval, but constrain the available space to 
exactly what we have now; as a result,
@@ -281,7 +280,7 @@ public class IndexSummaryManagerTest
 redistributeSummaries(C

[4/5] cassandra git commit: Factor out TableParams from CFMetaData

2015-08-04 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/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 c4377d6..d77cf1f 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -34,19 +34,13 @@ import com.google.common.base.*;
 import com.google.common.base.Throwables;
 import com.google.common.collect.*;
 import com.google.common.util.concurrent.*;
-
-import org.apache.cassandra.db.lifecycle.*;
-import org.apache.cassandra.io.FSWriteError;
-import org.apache.cassandra.metrics.TableMetrics;
-import org.json.simple.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.clearspring.analytics.stream.Counter;
 import org.apache.cassandra.cache.*;
 import org.apache.cassandra.concurrent.*;
 import org.apache.cassandra.config.*;
-import org.apache.cassandra.config.CFMetaData.SpeculativeRetry;
-import org.apache.cassandra.db.rows.*;
 import org.apache.cassandra.db.commitlog.CommitLog;
 import org.apache.cassandra.db.commitlog.ReplayPosition;
 import org.apache.cassandra.db.compaction.*;
@@ -54,24 +48,28 @@ import org.apache.cassandra.db.filter.*;
 import org.apache.cassandra.db.index.SecondaryIndex;
 import org.apache.cassandra.db.index.SecondaryIndexManager;
 import org.apache.cassandra.db.view.MaterializedViewManager;
+import org.apache.cassandra.db.lifecycle.*;
 import org.apache.cassandra.db.partitions.*;
+import org.apache.cassandra.db.rows.*;
 import org.apache.cassandra.dht.*;
 import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.exceptions.ConfigurationException;
-import org.apache.cassandra.io.compress.CompressionParameters;
-import org.apache.cassandra.io.sstable.Descriptor;
+import org.apache.cassandra.io.FSWriteError;
 import org.apache.cassandra.io.sstable.*;
+import org.apache.cassandra.io.sstable.Descriptor;
 import org.apache.cassandra.io.sstable.format.*;
 import org.apache.cassandra.io.util.FileUtils;
 import org.apache.cassandra.metrics.TableMetrics.Sampler;
+import org.apache.cassandra.metrics.TableMetrics;
+import org.apache.cassandra.schema.*;
 import org.apache.cassandra.service.CacheService;
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.*;
-import org.apache.cassandra.utils.concurrent.*;
 import org.apache.cassandra.utils.TopKSampler.SamplerResult;
+import org.apache.cassandra.utils.concurrent.*;
 import org.apache.cassandra.utils.memory.MemtableAllocator;
+import org.json.simple.*;
 
-import com.clearspring.analytics.stream.Counter;
 
 import static org.apache.cassandra.utils.Throwables.maybeFail;
 
@@ -185,10 +183,10 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 // only update these runtime-modifiable settings if they have not been 
modified.
 if (!minCompactionThreshold.isModified())
 for (ColumnFamilyStore cfs : concatWithIndexes())
-cfs.minCompactionThreshold = new 
DefaultInteger(metadata.getMinCompactionThreshold());
+cfs.minCompactionThreshold = new 
DefaultInteger(metadata.params.compaction.minCompactionThreshold());
 if (!maxCompactionThreshold.isModified())
 for (ColumnFamilyStore cfs : concatWithIndexes())
-cfs.maxCompactionThreshold = new 
DefaultInteger(metadata.getMaxCompactionThreshold());
+cfs.maxCompactionThreshold = new 
DefaultInteger(metadata.params.compaction.maxCompactionThreshold());
 
 compactionStrategyManager.maybeReload(metadata);
 
@@ -205,7 +203,7 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 
 void scheduleFlush()
 {
-int period = metadata.getMemtableFlushPeriod();
+int period = metadata.params.memtableFlushPeriodInMs;
 if (period > 0)
 {
 logger.debug("scheduling flush in {} ms", period);
@@ -252,33 +250,25 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 
 public void setCompactionStrategyClass(String compactionStrategyClass)
 {
-try
-{
-metadata.compactionStrategyClass = 
CFMetaData.createCompactionStrategy(compactionStrategyClass);
-compactionStrategyManager.maybeReload(metadata);
-}
-catch (ConfigurationException e)
-{
-throw new IllegalArgumentException(e.getMessage());
-}
+throw new 
UnsupportedOperationException("ColumnFamilyStore.setCompactionStrategyClass() 
method is no longer supported");
 }
 
 public String getCompactionStrategyClass()
 {
-return metadata.compactionStrategyClass.getName();
+return metadata.params.compaction.klass().getName();
 }
 
 public Map getCompressionParameters()
 {
-return

[5/5] cassandra git commit: Factor out TableParams from CFMetaData

2015-08-04 Thread aleksey
Factor out TableParams from CFMetaData

patch by Aleksey Yeschenko; reviewed by Robert Stupp for CASSANDRA-9712


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b31845c4
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b31845c4
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b31845c4

Branch: refs/heads/cassandra-3.0
Commit: b31845c4a7982358a7c5bfd9bcf572fda6c1bfa9
Parents: 6932bd8
Author: Aleksey Yeschenko 
Authored: Sat Jul 18 01:59:00 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 4 12:12:34 2015 +0300

--
 NEWS.txt|   8 +-
 .../apache/cassandra/cache/CachingOptions.java  | 291 --
 .../org/apache/cassandra/config/CFMetaData.java | 540 +
 src/java/org/apache/cassandra/cql3/Cql.g|  12 +-
 .../AlterMaterializedViewStatement.java |  16 +-
 .../cql3/statements/AlterTableStatement.java|  19 +-
 .../cassandra/cql3/statements/CFPropDefs.java   | 222 ---
 .../cassandra/cql3/statements/CFProperties.java |   4 +-
 .../cql3/statements/CreateTableStatement.java   |  56 +-
 .../cql3/statements/KeyspaceAttributes.java |  36 +-
 .../cql3/statements/TableAttributes.java| 153 +
 .../apache/cassandra/db/ColumnFamilyStore.java  |  71 +--
 .../cassandra/db/HintedHandOffManager.java  |   2 +-
 .../org/apache/cassandra/db/LivenessInfo.java   |   2 +-
 src/java/org/apache/cassandra/db/Memtable.java  |   2 +-
 .../apache/cassandra/db/RowUpdateBuilder.java   |   2 +-
 .../db/SinglePartitionReadCommand.java  |   4 +-
 .../org/apache/cassandra/db/SystemKeyspace.java |  21 +-
 .../cassandra/db/commitlog/CommitLog.java   |   4 +-
 .../db/commitlog/CommitLogArchiver.java |   5 +-
 .../db/commitlog/CommitLogReplayer.java |   4 +-
 .../db/compaction/CompactionManager.java|   4 +-
 .../compaction/CompactionStrategyManager.java   |  36 +-
 .../DateTieredCompactionStrategy.java   |  12 +-
 .../cassandra/db/compaction/Scrubber.java   |   2 +-
 .../SizeTieredCompactionStrategy.java   |  14 +-
 .../cassandra/db/compaction/Upgrader.java   |   2 +-
 .../apache/cassandra/db/rows/BufferCell.java|   4 +-
 .../cassandra/db/view/MaterializedView.java |   5 +-
 .../dht/OrderPreservingPartitioner.java |   2 +-
 .../apache/cassandra/hadoop/ConfigHelper.java   |   6 +-
 .../io/compress/CompressedSequentialWriter.java |   4 +-
 .../io/compress/CompressionMetadata.java|  15 +-
 .../io/compress/CompressionParameters.java  | 564 --
 .../cassandra/io/compress/LZ4Compressor.java|   3 +-
 .../io/sstable/IndexSummaryManager.java |   4 +-
 .../io/sstable/format/SSTableReader.java|  26 +-
 .../io/sstable/format/SSTableWriter.java|   6 +-
 .../io/sstable/format/big/BigTableWriter.java   |   6 +-
 .../cassandra/io/util/SequentialWriter.java |   4 +-
 .../apache/cassandra/schema/CachingParams.java  | 196 +++
 .../cassandra/schema/CompactionParams.java  | 304 ++
 .../cassandra/schema/CompressionParams.java | 579 +++
 .../apache/cassandra/schema/KeyspaceParams.java |  95 +--
 .../cassandra/schema/LegacySchemaMigrator.java  | 122 ++--
 .../cassandra/schema/ReplicationParams.java | 106 
 .../apache/cassandra/schema/SchemaKeyspace.java | 142 ++---
 .../cassandra/schema/SpeculativeRetryParam.java | 160 +
 .../apache/cassandra/schema/TableParams.java| 338 +++
 .../cassandra/service/AbstractReadExecutor.java |   9 +-
 .../apache/cassandra/service/CacheService.java  |   2 +-
 .../cassandra/service/StorageService.java   |   2 +-
 .../streaming/compress/CompressionInfo.java |  12 +-
 .../cassandra/thrift/CassandraServer.java   |   7 +-
 .../cassandra/thrift/ThriftConversion.java  | 181 --
 .../org/apache/cassandra/utils/FBUtilities.java |   8 +-
 .../utils/NativeSSTableLoaderClient.java|   2 +-
 .../db/compaction/LongCompactionsTest.java  |  10 +-
 .../LongLeveledCompactionStrategyTest.java  |   4 +-
 test/unit/org/apache/cassandra/MockSchema.java  |   4 +-
 .../unit/org/apache/cassandra/SchemaLoader.java |  50 +-
 .../apache/cassandra/config/CFMetaDataTest.java |   4 +-
 .../validation/entities/SecondaryIndexTest.java |   2 +-
 .../miscellaneous/CrcCheckChanceTest.java   |  12 +-
 .../validation/miscellaneous/OverflowTest.java  |   8 +-
 .../cql3/validation/operations/AlterTest.java   |  14 +-
 .../SelectOrderedPartitionerTest.java   |   2 +-
 .../apache/cassandra/db/HintedHandOffTest.java  |   2 -
 .../apache/cassandra/db/RangeTombstoneTest.java |   5 -
 .../apache/cassandra/db/RowCacheCQLTest.java|   2 +-
 .../org/apache/cassandra/db/RowCacheTest.java   |   7 +-
 .../unit/org/apache/cassandra/db/ScrubTest.java |   2 +-
 .../org/apache

[2/5] cassandra git commit: Factor out TableParams from CFMetaData

2015-08-04 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
--
diff --git a/src/java/org/apache/cassandra/service/AbstractReadExecutor.java 
b/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
index 9a57f45..487a14c 100644
--- a/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
+++ b/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
@@ -28,7 +28,6 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.cassandra.concurrent.Stage;
 import org.apache.cassandra.concurrent.StageManager;
-import org.apache.cassandra.config.CFMetaData.SpeculativeRetry.RetryType;
 import org.apache.cassandra.config.ReadRepairDecision;
 import org.apache.cassandra.db.ColumnFamilyStore;
 import org.apache.cassandra.db.ConsistencyLevel;
@@ -42,10 +41,10 @@ import org.apache.cassandra.exceptions.UnavailableException;
 import org.apache.cassandra.metrics.ReadRepairMetrics;
 import org.apache.cassandra.net.MessageOut;
 import org.apache.cassandra.net.MessagingService;
+import org.apache.cassandra.schema.SpeculativeRetryParam;
 import org.apache.cassandra.service.StorageProxy.LocalReadRunnable;
 import org.apache.cassandra.tracing.TraceState;
 import org.apache.cassandra.tracing.Tracing;
-import org.apache.cassandra.utils.FBUtilities;
 
 /**
  * Sends a read request to the replicas needed to satisfy a given 
ConsistencyLevel.
@@ -159,10 +158,10 @@ public abstract class AbstractReadExecutor
 }
 
 ColumnFamilyStore cfs = 
keyspace.getColumnFamilyStore(command.metadata().cfId);
-RetryType retryType = cfs.metadata.getSpeculativeRetry().type;
+SpeculativeRetryParam retry = cfs.metadata.params.speculativeRetry;
 
 // Speculative retry is disabled *OR* there are simply no extra 
replicas to speculate.
-if (retryType == RetryType.NONE || consistencyLevel.blockFor(keyspace) 
== allReplicas.size())
+if (retry.equals(SpeculativeRetryParam.NONE) || 
consistencyLevel.blockFor(keyspace) == allReplicas.size())
 return new NeverSpeculatingReadExecutor(keyspace, command, 
consistencyLevel, targetReplicas);
 
 if (targetReplicas.size() == allReplicas.size())
@@ -190,7 +189,7 @@ public abstract class AbstractReadExecutor
 }
 targetReplicas.add(extraReplica);
 
-if (retryType == RetryType.ALWAYS)
+if (retry.equals(SpeculativeRetryParam.ALWAYS))
 return new AlwaysSpeculatingReadExecutor(keyspace, cfs, command, 
consistencyLevel, targetReplicas);
 else // PERCENTILE or CUSTOM.
 return new SpeculatingReadExecutor(keyspace, cfs, command, 
consistencyLevel, targetReplicas);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/src/java/org/apache/cassandra/service/CacheService.java
--
diff --git a/src/java/org/apache/cassandra/service/CacheService.java 
b/src/java/org/apache/cassandra/service/CacheService.java
index 253e9e4..c9d9fa5 100644
--- a/src/java/org/apache/cassandra/service/CacheService.java
+++ b/src/java/org/apache/cassandra/service/CacheService.java
@@ -421,7 +421,7 @@ public class CacheService implements CacheServiceMBean
 public Future> 
deserialize(DataInputPlus in, final ColumnFamilyStore cfs) throws IOException
 {
 final ByteBuffer buffer = ByteBufferUtil.readWithLength(in);
-final int rowsToCache = 
cfs.metadata.getCaching().rowCache.rowsToCache;
+final int rowsToCache = 
cfs.metadata.params.caching.rowsPerPartitionToCache();
 
 return StageManager.getStage(Stage.READ).submit(new 
Callable>()
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/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 9ac94cc..f263a82 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -3277,7 +3277,7 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
 Token token = tokens.get(index);
 Range range = new Range<>(prevToken, token);
 // always return an estimate > 0 (see CASSANDRA-7322)
-splits.add(Pair.create(range, 
Math.max(cfs.metadata.getMinIndexInterval(), 
cfs.estimatedKeysForRange(range;
+splits.add(Pair.create(range, 
Math.max(cfs.metadata.params.minIndexInterval, 
cfs.estimatedKeysForRange(range;
 prevToken = token;
 }
 return splits;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/src/java/org/apache/cassandra/streaming/compress/CompressionInfo

[3/5] cassandra git commit: Factor out TableParams from CFMetaData

2015-08-04 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/src/java/org/apache/cassandra/schema/CachingParams.java
--
diff --git a/src/java/org/apache/cassandra/schema/CachingParams.java 
b/src/java/org/apache/cassandra/schema/CachingParams.java
new file mode 100644
index 000..2b5ab7c
--- /dev/null
+++ b/src/java/org/apache/cassandra/schema/CachingParams.java
@@ -0,0 +1,196 @@
+/*
+ * 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.schema;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.ImmutableMap;
+import org.apache.commons.lang3.StringUtils;
+
+import org.apache.cassandra.exceptions.ConfigurationException;
+
+import static java.lang.String.format;
+
+// CQL: {'keys' : 'ALL'|'NONE', 'rows_per_partition': '200'|'NONE'|'ALL'}
+public final class CachingParams
+{
+public enum Option
+{
+KEYS,
+ROWS_PER_PARTITION;
+
+@Override
+public String toString()
+{
+return name().toLowerCase();
+}
+}
+
+private static final String ALL = "ALL";
+private static final String NONE = "NONE";
+
+static final boolean DEFAULT_CACHE_KEYS = true;
+static final int DEFAULT_ROWS_PER_PARTITION_TO_CACHE = 0;
+
+public static final CachingParams CACHE_NOTHING = new CachingParams(false, 
0);
+public static final CachingParams CACHE_KEYS = new CachingParams(true, 0);
+public static final CachingParams CACHE_EVERYTHING = new 
CachingParams(true, Integer.MAX_VALUE);
+
+static final CachingParams DEFAULT = new CachingParams(DEFAULT_CACHE_KEYS, 
DEFAULT_ROWS_PER_PARTITION_TO_CACHE);
+
+final boolean cacheKeys;
+final int rowsPerPartitionToCache;
+
+public CachingParams(boolean cacheKeys, int rowsPerPartitionToCache)
+{
+this.cacheKeys = cacheKeys;
+this.rowsPerPartitionToCache = rowsPerPartitionToCache;
+}
+
+public boolean cacheKeys()
+{
+return cacheKeys;
+}
+
+public boolean cacheRows()
+{
+return rowsPerPartitionToCache > 0;
+}
+
+public boolean cacheAllRows()
+{
+return rowsPerPartitionToCache == Integer.MAX_VALUE;
+}
+
+public int rowsPerPartitionToCache()
+{
+return rowsPerPartitionToCache;
+}
+
+public static CachingParams fromMap(Map map)
+{
+Map copy = new HashMap<>(map);
+
+String keys = copy.remove(Option.KEYS.toString());
+boolean cacheKeys = keys != null && keysFromString(keys);
+
+String rows = copy.remove(Option.ROWS_PER_PARTITION.toString());
+int rowsPerPartitionToCache = rows == null
+? 0
+: rowsPerPartitionFromString(rows);
+
+if (!copy.isEmpty())
+{
+throw new ConfigurationException(format("Invalid caching 
sub-options %s: only '%s' and '%s' are allowed",
+copy.keySet(),
+Option.KEYS,
+
Option.ROWS_PER_PARTITION));
+}
+
+return new CachingParams(cacheKeys, rowsPerPartitionToCache);
+}
+
+public Map asMap()
+{
+return ImmutableMap.of(Option.KEYS.toString(),
+   keysAsString(),
+   Option.ROWS_PER_PARTITION.toString(),
+   rowsPerPartitionAsString());
+}
+
+private static boolean keysFromString(String value)
+{
+if (value.equalsIgnoreCase(ALL))
+return true;
+
+if (value.equalsIgnoreCase(NONE))
+return false;
+
+throw new ConfigurationException(format("Invalid value '%s' for 
caching sub-option '%s': only '%s' and '%s' are allowed",
+value,
+Option.KEYS,
+ALL,
+NONE));
+}
+
+String keysAsString()
+

[6/6] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

2015-08-04 Thread aleksey
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/becee6ae
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/becee6ae
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/becee6ae

Branch: refs/heads/trunk
Commit: becee6ae4a04f76d5998de1814c9d6e0164d998d
Parents: 7d2a96e b31845c
Author: Aleksey Yeschenko 
Authored: Tue Aug 4 12:16:04 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 4 12:16:04 2015 +0300

--
 NEWS.txt|   8 +-
 .../apache/cassandra/cache/CachingOptions.java  | 291 --
 .../org/apache/cassandra/config/CFMetaData.java | 540 +
 src/java/org/apache/cassandra/cql3/Cql.g|  12 +-
 .../AlterMaterializedViewStatement.java |  16 +-
 .../cql3/statements/AlterTableStatement.java|  19 +-
 .../cassandra/cql3/statements/CFPropDefs.java   | 222 ---
 .../cassandra/cql3/statements/CFProperties.java |   4 +-
 .../cql3/statements/CreateTableStatement.java   |  56 +-
 .../cql3/statements/KeyspaceAttributes.java |  36 +-
 .../cql3/statements/TableAttributes.java| 153 +
 .../apache/cassandra/db/ColumnFamilyStore.java  |  71 +--
 .../cassandra/db/HintedHandOffManager.java  |   2 +-
 .../org/apache/cassandra/db/LivenessInfo.java   |   2 +-
 src/java/org/apache/cassandra/db/Memtable.java  |   2 +-
 .../apache/cassandra/db/RowUpdateBuilder.java   |   2 +-
 .../db/SinglePartitionReadCommand.java  |   4 +-
 .../org/apache/cassandra/db/SystemKeyspace.java |  21 +-
 .../cassandra/db/commitlog/CommitLog.java   |   4 +-
 .../db/commitlog/CommitLogArchiver.java |   5 +-
 .../db/commitlog/CommitLogReplayer.java |   4 +-
 .../db/compaction/CompactionManager.java|   4 +-
 .../compaction/CompactionStrategyManager.java   |  36 +-
 .../DateTieredCompactionStrategy.java   |  12 +-
 .../cassandra/db/compaction/Scrubber.java   |   2 +-
 .../SizeTieredCompactionStrategy.java   |  14 +-
 .../cassandra/db/compaction/Upgrader.java   |   2 +-
 .../apache/cassandra/db/rows/BufferCell.java|   4 +-
 .../cassandra/db/view/MaterializedView.java |   5 +-
 .../dht/OrderPreservingPartitioner.java |   2 +-
 .../apache/cassandra/hadoop/ConfigHelper.java   |   6 +-
 .../io/compress/CompressedSequentialWriter.java |   4 +-
 .../io/compress/CompressionMetadata.java|  15 +-
 .../io/compress/CompressionParameters.java  | 564 --
 .../cassandra/io/compress/LZ4Compressor.java|   3 +-
 .../io/sstable/IndexSummaryManager.java |   4 +-
 .../io/sstable/format/SSTableReader.java|  26 +-
 .../io/sstable/format/SSTableWriter.java|   6 +-
 .../io/sstable/format/big/BigTableWriter.java   |   6 +-
 .../cassandra/io/util/SequentialWriter.java |   4 +-
 .../apache/cassandra/schema/CachingParams.java  | 196 +++
 .../cassandra/schema/CompactionParams.java  | 304 ++
 .../cassandra/schema/CompressionParams.java | 579 +++
 .../apache/cassandra/schema/KeyspaceParams.java |  95 +--
 .../cassandra/schema/LegacySchemaMigrator.java  | 122 ++--
 .../cassandra/schema/ReplicationParams.java | 106 
 .../apache/cassandra/schema/SchemaKeyspace.java | 142 ++---
 .../cassandra/schema/SpeculativeRetryParam.java | 160 +
 .../apache/cassandra/schema/TableParams.java| 338 +++
 .../cassandra/service/AbstractReadExecutor.java |   9 +-
 .../apache/cassandra/service/CacheService.java  |   2 +-
 .../cassandra/service/StorageService.java   |   2 +-
 .../streaming/compress/CompressionInfo.java |  12 +-
 .../cassandra/thrift/CassandraServer.java   |   7 +-
 .../cassandra/thrift/ThriftConversion.java  | 181 --
 .../org/apache/cassandra/utils/FBUtilities.java |   8 +-
 .../utils/NativeSSTableLoaderClient.java|   2 +-
 .../db/compaction/LongCompactionsTest.java  |  10 +-
 .../LongLeveledCompactionStrategyTest.java  |   4 +-
 test/unit/org/apache/cassandra/MockSchema.java  |   4 +-
 .../unit/org/apache/cassandra/SchemaLoader.java |  50 +-
 .../apache/cassandra/config/CFMetaDataTest.java |   4 +-
 .../validation/entities/SecondaryIndexTest.java |   2 +-
 .../miscellaneous/CrcCheckChanceTest.java   |  12 +-
 .../validation/miscellaneous/OverflowTest.java  |   8 +-
 .../cql3/validation/operations/AlterTest.java   |  14 +-
 .../SelectOrderedPartitionerTest.java   |   2 +-
 .../apache/cassandra/db/HintedHandOffTest.java  |   2 -
 .../apache/cassandra/db/RangeTombstoneTest.java |   5 -
 .../apache/cassandra/db/RowCacheCQLTest.java|   2 +-
 .../org/apache/cassandra/db/RowCacheTest.java   |   7 +-
 .../unit/org/apache/cassandra/db/ScrubTest.java |   2 +-
 .../org/apache/cassandra/db/VerifyTest.java |  12 +-
 .../db

[2/6] cassandra git commit: Factor out TableParams from CFMetaData

2015-08-04 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
--
diff --git a/src/java/org/apache/cassandra/service/AbstractReadExecutor.java 
b/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
index 9a57f45..487a14c 100644
--- a/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
+++ b/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
@@ -28,7 +28,6 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.cassandra.concurrent.Stage;
 import org.apache.cassandra.concurrent.StageManager;
-import org.apache.cassandra.config.CFMetaData.SpeculativeRetry.RetryType;
 import org.apache.cassandra.config.ReadRepairDecision;
 import org.apache.cassandra.db.ColumnFamilyStore;
 import org.apache.cassandra.db.ConsistencyLevel;
@@ -42,10 +41,10 @@ import org.apache.cassandra.exceptions.UnavailableException;
 import org.apache.cassandra.metrics.ReadRepairMetrics;
 import org.apache.cassandra.net.MessageOut;
 import org.apache.cassandra.net.MessagingService;
+import org.apache.cassandra.schema.SpeculativeRetryParam;
 import org.apache.cassandra.service.StorageProxy.LocalReadRunnable;
 import org.apache.cassandra.tracing.TraceState;
 import org.apache.cassandra.tracing.Tracing;
-import org.apache.cassandra.utils.FBUtilities;
 
 /**
  * Sends a read request to the replicas needed to satisfy a given 
ConsistencyLevel.
@@ -159,10 +158,10 @@ public abstract class AbstractReadExecutor
 }
 
 ColumnFamilyStore cfs = 
keyspace.getColumnFamilyStore(command.metadata().cfId);
-RetryType retryType = cfs.metadata.getSpeculativeRetry().type;
+SpeculativeRetryParam retry = cfs.metadata.params.speculativeRetry;
 
 // Speculative retry is disabled *OR* there are simply no extra 
replicas to speculate.
-if (retryType == RetryType.NONE || consistencyLevel.blockFor(keyspace) 
== allReplicas.size())
+if (retry.equals(SpeculativeRetryParam.NONE) || 
consistencyLevel.blockFor(keyspace) == allReplicas.size())
 return new NeverSpeculatingReadExecutor(keyspace, command, 
consistencyLevel, targetReplicas);
 
 if (targetReplicas.size() == allReplicas.size())
@@ -190,7 +189,7 @@ public abstract class AbstractReadExecutor
 }
 targetReplicas.add(extraReplica);
 
-if (retryType == RetryType.ALWAYS)
+if (retry.equals(SpeculativeRetryParam.ALWAYS))
 return new AlwaysSpeculatingReadExecutor(keyspace, cfs, command, 
consistencyLevel, targetReplicas);
 else // PERCENTILE or CUSTOM.
 return new SpeculatingReadExecutor(keyspace, cfs, command, 
consistencyLevel, targetReplicas);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/src/java/org/apache/cassandra/service/CacheService.java
--
diff --git a/src/java/org/apache/cassandra/service/CacheService.java 
b/src/java/org/apache/cassandra/service/CacheService.java
index 253e9e4..c9d9fa5 100644
--- a/src/java/org/apache/cassandra/service/CacheService.java
+++ b/src/java/org/apache/cassandra/service/CacheService.java
@@ -421,7 +421,7 @@ public class CacheService implements CacheServiceMBean
 public Future> 
deserialize(DataInputPlus in, final ColumnFamilyStore cfs) throws IOException
 {
 final ByteBuffer buffer = ByteBufferUtil.readWithLength(in);
-final int rowsToCache = 
cfs.metadata.getCaching().rowCache.rowsToCache;
+final int rowsToCache = 
cfs.metadata.params.caching.rowsPerPartitionToCache();
 
 return StageManager.getStage(Stage.READ).submit(new 
Callable>()
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/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 9ac94cc..f263a82 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -3277,7 +3277,7 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
 Token token = tokens.get(index);
 Range range = new Range<>(prevToken, token);
 // always return an estimate > 0 (see CASSANDRA-7322)
-splits.add(Pair.create(range, 
Math.max(cfs.metadata.getMinIndexInterval(), 
cfs.estimatedKeysForRange(range;
+splits.add(Pair.create(range, 
Math.max(cfs.metadata.params.minIndexInterval, 
cfs.estimatedKeysForRange(range;
 prevToken = token;
 }
 return splits;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/src/java/org/apache/cassandra/streaming/compress/CompressionInfo

[5/6] cassandra git commit: Factor out TableParams from CFMetaData

2015-08-04 Thread aleksey
Factor out TableParams from CFMetaData

patch by Aleksey Yeschenko; reviewed by Robert Stupp for CASSANDRA-9712


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b31845c4
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b31845c4
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b31845c4

Branch: refs/heads/trunk
Commit: b31845c4a7982358a7c5bfd9bcf572fda6c1bfa9
Parents: 6932bd8
Author: Aleksey Yeschenko 
Authored: Sat Jul 18 01:59:00 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 4 12:12:34 2015 +0300

--
 NEWS.txt|   8 +-
 .../apache/cassandra/cache/CachingOptions.java  | 291 --
 .../org/apache/cassandra/config/CFMetaData.java | 540 +
 src/java/org/apache/cassandra/cql3/Cql.g|  12 +-
 .../AlterMaterializedViewStatement.java |  16 +-
 .../cql3/statements/AlterTableStatement.java|  19 +-
 .../cassandra/cql3/statements/CFPropDefs.java   | 222 ---
 .../cassandra/cql3/statements/CFProperties.java |   4 +-
 .../cql3/statements/CreateTableStatement.java   |  56 +-
 .../cql3/statements/KeyspaceAttributes.java |  36 +-
 .../cql3/statements/TableAttributes.java| 153 +
 .../apache/cassandra/db/ColumnFamilyStore.java  |  71 +--
 .../cassandra/db/HintedHandOffManager.java  |   2 +-
 .../org/apache/cassandra/db/LivenessInfo.java   |   2 +-
 src/java/org/apache/cassandra/db/Memtable.java  |   2 +-
 .../apache/cassandra/db/RowUpdateBuilder.java   |   2 +-
 .../db/SinglePartitionReadCommand.java  |   4 +-
 .../org/apache/cassandra/db/SystemKeyspace.java |  21 +-
 .../cassandra/db/commitlog/CommitLog.java   |   4 +-
 .../db/commitlog/CommitLogArchiver.java |   5 +-
 .../db/commitlog/CommitLogReplayer.java |   4 +-
 .../db/compaction/CompactionManager.java|   4 +-
 .../compaction/CompactionStrategyManager.java   |  36 +-
 .../DateTieredCompactionStrategy.java   |  12 +-
 .../cassandra/db/compaction/Scrubber.java   |   2 +-
 .../SizeTieredCompactionStrategy.java   |  14 +-
 .../cassandra/db/compaction/Upgrader.java   |   2 +-
 .../apache/cassandra/db/rows/BufferCell.java|   4 +-
 .../cassandra/db/view/MaterializedView.java |   5 +-
 .../dht/OrderPreservingPartitioner.java |   2 +-
 .../apache/cassandra/hadoop/ConfigHelper.java   |   6 +-
 .../io/compress/CompressedSequentialWriter.java |   4 +-
 .../io/compress/CompressionMetadata.java|  15 +-
 .../io/compress/CompressionParameters.java  | 564 --
 .../cassandra/io/compress/LZ4Compressor.java|   3 +-
 .../io/sstable/IndexSummaryManager.java |   4 +-
 .../io/sstable/format/SSTableReader.java|  26 +-
 .../io/sstable/format/SSTableWriter.java|   6 +-
 .../io/sstable/format/big/BigTableWriter.java   |   6 +-
 .../cassandra/io/util/SequentialWriter.java |   4 +-
 .../apache/cassandra/schema/CachingParams.java  | 196 +++
 .../cassandra/schema/CompactionParams.java  | 304 ++
 .../cassandra/schema/CompressionParams.java | 579 +++
 .../apache/cassandra/schema/KeyspaceParams.java |  95 +--
 .../cassandra/schema/LegacySchemaMigrator.java  | 122 ++--
 .../cassandra/schema/ReplicationParams.java | 106 
 .../apache/cassandra/schema/SchemaKeyspace.java | 142 ++---
 .../cassandra/schema/SpeculativeRetryParam.java | 160 +
 .../apache/cassandra/schema/TableParams.java| 338 +++
 .../cassandra/service/AbstractReadExecutor.java |   9 +-
 .../apache/cassandra/service/CacheService.java  |   2 +-
 .../cassandra/service/StorageService.java   |   2 +-
 .../streaming/compress/CompressionInfo.java |  12 +-
 .../cassandra/thrift/CassandraServer.java   |   7 +-
 .../cassandra/thrift/ThriftConversion.java  | 181 --
 .../org/apache/cassandra/utils/FBUtilities.java |   8 +-
 .../utils/NativeSSTableLoaderClient.java|   2 +-
 .../db/compaction/LongCompactionsTest.java  |  10 +-
 .../LongLeveledCompactionStrategyTest.java  |   4 +-
 test/unit/org/apache/cassandra/MockSchema.java  |   4 +-
 .../unit/org/apache/cassandra/SchemaLoader.java |  50 +-
 .../apache/cassandra/config/CFMetaDataTest.java |   4 +-
 .../validation/entities/SecondaryIndexTest.java |   2 +-
 .../miscellaneous/CrcCheckChanceTest.java   |  12 +-
 .../validation/miscellaneous/OverflowTest.java  |   8 +-
 .../cql3/validation/operations/AlterTest.java   |  14 +-
 .../SelectOrderedPartitionerTest.java   |   2 +-
 .../apache/cassandra/db/HintedHandOffTest.java  |   2 -
 .../apache/cassandra/db/RangeTombstoneTest.java |   5 -
 .../apache/cassandra/db/RowCacheCQLTest.java|   2 +-
 .../org/apache/cassandra/db/RowCacheTest.java   |   7 +-
 .../unit/org/apache/cassandra/db/ScrubTest.java |   2 +-
 .../org/apache/cassandra/db

[1/6] cassandra git commit: Factor out TableParams from CFMetaData

2015-08-04 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 7d2a96ef6 -> becee6ae4


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/test/unit/org/apache/cassandra/io/sstable/IndexSummaryManagerTest.java
--
diff --git 
a/test/unit/org/apache/cassandra/io/sstable/IndexSummaryManagerTest.java 
b/test/unit/org/apache/cassandra/io/sstable/IndexSummaryManagerTest.java
index 5f11f51..5493edb 100644
--- a/test/unit/org/apache/cassandra/io/sstable/IndexSummaryManagerTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/IndexSummaryManagerTest.java
@@ -39,7 +39,6 @@ import org.slf4j.LoggerFactory;
 import org.apache.cassandra.OrderedJUnit4ClassRunner;
 import org.apache.cassandra.SchemaLoader;
 import org.apache.cassandra.Util;
-import org.apache.cassandra.cache.CachingOptions;
 import org.apache.cassandra.db.ColumnFamilyStore;
 import org.apache.cassandra.db.Keyspace;
 import org.apache.cassandra.db.RowUpdateBuilder;
@@ -49,6 +48,7 @@ import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.io.sstable.format.SSTableReader;
 import org.apache.cassandra.db.lifecycle.LifecycleTransaction;
 import org.apache.cassandra.metrics.RestorableMeter;
+import org.apache.cassandra.schema.CachingParams;
 import org.apache.cassandra.schema.KeyspaceParams;
 import org.apache.cassandra.utils.ByteBufferUtil;
 
@@ -87,12 +87,11 @@ public class IndexSummaryManagerTest
 SchemaLoader.standardCFMD(KEYSPACE1, 
CF_STANDARDLOWiINTERVAL)
 .minIndexInterval(8)
 .maxIndexInterval(256)
-.caching(CachingOptions.NONE),
+
.caching(CachingParams.CACHE_NOTHING),
 SchemaLoader.standardCFMD(KEYSPACE1, 
CF_STANDARDRACE)
 .minIndexInterval(8)
 .maxIndexInterval(256)
-.caching(CachingOptions.NONE)
-);
+
.caching(CachingParams.CACHE_NOTHING));
 }
 
 @Before
@@ -102,8 +101,8 @@ public class IndexSummaryManagerTest
 String cfname = CF_STANDARDLOWiINTERVAL; // index interval of 8, no 
key caching
 Keyspace keyspace = Keyspace.open(ksname);
 ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(cfname);
-originalMinIndexInterval = cfs.metadata.getMinIndexInterval();
-originalMaxIndexInterval = cfs.metadata.getMaxIndexInterval();
+originalMinIndexInterval = cfs.metadata.params.minIndexInterval;
+originalMaxIndexInterval = cfs.metadata.params.maxIndexInterval;
 originalCapacity = 
IndexSummaryManager.instance.getMemoryPoolCapacityInMB();
 }
 
@@ -215,15 +214,15 @@ public class IndexSummaryManagerTest
 sstable.overrideReadMeter(new RestorableMeter(100.0, 100.0));
 
 for (SSTableReader sstable : sstables)
-assertEquals(cfs.metadata.getMinIndexInterval(), 
sstable.getEffectiveIndexInterval(), 0.001);
+assertEquals(cfs.metadata.params.minIndexInterval, 
sstable.getEffectiveIndexInterval(), 0.001);
 
 // double the min_index_interval
 cfs.metadata.minIndexInterval(originalMinIndexInterval * 2);
 IndexSummaryManager.instance.redistributeSummaries();
 for (SSTableReader sstable : cfs.getLiveSSTables())
 {
-assertEquals(cfs.metadata.getMinIndexInterval(), 
sstable.getEffectiveIndexInterval(), 0.001);
-assertEquals(numRows / cfs.metadata.getMinIndexInterval(), 
sstable.getIndexSummarySize());
+assertEquals(cfs.metadata.params.minIndexInterval, 
sstable.getEffectiveIndexInterval(), 0.001);
+assertEquals(numRows / cfs.metadata.params.minIndexInterval, 
sstable.getIndexSummarySize());
 }
 
 // return min_index_interval to its original value
@@ -231,8 +230,8 @@ public class IndexSummaryManagerTest
 IndexSummaryManager.instance.redistributeSummaries();
 for (SSTableReader sstable : cfs.getLiveSSTables())
 {
-assertEquals(cfs.metadata.getMinIndexInterval(), 
sstable.getEffectiveIndexInterval(), 0.001);
-assertEquals(numRows / cfs.metadata.getMinIndexInterval(), 
sstable.getIndexSummarySize());
+assertEquals(cfs.metadata.params.minIndexInterval, 
sstable.getEffectiveIndexInterval(), 0.001);
+assertEquals(numRows / cfs.metadata.params.minIndexInterval, 
sstable.getIndexSummarySize());
 }
 
 // halve the min_index_interval, but constrain the available space to 
exactly what we have now; as a result,
@@ -281,7 +280,7 @@ public class IndexSummaryManagerTest
 redistributeSummaries(Collectio

[3/6] cassandra git commit: Factor out TableParams from CFMetaData

2015-08-04 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/src/java/org/apache/cassandra/schema/CachingParams.java
--
diff --git a/src/java/org/apache/cassandra/schema/CachingParams.java 
b/src/java/org/apache/cassandra/schema/CachingParams.java
new file mode 100644
index 000..2b5ab7c
--- /dev/null
+++ b/src/java/org/apache/cassandra/schema/CachingParams.java
@@ -0,0 +1,196 @@
+/*
+ * 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.schema;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.ImmutableMap;
+import org.apache.commons.lang3.StringUtils;
+
+import org.apache.cassandra.exceptions.ConfigurationException;
+
+import static java.lang.String.format;
+
+// CQL: {'keys' : 'ALL'|'NONE', 'rows_per_partition': '200'|'NONE'|'ALL'}
+public final class CachingParams
+{
+public enum Option
+{
+KEYS,
+ROWS_PER_PARTITION;
+
+@Override
+public String toString()
+{
+return name().toLowerCase();
+}
+}
+
+private static final String ALL = "ALL";
+private static final String NONE = "NONE";
+
+static final boolean DEFAULT_CACHE_KEYS = true;
+static final int DEFAULT_ROWS_PER_PARTITION_TO_CACHE = 0;
+
+public static final CachingParams CACHE_NOTHING = new CachingParams(false, 
0);
+public static final CachingParams CACHE_KEYS = new CachingParams(true, 0);
+public static final CachingParams CACHE_EVERYTHING = new 
CachingParams(true, Integer.MAX_VALUE);
+
+static final CachingParams DEFAULT = new CachingParams(DEFAULT_CACHE_KEYS, 
DEFAULT_ROWS_PER_PARTITION_TO_CACHE);
+
+final boolean cacheKeys;
+final int rowsPerPartitionToCache;
+
+public CachingParams(boolean cacheKeys, int rowsPerPartitionToCache)
+{
+this.cacheKeys = cacheKeys;
+this.rowsPerPartitionToCache = rowsPerPartitionToCache;
+}
+
+public boolean cacheKeys()
+{
+return cacheKeys;
+}
+
+public boolean cacheRows()
+{
+return rowsPerPartitionToCache > 0;
+}
+
+public boolean cacheAllRows()
+{
+return rowsPerPartitionToCache == Integer.MAX_VALUE;
+}
+
+public int rowsPerPartitionToCache()
+{
+return rowsPerPartitionToCache;
+}
+
+public static CachingParams fromMap(Map map)
+{
+Map copy = new HashMap<>(map);
+
+String keys = copy.remove(Option.KEYS.toString());
+boolean cacheKeys = keys != null && keysFromString(keys);
+
+String rows = copy.remove(Option.ROWS_PER_PARTITION.toString());
+int rowsPerPartitionToCache = rows == null
+? 0
+: rowsPerPartitionFromString(rows);
+
+if (!copy.isEmpty())
+{
+throw new ConfigurationException(format("Invalid caching 
sub-options %s: only '%s' and '%s' are allowed",
+copy.keySet(),
+Option.KEYS,
+
Option.ROWS_PER_PARTITION));
+}
+
+return new CachingParams(cacheKeys, rowsPerPartitionToCache);
+}
+
+public Map asMap()
+{
+return ImmutableMap.of(Option.KEYS.toString(),
+   keysAsString(),
+   Option.ROWS_PER_PARTITION.toString(),
+   rowsPerPartitionAsString());
+}
+
+private static boolean keysFromString(String value)
+{
+if (value.equalsIgnoreCase(ALL))
+return true;
+
+if (value.equalsIgnoreCase(NONE))
+return false;
+
+throw new ConfigurationException(format("Invalid value '%s' for 
caching sub-option '%s': only '%s' and '%s' are allowed",
+value,
+Option.KEYS,
+ALL,
+NONE));
+}
+
+String keysAsString()
+

[4/6] cassandra git commit: Factor out TableParams from CFMetaData

2015-08-04 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b31845c4/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 c4377d6..d77cf1f 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -34,19 +34,13 @@ import com.google.common.base.*;
 import com.google.common.base.Throwables;
 import com.google.common.collect.*;
 import com.google.common.util.concurrent.*;
-
-import org.apache.cassandra.db.lifecycle.*;
-import org.apache.cassandra.io.FSWriteError;
-import org.apache.cassandra.metrics.TableMetrics;
-import org.json.simple.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.clearspring.analytics.stream.Counter;
 import org.apache.cassandra.cache.*;
 import org.apache.cassandra.concurrent.*;
 import org.apache.cassandra.config.*;
-import org.apache.cassandra.config.CFMetaData.SpeculativeRetry;
-import org.apache.cassandra.db.rows.*;
 import org.apache.cassandra.db.commitlog.CommitLog;
 import org.apache.cassandra.db.commitlog.ReplayPosition;
 import org.apache.cassandra.db.compaction.*;
@@ -54,24 +48,28 @@ import org.apache.cassandra.db.filter.*;
 import org.apache.cassandra.db.index.SecondaryIndex;
 import org.apache.cassandra.db.index.SecondaryIndexManager;
 import org.apache.cassandra.db.view.MaterializedViewManager;
+import org.apache.cassandra.db.lifecycle.*;
 import org.apache.cassandra.db.partitions.*;
+import org.apache.cassandra.db.rows.*;
 import org.apache.cassandra.dht.*;
 import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.exceptions.ConfigurationException;
-import org.apache.cassandra.io.compress.CompressionParameters;
-import org.apache.cassandra.io.sstable.Descriptor;
+import org.apache.cassandra.io.FSWriteError;
 import org.apache.cassandra.io.sstable.*;
+import org.apache.cassandra.io.sstable.Descriptor;
 import org.apache.cassandra.io.sstable.format.*;
 import org.apache.cassandra.io.util.FileUtils;
 import org.apache.cassandra.metrics.TableMetrics.Sampler;
+import org.apache.cassandra.metrics.TableMetrics;
+import org.apache.cassandra.schema.*;
 import org.apache.cassandra.service.CacheService;
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.*;
-import org.apache.cassandra.utils.concurrent.*;
 import org.apache.cassandra.utils.TopKSampler.SamplerResult;
+import org.apache.cassandra.utils.concurrent.*;
 import org.apache.cassandra.utils.memory.MemtableAllocator;
+import org.json.simple.*;
 
-import com.clearspring.analytics.stream.Counter;
 
 import static org.apache.cassandra.utils.Throwables.maybeFail;
 
@@ -185,10 +183,10 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 // only update these runtime-modifiable settings if they have not been 
modified.
 if (!minCompactionThreshold.isModified())
 for (ColumnFamilyStore cfs : concatWithIndexes())
-cfs.minCompactionThreshold = new 
DefaultInteger(metadata.getMinCompactionThreshold());
+cfs.minCompactionThreshold = new 
DefaultInteger(metadata.params.compaction.minCompactionThreshold());
 if (!maxCompactionThreshold.isModified())
 for (ColumnFamilyStore cfs : concatWithIndexes())
-cfs.maxCompactionThreshold = new 
DefaultInteger(metadata.getMaxCompactionThreshold());
+cfs.maxCompactionThreshold = new 
DefaultInteger(metadata.params.compaction.maxCompactionThreshold());
 
 compactionStrategyManager.maybeReload(metadata);
 
@@ -205,7 +203,7 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 
 void scheduleFlush()
 {
-int period = metadata.getMemtableFlushPeriod();
+int period = metadata.params.memtableFlushPeriodInMs;
 if (period > 0)
 {
 logger.debug("scheduling flush in {} ms", period);
@@ -252,33 +250,25 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 
 public void setCompactionStrategyClass(String compactionStrategyClass)
 {
-try
-{
-metadata.compactionStrategyClass = 
CFMetaData.createCompactionStrategy(compactionStrategyClass);
-compactionStrategyManager.maybeReload(metadata);
-}
-catch (ConfigurationException e)
-{
-throw new IllegalArgumentException(e.getMessage());
-}
+throw new 
UnsupportedOperationException("ColumnFamilyStore.setCompactionStrategyClass() 
method is no longer supported");
 }
 
 public String getCompactionStrategyClass()
 {
-return metadata.compactionStrategyClass.getName();
+return metadata.params.compaction.klass().getName();
 }
 
 public Map getCompressionParameters()
 {
-return

cassandra git commit: CASSANDRA-9712 follow-up: fix re-enabling compaction via CQL

2015-08-04 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 b31845c4a -> be0eebd20


CASSANDRA-9712 follow-up: fix re-enabling compaction via CQL


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/be0eebd2
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/be0eebd2
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/be0eebd2

Branch: refs/heads/cassandra-3.0
Commit: be0eebd20b6edf5c4de5d0e43132ead5b2bd0f4b
Parents: b31845c
Author: Aleksey Yeschenko 
Authored: Tue Aug 4 15:56:08 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 4 15:56:08 2015 +0300

--
 .../cassandra/db/compaction/CompactionStrategyManager.java   | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/be0eebd2/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
--
diff --git 
a/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java 
b/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
index d1b004d..e5aff5d 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
@@ -34,6 +34,7 @@ import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.io.sstable.format.SSTableReader;
 import org.apache.cassandra.io.sstable.ISSTableScanner;
 import org.apache.cassandra.notifications.*;
+import org.apache.cassandra.schema.CompactionParams;
 
 /**
  * Manages the compaction strategies.
@@ -49,6 +50,7 @@ public class CompactionStrategyManager implements 
INotificationConsumer
 private volatile AbstractCompactionStrategy unrepaired;
 private volatile boolean enabled = true;
 public boolean isActive = true;
+private volatile CompactionParams params;
 
 public CompactionStrategyManager(ColumnFamilyStore cfs)
 {
@@ -56,7 +58,8 @@ public class CompactionStrategyManager implements 
INotificationConsumer
 logger.debug("{} subscribed to the data tracker.", this);
 this.cfs = cfs;
 reload(cfs.metadata);
-enabled = cfs.metadata.params.compaction.isEnabled();
+params = cfs.metadata.params.compaction;
+enabled = params.isEnabled();
 }
 
 /**
@@ -167,6 +170,7 @@ public class CompactionStrategyManager implements 
INotificationConsumer
 unrepaired.shutdown();
 repaired = metadata.createCompactionStrategyInstance(cfs);
 unrepaired = metadata.createCompactionStrategyInstance(cfs);
+params = metadata.params.compaction;
 if (disabledWithJMX || !shouldBeEnabled())
 disable();
 else
@@ -426,7 +430,7 @@ public class CompactionStrategyManager implements 
INotificationConsumer
 
 public boolean shouldBeEnabled()
 {
-return cfs.metadata.params.compaction.isEnabled();
+return params.isEnabled();
 }
 
 public String getName()



[1/2] cassandra git commit: CASSANDRA-9712 follow-up: fix re-enabling compaction via CQL

2015-08-04 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk becee6ae4 -> 55a9b1b7f


CASSANDRA-9712 follow-up: fix re-enabling compaction via CQL


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/be0eebd2
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/be0eebd2
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/be0eebd2

Branch: refs/heads/trunk
Commit: be0eebd20b6edf5c4de5d0e43132ead5b2bd0f4b
Parents: b31845c
Author: Aleksey Yeschenko 
Authored: Tue Aug 4 15:56:08 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 4 15:56:08 2015 +0300

--
 .../cassandra/db/compaction/CompactionStrategyManager.java   | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/be0eebd2/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
--
diff --git 
a/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java 
b/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
index d1b004d..e5aff5d 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java
@@ -34,6 +34,7 @@ import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.io.sstable.format.SSTableReader;
 import org.apache.cassandra.io.sstable.ISSTableScanner;
 import org.apache.cassandra.notifications.*;
+import org.apache.cassandra.schema.CompactionParams;
 
 /**
  * Manages the compaction strategies.
@@ -49,6 +50,7 @@ public class CompactionStrategyManager implements 
INotificationConsumer
 private volatile AbstractCompactionStrategy unrepaired;
 private volatile boolean enabled = true;
 public boolean isActive = true;
+private volatile CompactionParams params;
 
 public CompactionStrategyManager(ColumnFamilyStore cfs)
 {
@@ -56,7 +58,8 @@ public class CompactionStrategyManager implements 
INotificationConsumer
 logger.debug("{} subscribed to the data tracker.", this);
 this.cfs = cfs;
 reload(cfs.metadata);
-enabled = cfs.metadata.params.compaction.isEnabled();
+params = cfs.metadata.params.compaction;
+enabled = params.isEnabled();
 }
 
 /**
@@ -167,6 +170,7 @@ public class CompactionStrategyManager implements 
INotificationConsumer
 unrepaired.shutdown();
 repaired = metadata.createCompactionStrategyInstance(cfs);
 unrepaired = metadata.createCompactionStrategyInstance(cfs);
+params = metadata.params.compaction;
 if (disabledWithJMX || !shouldBeEnabled())
 disable();
 else
@@ -426,7 +430,7 @@ public class CompactionStrategyManager implements 
INotificationConsumer
 
 public boolean shouldBeEnabled()
 {
-return cfs.metadata.params.compaction.isEnabled();
+return params.isEnabled();
 }
 
 public String getName()



[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

2015-08-04 Thread aleksey
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/55a9b1b7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/55a9b1b7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/55a9b1b7

Branch: refs/heads/trunk
Commit: 55a9b1b7fb17f176201b2990346f871d968598aa
Parents: becee6a be0eebd
Author: Aleksey Yeschenko 
Authored: Tue Aug 4 15:56:43 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 4 15:56:43 2015 +0300

--
 .../cassandra/db/compaction/CompactionStrategyManager.java   | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)
--




[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

2015-08-04 Thread aleksey
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/630220a2
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/630220a2
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/630220a2

Branch: refs/heads/trunk
Commit: 630220a2a303a391ad7ce4e74541d1029e1f968f
Parents: 55a9b1b 64e93a7
Author: Aleksey Yeschenko 
Authored: Tue Aug 4 16:28:13 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 4 16:28:13 2015 +0300

--
 .../apache/cassandra/db/ColumnFamilyStore.java   |  6 ++
 .../apache/cassandra/db/lifecycle/Helpers.java   | 14 ++
 .../db/lifecycle/LifecycleTransaction.java   |  2 +-
 .../apache/cassandra/db/lifecycle/Tracker.java   |  4 ++--
 .../cassandra/io/sstable/SSTableRewriter.java|  2 +-
 .../io/sstable/format/SSTableReader.java | 19 +++
 6 files changed, 19 insertions(+), 28 deletions(-)
--




[1/2] cassandra git commit: Fix remaining dtest failures caused by CASSANDRA-8143

2015-08-04 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 55a9b1b7f -> 630220a2a


Fix remaining dtest failures caused by CASSANDRA-8143

patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-8143


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/64e93a76
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/64e93a76
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/64e93a76

Branch: refs/heads/trunk
Commit: 64e93a76d8065e2cadeffbc04d28c995dcc9bc0c
Parents: be0eebd
Author: Branimir Lambov 
Authored: Tue Aug 4 16:26:18 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 4 16:26:18 2015 +0300

--
 .../apache/cassandra/db/ColumnFamilyStore.java   |  6 ++
 .../apache/cassandra/db/lifecycle/Helpers.java   | 14 ++
 .../db/lifecycle/LifecycleTransaction.java   |  2 +-
 .../apache/cassandra/db/lifecycle/Tracker.java   |  4 ++--
 .../cassandra/io/sstable/SSTableRewriter.java|  2 +-
 .../io/sstable/format/SSTableReader.java | 19 +++
 6 files changed, 19 insertions(+), 28 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e93a76/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 d77cf1f..1f3c7db 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -276,14 +276,12 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 }
 }
 
+// FIXME: this is wrong, JMX should never update live CFMetaData objects
 public void setCrcCheckChance(double crcCheckChance)
 {
 try
 {
-// TODO: this doesn't affect sstables being written
-for (SSTableReader sstable : 
keyspace.getAllSSTables(SSTableSet.CANONICAL))
-if (sstable.compression)
-
sstable.getCompressionMetadata().parameters.setCrcCheckChance(crcCheckChance);
+metadata.params.compression.setCrcCheckChance(crcCheckChance);
 }
 catch (ConfigurationException e)
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e93a76/src/java/org/apache/cassandra/db/lifecycle/Helpers.java
--
diff --git a/src/java/org/apache/cassandra/db/lifecycle/Helpers.java 
b/src/java/org/apache/cassandra/db/lifecycle/Helpers.java
index 2b94d7a..8cb92b9 100644
--- a/src/java/org/apache/cassandra/db/lifecycle/Helpers.java
+++ b/src/java/org/apache/cassandra/db/lifecycle/Helpers.java
@@ -71,10 +71,10 @@ class Helpers
  * A convenience method for encapsulating this action over multiple 
SSTableReader with exception-safety
  * @return accumulate if not null (with any thrown exception attached), or 
any thrown exception otherwise
  */
-static void setupKeyCache(Iterable readers)
+static void setupOnline(Iterable readers)
 {
 for (SSTableReader reader : readers)
-reader.setupKeyCache();
+reader.setupOnline();
 }
 
 /**
@@ -98,16 +98,6 @@ class Helpers
 }
 
 /**
- * A convenience method for encapsulating this action over multiple 
SSTableReader with exception-safety
- * @return accumulate if not null (with any thrown exception attached), or 
any thrown exception otherwise
- */
-static void setupKeycache(Iterable readers)
-{
-for (SSTableReader reader : readers)
-reader.setupKeyCache();
-}
-
-/**
  * assert that none of these readers have been replaced
  */
 static void checkNotReplaced(Iterable readers)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e93a76/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java
--
diff --git 
a/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java 
b/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java
index edfd795..5d6d9f9 100644
--- a/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java
+++ b/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java
@@ -350,7 +350,7 @@ public class LifecycleTransaction extends 
Transactional.AbstractTransactional
 staged.update.add(reader);
 identities.add(reader.instanceId);
 if (!isOffline())
-reader.setupKeyCache();
+reader.setupOnline();
 }
 
 /**

http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e93a76/src/java/org/apache/cassandra/db/lifecycle/Trac

cassandra git commit: Fix remaining dtest failures caused by CASSANDRA-8143

2015-08-04 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 be0eebd20 -> 64e93a76d


Fix remaining dtest failures caused by CASSANDRA-8143

patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-8143


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/64e93a76
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/64e93a76
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/64e93a76

Branch: refs/heads/cassandra-3.0
Commit: 64e93a76d8065e2cadeffbc04d28c995dcc9bc0c
Parents: be0eebd
Author: Branimir Lambov 
Authored: Tue Aug 4 16:26:18 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 4 16:26:18 2015 +0300

--
 .../apache/cassandra/db/ColumnFamilyStore.java   |  6 ++
 .../apache/cassandra/db/lifecycle/Helpers.java   | 14 ++
 .../db/lifecycle/LifecycleTransaction.java   |  2 +-
 .../apache/cassandra/db/lifecycle/Tracker.java   |  4 ++--
 .../cassandra/io/sstable/SSTableRewriter.java|  2 +-
 .../io/sstable/format/SSTableReader.java | 19 +++
 6 files changed, 19 insertions(+), 28 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e93a76/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 d77cf1f..1f3c7db 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -276,14 +276,12 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 }
 }
 
+// FIXME: this is wrong, JMX should never update live CFMetaData objects
 public void setCrcCheckChance(double crcCheckChance)
 {
 try
 {
-// TODO: this doesn't affect sstables being written
-for (SSTableReader sstable : 
keyspace.getAllSSTables(SSTableSet.CANONICAL))
-if (sstable.compression)
-
sstable.getCompressionMetadata().parameters.setCrcCheckChance(crcCheckChance);
+metadata.params.compression.setCrcCheckChance(crcCheckChance);
 }
 catch (ConfigurationException e)
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e93a76/src/java/org/apache/cassandra/db/lifecycle/Helpers.java
--
diff --git a/src/java/org/apache/cassandra/db/lifecycle/Helpers.java 
b/src/java/org/apache/cassandra/db/lifecycle/Helpers.java
index 2b94d7a..8cb92b9 100644
--- a/src/java/org/apache/cassandra/db/lifecycle/Helpers.java
+++ b/src/java/org/apache/cassandra/db/lifecycle/Helpers.java
@@ -71,10 +71,10 @@ class Helpers
  * A convenience method for encapsulating this action over multiple 
SSTableReader with exception-safety
  * @return accumulate if not null (with any thrown exception attached), or 
any thrown exception otherwise
  */
-static void setupKeyCache(Iterable readers)
+static void setupOnline(Iterable readers)
 {
 for (SSTableReader reader : readers)
-reader.setupKeyCache();
+reader.setupOnline();
 }
 
 /**
@@ -98,16 +98,6 @@ class Helpers
 }
 
 /**
- * A convenience method for encapsulating this action over multiple 
SSTableReader with exception-safety
- * @return accumulate if not null (with any thrown exception attached), or 
any thrown exception otherwise
- */
-static void setupKeycache(Iterable readers)
-{
-for (SSTableReader reader : readers)
-reader.setupKeyCache();
-}
-
-/**
  * assert that none of these readers have been replaced
  */
 static void checkNotReplaced(Iterable readers)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e93a76/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java
--
diff --git 
a/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java 
b/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java
index edfd795..5d6d9f9 100644
--- a/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java
+++ b/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java
@@ -350,7 +350,7 @@ public class LifecycleTransaction extends 
Transactional.AbstractTransactional
 staged.update.add(reader);
 identities.add(reader.instanceId);
 if (!isOffline())
-reader.setupKeyCache();
+reader.setupOnline();
 }
 
 /**

http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e93a76/src/java/org/apache/cassandra/db/lifecycle/Trac

[1/2] cassandra git commit: Fix cqlsh DESCRIBE column order

2015-08-04 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 630220a2a -> 3ab86d043


Fix cqlsh DESCRIBE column order

patch by Adam Holmberg; reviewed by Aleksey Yeschenko for CASSANDRA-9968


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e58b7df9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e58b7df9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e58b7df9

Branch: refs/heads/trunk
Commit: e58b7df935cfd1f12560fb174eebda2ff529f9e8
Parents: 64e93a7
Author: Adam Holmberg 
Authored: Tue Aug 4 16:39:51 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 4 16:39:51 2015 +0300

--
 lib/cassandra-driver-internal-only-2.6.0c2.zip| Bin 194427 -> 0 bytes
 ...river-internal-only-2.6.0rc2.post0-1a480f1.zip | Bin 0 -> 200621 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e58b7df9/lib/cassandra-driver-internal-only-2.6.0c2.zip
--
diff --git a/lib/cassandra-driver-internal-only-2.6.0c2.zip 
b/lib/cassandra-driver-internal-only-2.6.0c2.zip
deleted file mode 100644
index ce91907..000
Binary files a/lib/cassandra-driver-internal-only-2.6.0c2.zip and /dev/null 
differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e58b7df9/lib/cassandra-driver-internal-only-2.6.0rc2.post0-1a480f1.zip
--
diff --git a/lib/cassandra-driver-internal-only-2.6.0rc2.post0-1a480f1.zip 
b/lib/cassandra-driver-internal-only-2.6.0rc2.post0-1a480f1.zip
new file mode 100644
index 000..a611501
Binary files /dev/null and 
b/lib/cassandra-driver-internal-only-2.6.0rc2.post0-1a480f1.zip differ



[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

2015-08-04 Thread aleksey
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/3ab86d04
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3ab86d04
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3ab86d04

Branch: refs/heads/trunk
Commit: 3ab86d0431e24faee96acabddbae63d03d4de274
Parents: 630220a e58b7df
Author: Aleksey Yeschenko 
Authored: Tue Aug 4 16:41:20 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 4 16:41:20 2015 +0300

--
 lib/cassandra-driver-internal-only-2.6.0c2.zip| Bin 194427 -> 0 bytes
 ...river-internal-only-2.6.0rc2.post0-1a480f1.zip | Bin 0 -> 200621 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
--




cassandra git commit: Fix cqlsh DESCRIBE column order

2015-08-04 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 64e93a76d -> e58b7df93


Fix cqlsh DESCRIBE column order

patch by Adam Holmberg; reviewed by Aleksey Yeschenko for CASSANDRA-9968


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e58b7df9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e58b7df9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e58b7df9

Branch: refs/heads/cassandra-3.0
Commit: e58b7df935cfd1f12560fb174eebda2ff529f9e8
Parents: 64e93a7
Author: Adam Holmberg 
Authored: Tue Aug 4 16:39:51 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 4 16:39:51 2015 +0300

--
 lib/cassandra-driver-internal-only-2.6.0c2.zip| Bin 194427 -> 0 bytes
 ...river-internal-only-2.6.0rc2.post0-1a480f1.zip | Bin 0 -> 200621 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e58b7df9/lib/cassandra-driver-internal-only-2.6.0c2.zip
--
diff --git a/lib/cassandra-driver-internal-only-2.6.0c2.zip 
b/lib/cassandra-driver-internal-only-2.6.0c2.zip
deleted file mode 100644
index ce91907..000
Binary files a/lib/cassandra-driver-internal-only-2.6.0c2.zip and /dev/null 
differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e58b7df9/lib/cassandra-driver-internal-only-2.6.0rc2.post0-1a480f1.zip
--
diff --git a/lib/cassandra-driver-internal-only-2.6.0rc2.post0-1a480f1.zip 
b/lib/cassandra-driver-internal-only-2.6.0rc2.post0-1a480f1.zip
new file mode 100644
index 000..a611501
Binary files /dev/null and 
b/lib/cassandra-driver-internal-only-2.6.0rc2.post0-1a480f1.zip differ



cassandra git commit: Optimize batchlog replay to avoid full scans

2015-08-06 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 ef5962442 -> 762db4742


Optimize batchlog replay to avoid full scans

patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-7237


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/762db474
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/762db474
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/762db474

Branch: refs/heads/cassandra-3.0
Commit: 762db474273f764b189d3613fce33943cd64701b
Parents: ef59624
Author: Branimir Lambov 
Authored: Sat Aug 1 11:55:47 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 17:12:28 2015 +0300

--
 CHANGES.txt |   2 +
 NEWS.txt|   2 +
 .../apache/cassandra/db/BatchlogManager.java| 226 +
 .../apache/cassandra/db/ColumnFamilyStore.java  |  13 +
 src/java/org/apache/cassandra/db/Memtable.java  |   2 +-
 .../org/apache/cassandra/db/SystemKeyspace.java |  28 ++-
 .../apache/cassandra/dht/LocalPartitioner.java  |  30 ++-
 .../apache/cassandra/service/StorageProxy.java  |   2 +-
 .../cassandra/db/BatchlogManagerTest.java   | 246 +++
 9 files changed, 395 insertions(+), 156 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/762db474/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 80e0e50..95fade9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.0-beta1
+ * Optimize batchlog replay to avoid full scans (CASSANDRA-7237)
  * Repair improvements when using vnodes (CASSANDRA-5220)
  * Disable scripted UDFs by default (CASSANDRA-9889)
  * Add transparent data encryption core classes (CASSANDRA-9945)
@@ -11,6 +12,7 @@ Merged from 2.1:
 Merged from 2.0:
  * Don't cast expected bf size to an int (CASSANDRA-9959)
 
+
 3.0.0-alpha1
  * Implement proper sandboxing for UDFs (CASSANDRA-9402)
  * Simplify (and unify) cleanup of compaction leftovers (CASSANDRA-7066)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/762db474/NEWS.txt
--
diff --git a/NEWS.txt b/NEWS.txt
index 1fcbb12..ef61f6c 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -58,6 +58,8 @@ Upgrading
  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.
 
 
 2.2

http://git-wip-us.apache.org/repos/asf/cassandra/blob/762db474/src/java/org/apache/cassandra/db/BatchlogManager.java
--
diff --git a/src/java/org/apache/cassandra/db/BatchlogManager.java 
b/src/java/org/apache/cassandra/db/BatchlogManager.java
index 9e90d9d..8ea4318 100644
--- a/src/java/org/apache/cassandra/db/BatchlogManager.java
+++ b/src/java/org/apache/cassandra/db/BatchlogManager.java
@@ -23,30 +23,24 @@ import java.net.InetAddress;
 import java.nio.ByteBuffer;
 import java.util.*;
 import java.util.concurrent.*;
-import java.util.concurrent.atomic.AtomicLong;
 
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
-
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.*;
 import com.google.common.util.concurrent.RateLimiter;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor;
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.cql3.UntypedResultSet;
 import org.apache.cassandra.db.partitions.PartitionUpdate;
-import org.apache.cassandra.db.compaction.CompactionManager;
-import org.apache.cassandra.db.lifecycle.SSTableSet;
 import org.apache.cassandra.db.marshal.UUIDType;
 import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.exceptions.WriteFailureException;
 import org.apache.cassandra.exceptions.WriteTimeoutException;
 import org.apache.cassandra.gms.FailureDetector;
-import org.apache.cassandra.io.sstable.Descriptor;
-import org.apache.cassandra.io.sstable.format.SSTableReader;
 import org.apache.cassandra.io.util.DataInputBuffer;
 import org.apache.cassandra.io.util.DataInputPlus;
 import org.apache.cassandra.io.util.DataOutputBuffer;
@@ -57,20 +51,22 @@ import org.apache.cassandra.service.StorageProxy;
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.service.WriteResponseHandler;
 import org.apache.cassandra.utils.FBUtilities;
-import org.apache.cassandra.utils.Wrapped

[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

2015-08-06 Thread aleksey
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/c35bfc09
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c35bfc09
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c35bfc09

Branch: refs/heads/trunk
Commit: c35bfc09cca4add42afed0733a29d6f6843dbba0
Parents: bf8ac1a 762db47
Author: Aleksey Yeschenko 
Authored: Thu Aug 6 17:32:39 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 17:32:39 2015 +0300

--
 CHANGES.txt |   2 +
 NEWS.txt|   2 +
 .../apache/cassandra/db/BatchlogManager.java| 226 +
 .../apache/cassandra/db/ColumnFamilyStore.java  |  13 +
 src/java/org/apache/cassandra/db/Memtable.java  |   2 +-
 .../org/apache/cassandra/db/SystemKeyspace.java |  28 ++-
 .../apache/cassandra/dht/LocalPartitioner.java  |  30 ++-
 .../apache/cassandra/service/StorageProxy.java  |   2 +-
 .../cassandra/db/BatchlogManagerTest.java   | 246 +++
 9 files changed, 395 insertions(+), 156 deletions(-)
--




[1/2] cassandra git commit: Optimize batchlog replay to avoid full scans

2015-08-06 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk bf8ac1acd -> c35bfc09c


Optimize batchlog replay to avoid full scans

patch by Branimir Lambov; reviewed by Aleksey Yeschenko for
CASSANDRA-7237


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/762db474
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/762db474
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/762db474

Branch: refs/heads/trunk
Commit: 762db474273f764b189d3613fce33943cd64701b
Parents: ef59624
Author: Branimir Lambov 
Authored: Sat Aug 1 11:55:47 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 17:12:28 2015 +0300

--
 CHANGES.txt |   2 +
 NEWS.txt|   2 +
 .../apache/cassandra/db/BatchlogManager.java| 226 +
 .../apache/cassandra/db/ColumnFamilyStore.java  |  13 +
 src/java/org/apache/cassandra/db/Memtable.java  |   2 +-
 .../org/apache/cassandra/db/SystemKeyspace.java |  28 ++-
 .../apache/cassandra/dht/LocalPartitioner.java  |  30 ++-
 .../apache/cassandra/service/StorageProxy.java  |   2 +-
 .../cassandra/db/BatchlogManagerTest.java   | 246 +++
 9 files changed, 395 insertions(+), 156 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/762db474/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 80e0e50..95fade9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.0-beta1
+ * Optimize batchlog replay to avoid full scans (CASSANDRA-7237)
  * Repair improvements when using vnodes (CASSANDRA-5220)
  * Disable scripted UDFs by default (CASSANDRA-9889)
  * Add transparent data encryption core classes (CASSANDRA-9945)
@@ -11,6 +12,7 @@ Merged from 2.1:
 Merged from 2.0:
  * Don't cast expected bf size to an int (CASSANDRA-9959)
 
+
 3.0.0-alpha1
  * Implement proper sandboxing for UDFs (CASSANDRA-9402)
  * Simplify (and unify) cleanup of compaction leftovers (CASSANDRA-7066)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/762db474/NEWS.txt
--
diff --git a/NEWS.txt b/NEWS.txt
index 1fcbb12..ef61f6c 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -58,6 +58,8 @@ Upgrading
  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.
 
 
 2.2

http://git-wip-us.apache.org/repos/asf/cassandra/blob/762db474/src/java/org/apache/cassandra/db/BatchlogManager.java
--
diff --git a/src/java/org/apache/cassandra/db/BatchlogManager.java 
b/src/java/org/apache/cassandra/db/BatchlogManager.java
index 9e90d9d..8ea4318 100644
--- a/src/java/org/apache/cassandra/db/BatchlogManager.java
+++ b/src/java/org/apache/cassandra/db/BatchlogManager.java
@@ -23,30 +23,24 @@ import java.net.InetAddress;
 import java.nio.ByteBuffer;
 import java.util.*;
 import java.util.concurrent.*;
-import java.util.concurrent.atomic.AtomicLong;
 
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
-
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.*;
 import com.google.common.util.concurrent.RateLimiter;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor;
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.cql3.UntypedResultSet;
 import org.apache.cassandra.db.partitions.PartitionUpdate;
-import org.apache.cassandra.db.compaction.CompactionManager;
-import org.apache.cassandra.db.lifecycle.SSTableSet;
 import org.apache.cassandra.db.marshal.UUIDType;
 import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.exceptions.WriteFailureException;
 import org.apache.cassandra.exceptions.WriteTimeoutException;
 import org.apache.cassandra.gms.FailureDetector;
-import org.apache.cassandra.io.sstable.Descriptor;
-import org.apache.cassandra.io.sstable.format.SSTableReader;
 import org.apache.cassandra.io.util.DataInputBuffer;
 import org.apache.cassandra.io.util.DataInputPlus;
 import org.apache.cassandra.io.util.DataOutputBuffer;
@@ -57,20 +51,22 @@ import org.apache.cassandra.service.StorageProxy;
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.service.WriteResponseHandler;
 import org.apache.cassandra.utils.FBUtilities;
-import org.apache.cassandra.utils.WrappedRunnable;

[1/2] cassandra git commit: Fix Verb.BATCHLOG_MUTATION usages in StorageProxy

2015-08-06 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk c35bfc09c -> 414685381


Fix Verb.BATCHLOG_MUTATION usages in StorageProxy

patch by Carl Yeksigian; reviewed by Aleksey Yeschenko for
CASSANDRA-9992


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/16498de4
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/16498de4
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/16498de4

Branch: refs/heads/trunk
Commit: 16498de42d1e173f39d7edeba5ab7d567e609cc6
Parents: 762db47
Author: Carl Yeksigian 
Authored: Wed Aug 5 11:42:01 2015 -0400
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 17:42:45 2015 +0300

--
 .../apache/cassandra/service/StorageProxy.java  | 24 +++-
 1 file changed, 18 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/16498de4/src/java/org/apache/cassandra/service/StorageProxy.java
--
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java 
b/src/java/org/apache/cassandra/service/StorageProxy.java
index b637b17..2c3c018 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -837,18 +837,18 @@ public class StorageProxy implements StorageProxyMBean
 {
 insertLocal(Stage.BATCHLOG_MUTATION, message.payload, handler);
 }
-else if (targetVersion == MessagingService.current_version)
-{
-MessagingService.instance().sendRR(message, target, handler, 
false);
-}
-else
+else if (targetVersion < MessagingService.VERSION_30)
 {
 
MessagingService.instance().sendRR(BatchlogManager.getBatchlogMutationFor(mutations,
 uuid, targetVersion)
-  
.createMessage(MessagingService.Verb.BATCHLOG_MUTATION),
+  
.createMessage(MessagingService.Verb.MUTATION),
target,
handler,
false);
 }
+else
+{
+MessagingService.instance().sendRR(message, target, handler, 
false);
+}
 }
 
 handler.get();
@@ -870,10 +870,22 @@ public class StorageProxy implements StorageProxyMBean
 MessageOut message = 
mutation.createMessage(MessagingService.Verb.BATCHLOG_MUTATION);
 for (InetAddress target : endpoints)
 {
+int targetVersion = MessagingService.instance().getVersion(target);
 if (canDoLocalRequest(target))
+{
 insertLocal(Stage.BATCHLOG_MUTATION, message.payload, handler);
+}
+else if (targetVersion < MessagingService.VERSION_30)
+{
+
MessagingService.instance().sendRR(mutation.createMessage(MessagingService.Verb.MUTATION),
+   target,
+   handler,
+   false);
+}
 else
+{
 MessagingService.instance().sendRR(message, target, handler, 
false);
+}
 }
 }
 



[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

2015-08-06 Thread aleksey
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/41468538
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/41468538
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/41468538

Branch: refs/heads/trunk
Commit: 41468538172c652ab40cc9f9f9e5612c3baa4cbd
Parents: c35bfc0 16498de
Author: Aleksey Yeschenko 
Authored: Thu Aug 6 17:44:53 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 17:44:53 2015 +0300

--
 .../apache/cassandra/service/StorageProxy.java  | 24 +++-
 1 file changed, 18 insertions(+), 6 deletions(-)
--




cassandra git commit: Fix Verb.BATCHLOG_MUTATION usages in StorageProxy

2015-08-06 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 762db4742 -> 16498de42


Fix Verb.BATCHLOG_MUTATION usages in StorageProxy

patch by Carl Yeksigian; reviewed by Aleksey Yeschenko for
CASSANDRA-9992


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/16498de4
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/16498de4
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/16498de4

Branch: refs/heads/cassandra-3.0
Commit: 16498de42d1e173f39d7edeba5ab7d567e609cc6
Parents: 762db47
Author: Carl Yeksigian 
Authored: Wed Aug 5 11:42:01 2015 -0400
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 17:42:45 2015 +0300

--
 .../apache/cassandra/service/StorageProxy.java  | 24 +++-
 1 file changed, 18 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/16498de4/src/java/org/apache/cassandra/service/StorageProxy.java
--
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java 
b/src/java/org/apache/cassandra/service/StorageProxy.java
index b637b17..2c3c018 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -837,18 +837,18 @@ public class StorageProxy implements StorageProxyMBean
 {
 insertLocal(Stage.BATCHLOG_MUTATION, message.payload, handler);
 }
-else if (targetVersion == MessagingService.current_version)
-{
-MessagingService.instance().sendRR(message, target, handler, 
false);
-}
-else
+else if (targetVersion < MessagingService.VERSION_30)
 {
 
MessagingService.instance().sendRR(BatchlogManager.getBatchlogMutationFor(mutations,
 uuid, targetVersion)
-  
.createMessage(MessagingService.Verb.BATCHLOG_MUTATION),
+  
.createMessage(MessagingService.Verb.MUTATION),
target,
handler,
false);
 }
+else
+{
+MessagingService.instance().sendRR(message, target, handler, 
false);
+}
 }
 
 handler.get();
@@ -870,10 +870,22 @@ public class StorageProxy implements StorageProxyMBean
 MessageOut message = 
mutation.createMessage(MessagingService.Verb.BATCHLOG_MUTATION);
 for (InetAddress target : endpoints)
 {
+int targetVersion = MessagingService.instance().getVersion(target);
 if (canDoLocalRequest(target))
+{
 insertLocal(Stage.BATCHLOG_MUTATION, message.payload, handler);
+}
+else if (targetVersion < MessagingService.VERSION_30)
+{
+
MessagingService.instance().sendRR(mutation.createMessage(MessagingService.Verb.MUTATION),
+   target,
+   handler,
+   false);
+}
 else
+{
 MessagingService.instance().sendRR(message, target, handler, 
false);
+}
 }
 }
 



[1/2] cassandra git commit: Fixup unsued Verb.MATERIALIZEDVIEW_MUTATION

2015-08-06 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 414685381 -> 989c3aa82


Fixup unsued Verb.MATERIALIZEDVIEW_MUTATION

patch by Aleksey Yeschenko for CASSANDRA-9993


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/39ee0408
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/39ee0408
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/39ee0408

Branch: refs/heads/trunk
Commit: 39ee04088cfd2926ed27490267b9f562472f5647
Parents: 16498de
Author: Aleksey Yeschenko 
Authored: Thu Aug 6 18:11:23 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 18:11:23 2015 +0300

--
 src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 1 -
 src/java/org/apache/cassandra/net/MessagingService.java  | 8 ++--
 src/java/org/apache/cassandra/service/StorageService.java| 1 -
 3 files changed, 2 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/39ee0408/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 02f3c17..6d6745a 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -992,7 +992,6 @@ public class DatabaseDescriptor
 case PAXOS_PREPARE:
 case PAXOS_PROPOSE:
 case BATCHLOG_MUTATION:
-case MATERIALIZED_VIEW_MUTATION:
 return getWriteRpcTimeout();
 case COUNTER_MUTATION:
 return getCounterWriteRpcTimeout();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/39ee0408/src/java/org/apache/cassandra/net/MessagingService.java
--
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java 
b/src/java/org/apache/cassandra/net/MessagingService.java
index e10b4cb..da475f7 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -135,11 +135,12 @@ public final class MessagingService implements 
MessagingServiceMBean
 PAXOS_COMMIT,
 @Deprecated PAGED_RANGE,
 BATCHLOG_MUTATION,
-MATERIALIZED_VIEW_MUTATION,
 // remember to add new verbs at the end, since we serialize by ordinal
 UNUSED_1,
 UNUSED_2,
 UNUSED_3,
+UNUSED_4,
+UNUSED_5,
 ;
 }
 
@@ -147,7 +148,6 @@ public final class MessagingService implements 
MessagingServiceMBean
 {{
 put(Verb.MUTATION, Stage.MUTATION);
 put(Verb.COUNTER_MUTATION, Stage.COUNTER_MUTATION);
-put(Verb.MATERIALIZED_VIEW_MUTATION, Stage.MATERIALIZED_VIEW_MUTATION);
 put(Verb.BATCHLOG_MUTATION, Stage.BATCHLOG_MUTATION);
 put(Verb.READ_REPAIR, Stage.MUTATION);
 put(Verb.TRUNCATE, Stage.MUTATION);
@@ -208,7 +208,6 @@ public final class MessagingService implements 
MessagingServiceMBean
 
 put(Verb.MUTATION, Mutation.serializer);
 put(Verb.BATCHLOG_MUTATION, Mutation.serializer);
-put(Verb.MATERIALIZED_VIEW_MUTATION, Mutation.serializer);
 put(Verb.READ_REPAIR, Mutation.serializer);
 put(Verb.READ, ReadCommand.serializer);
 //put(Verb.RANGE_SLICE, ReadCommand.legacyRangeSliceCommandSerializer);
@@ -236,7 +235,6 @@ public final class MessagingService implements 
MessagingServiceMBean
 {{
 put(Verb.MUTATION, WriteResponse.serializer);
 put(Verb.BATCHLOG_MUTATION, WriteResponse.serializer);
-put(Verb.MATERIALIZED_VIEW_MUTATION, WriteResponse.serializer);
 put(Verb.READ_REPAIR, WriteResponse.serializer);
 put(Verb.COUNTER_MUTATION, WriteResponse.serializer);
 put(Verb.RANGE_SLICE, ReadResponse.legacyRangeSliceReplySerializer);
@@ -300,7 +298,6 @@ public final class MessagingService implements 
MessagingServiceMBean
 public static final EnumSet DROPPABLE_VERBS = EnumSet.of(Verb._TRACE,

Verb.MUTATION,

Verb.BATCHLOG_MUTATION, //FIXME: should this be droppable??
-   
Verb.MATERIALIZED_VIEW_MUTATION,

Verb.COUNTER_MUTATION,

Verb.READ_REPAIR,
Verb.READ,
@@ -630,7 +627,6 @@ public final class MessagingService impleme

cassandra git commit: Fixup unsued Verb.MATERIALIZEDVIEW_MUTATION

2015-08-06 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 16498de42 -> 39ee04088


Fixup unsued Verb.MATERIALIZEDVIEW_MUTATION

patch by Aleksey Yeschenko for CASSANDRA-9993


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/39ee0408
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/39ee0408
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/39ee0408

Branch: refs/heads/cassandra-3.0
Commit: 39ee04088cfd2926ed27490267b9f562472f5647
Parents: 16498de
Author: Aleksey Yeschenko 
Authored: Thu Aug 6 18:11:23 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 18:11:23 2015 +0300

--
 src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 1 -
 src/java/org/apache/cassandra/net/MessagingService.java  | 8 ++--
 src/java/org/apache/cassandra/service/StorageService.java| 1 -
 3 files changed, 2 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/39ee0408/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 02f3c17..6d6745a 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -992,7 +992,6 @@ public class DatabaseDescriptor
 case PAXOS_PREPARE:
 case PAXOS_PROPOSE:
 case BATCHLOG_MUTATION:
-case MATERIALIZED_VIEW_MUTATION:
 return getWriteRpcTimeout();
 case COUNTER_MUTATION:
 return getCounterWriteRpcTimeout();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/39ee0408/src/java/org/apache/cassandra/net/MessagingService.java
--
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java 
b/src/java/org/apache/cassandra/net/MessagingService.java
index e10b4cb..da475f7 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -135,11 +135,12 @@ public final class MessagingService implements 
MessagingServiceMBean
 PAXOS_COMMIT,
 @Deprecated PAGED_RANGE,
 BATCHLOG_MUTATION,
-MATERIALIZED_VIEW_MUTATION,
 // remember to add new verbs at the end, since we serialize by ordinal
 UNUSED_1,
 UNUSED_2,
 UNUSED_3,
+UNUSED_4,
+UNUSED_5,
 ;
 }
 
@@ -147,7 +148,6 @@ public final class MessagingService implements 
MessagingServiceMBean
 {{
 put(Verb.MUTATION, Stage.MUTATION);
 put(Verb.COUNTER_MUTATION, Stage.COUNTER_MUTATION);
-put(Verb.MATERIALIZED_VIEW_MUTATION, Stage.MATERIALIZED_VIEW_MUTATION);
 put(Verb.BATCHLOG_MUTATION, Stage.BATCHLOG_MUTATION);
 put(Verb.READ_REPAIR, Stage.MUTATION);
 put(Verb.TRUNCATE, Stage.MUTATION);
@@ -208,7 +208,6 @@ public final class MessagingService implements 
MessagingServiceMBean
 
 put(Verb.MUTATION, Mutation.serializer);
 put(Verb.BATCHLOG_MUTATION, Mutation.serializer);
-put(Verb.MATERIALIZED_VIEW_MUTATION, Mutation.serializer);
 put(Verb.READ_REPAIR, Mutation.serializer);
 put(Verb.READ, ReadCommand.serializer);
 //put(Verb.RANGE_SLICE, ReadCommand.legacyRangeSliceCommandSerializer);
@@ -236,7 +235,6 @@ public final class MessagingService implements 
MessagingServiceMBean
 {{
 put(Verb.MUTATION, WriteResponse.serializer);
 put(Verb.BATCHLOG_MUTATION, WriteResponse.serializer);
-put(Verb.MATERIALIZED_VIEW_MUTATION, WriteResponse.serializer);
 put(Verb.READ_REPAIR, WriteResponse.serializer);
 put(Verb.COUNTER_MUTATION, WriteResponse.serializer);
 put(Verb.RANGE_SLICE, ReadResponse.legacyRangeSliceReplySerializer);
@@ -300,7 +298,6 @@ public final class MessagingService implements 
MessagingServiceMBean
 public static final EnumSet DROPPABLE_VERBS = EnumSet.of(Verb._TRACE,

Verb.MUTATION,

Verb.BATCHLOG_MUTATION, //FIXME: should this be droppable??
-   
Verb.MATERIALIZED_VIEW_MUTATION,

Verb.COUNTER_MUTATION,

Verb.READ_REPAIR,
Verb.READ,
@@ -630,7 +627,6 @@ public final class MessagingServ

[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

2015-08-06 Thread aleksey
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/989c3aa8
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/989c3aa8
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/989c3aa8

Branch: refs/heads/trunk
Commit: 989c3aa8204a4cf4e142ba029c9b23e18dc6fd24
Parents: 4146853 39ee040
Author: Aleksey Yeschenko 
Authored: Thu Aug 6 18:12:29 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 18:12:29 2015 +0300

--
 src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 1 -
 src/java/org/apache/cassandra/net/MessagingService.java  | 8 ++--
 src/java/org/apache/cassandra/service/StorageService.java| 1 -
 3 files changed, 2 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/989c3aa8/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
--



cassandra git commit: Add checksum to saved cache files

2015-08-06 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 7636a6b86 -> fa6205c90


Add checksum to saved cache files

patch by Daniel Chia; reviewed by Ariel Weisberg for CASSANDRA-9265


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fa6205c9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fa6205c9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fa6205c9

Branch: refs/heads/cassandra-2.2
Commit: fa6205c909656b09165da4b5ca469328a6450917
Parents: 7636a6b
Author: Daniel Chia 
Authored: Wed Aug 5 18:46:30 2015 -0400
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 21:48:14 2015 +0300

--
 CHANGES.txt |   1 +
 .../apache/cassandra/cache/AutoSavingCache.java |  96 --
 .../cassandra/config/DatabaseDescriptor.java|  13 +-
 .../io/util/ChecksummedRandomAccessReader.java  | 103 +++
 .../io/util/DataIntegrityMetadata.java  |  16 ++-
 .../io/ChecksummedRandomAccessReaderTest.java   | 127 +++
 6 files changed, 311 insertions(+), 45 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fa6205c9/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 72ad3cd..ff0fdda 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.1
+ * Add checksum to saved cache files (CASSANDRA-9265)
  * Log warning when using an aggregate without partition key (CASSANDRA-9737)
  * Avoid grouping sstables for anticompaction with DTCS (CASSANDRA-9900)
  * UDF / UDA execution time in trace (CASSANDRA-9723)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fa6205c9/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--
diff --git a/src/java/org/apache/cassandra/cache/AutoSavingCache.java 
b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
index a204a18..05653ba 100644
--- a/src/java/org/apache/cassandra/cache/AutoSavingCache.java
+++ b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
@@ -39,6 +39,7 @@ import org.apache.cassandra.db.compaction.OperationType;
 import org.apache.cassandra.db.marshal.BytesType;
 import org.apache.cassandra.io.FSWriteError;
 import org.apache.cassandra.io.util.*;
+import 
org.apache.cassandra.io.util.ChecksummedRandomAccessReader.CorruptFileException;
 import org.apache.cassandra.service.CacheService;
 import org.apache.cassandra.utils.JVMStabilityInspector;
 import org.apache.cassandra.utils.Pair;
@@ -48,8 +49,8 @@ public class AutoSavingCache extends 
InstrumentingCache extends 
InstrumentingCache cacheLoader;
-private static final String CURRENT_VERSION = "b";
+private static final String CURRENT_VERSION = "c";
 
 private static volatile IStreamFactory streamFactory = new IStreamFactory()
 {
-public InputStream getInputStream(File path) throws 
FileNotFoundException
+public InputStream getInputStream(File dataPath, File crcPath) throws 
IOException
 {
-return new FileInputStream(path);
+return ChecksummedRandomAccessReader.open(dataPath, crcPath);
 }
 
-public OutputStream getOutputStream(File path) throws 
FileNotFoundException
+public SequentialWriter getOutputWriter(File dataPath, File crcPath)
 {
-return new FileOutputStream(path);
+return SequentialWriter.open(dataPath, crcPath);
 }
 };
 
@@ -89,10 +90,16 @@ public class AutoSavingCache extends 
InstrumentingCache names = Schema.instance.getCF(cfId);
-return DatabaseDescriptor.getSerializedCachePath(names.left, 
names.right, cfId, cacheType, version);
+return DatabaseDescriptor.getSerializedCachePath(names.left, 
names.right, cfId, cacheType, version, "db");
+}
+
+public File getCacheCrcPath(UUID cfId, String version)
+{
+Pair names = Schema.instance.getCF(cfId);
+return DatabaseDescriptor.getSerializedCachePath(names.left, 
names.right, cfId, cacheType, version, "crc");
 }
 
 public Writer getWriter(int keysToSave)
@@ -129,14 +136,15 @@ public class AutoSavingCache 
extends InstrumentingCache>> futures = new 
ArrayList>>();
 while (in.available() > 0)
 {
@@ -155,10 +163,15 @@ public class AutoSavingCache 
extends InstrumentingCache extends 
InstrumentingCache extends 
InstrumentingCache writers = new HashMap<>();
-HashMap streams = new HashMap<>();
-HashMap paths = new HashMap<>();
+HashMap dataOutputs = new HashMap<>();
+HashMap sequentialWriters = new 
HashMap<>();
+HashMap&

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

2015-08-06 Thread aleksey
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/a472aa9e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a472aa9e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a472aa9e

Branch: refs/heads/cassandra-3.0
Commit: a472aa9eaaff3f67035c53dd92b4aee24f2bed36
Parents: 39ee040 fa6205c
Author: Aleksey Yeschenko 
Authored: Thu Aug 6 21:54:20 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 21:54:20 2015 +0300

--
 CHANGES.txt |   1 +
 .../apache/cassandra/cache/AutoSavingCache.java |  96 --
 .../cassandra/config/DatabaseDescriptor.java|  13 +-
 .../io/util/ChecksummedRandomAccessReader.java  | 110 
 .../io/util/DataIntegrityMetadata.java  |  17 ++-
 .../io/ChecksummedRandomAccessReaderTest.java   | 127 +++
 6 files changed, 319 insertions(+), 45 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a472aa9e/CHANGES.txt
--
diff --cc CHANGES.txt
index 95fade9,ff0fdda..a894297
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,43 -1,6 +1,44 @@@
 -2.2.1
 +3.0.0-beta1
 + * Optimize batchlog replay to avoid full scans (CASSANDRA-7237)
 + * Repair improvements when using vnodes (CASSANDRA-5220)
 + * Disable scripted UDFs by default (CASSANDRA-9889)
 + * Add transparent data encryption core classes (CASSANDRA-9945)
 + * Bytecode inspection for Java-UDFs (CASSANDRA-9890)
 + * Use byte to serialize MT hash length (CASSANDRA-9792)
 +Merged from 2.2:
+  * Add checksum to saved cache files (CASSANDRA-9265)
   * Log warning when using an aggregate without partition key (CASSANDRA-9737)
 +Merged from 2.1:
 + * Cannot replace token does not exist - DN node removed as Fat Client 
(CASSANDRA-9871)
 +Merged from 2.0:
 + * Don't cast expected bf size to an int (CASSANDRA-9959)
 +
 +
 +3.0.0-alpha1
 + * Implement proper sandboxing for UDFs (CASSANDRA-9402)
 + * Simplify (and unify) cleanup of compaction leftovers (CASSANDRA-7066)
 + * Allow extra schema definitions in cassandra-stress yaml (CASSANDRA-9850)
 + * Metrics should use up to date nomenclature (CASSANDRA-9448)
 + * 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, 9781, 9808, 
9825,
 +   9848, 9705, 9859, 9867, 9874, 9828, 9801)
 + * 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, 9865)
 + * Materialized Views (CASSANDRA-6477)
 +Merged from 2.2:
   * Avoid grouping sstables for anticompaction with DTCS (CASSANDRA-9900)
   * UDF / UDA execution time in trace (CASSANDRA-9723)
   * Fix broken internode SSL (CASSANDRA-9884)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a472aa9e/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--
diff --cc src/java/org/apache/cassandra/cache/AutoSavingCache.java
index 0b334f5,05653ba..3c5b6a5
--- a/src/java/org/apache/cassandra/cache/AutoSavingCache.java
+++ b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
@@@ -38,7 -39,7 +38,8 @@@ import org.apache.cassandra.db.compacti
  import org.apache.cassandra.db.marshal.BytesType;
  import org.apache.cassandra.io.FSWriteError;
  import org.apache.cassandra.io.util.*;
+ import 
org.apache.cassandra.io.util.ChecksummedRandomAccessReader.CorruptFileException;
 +import org.apache.cassandra.io.util.DataInputPlus.DataInputStreamPlus;
  import org.apache.cassandra.service.CacheService;
  import org.apache.cassandra.utils.JVMStabilityInspector;
  import org.apache.cassandra.utils.Pair;
@@@ -129,14 -136,15 +136,15 @@@ public class AutoSavingCache>> futures = new 
ArrayList>>();
  while (in.available() > 0)
 

[1/2] cassandra git commit: Add checksum to saved cache files

2015-08-06 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 39ee04088 -> a472aa9ea


Add checksum to saved cache files

patch by Daniel Chia; reviewed by Ariel Weisberg for CASSANDRA-9265


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fa6205c9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fa6205c9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fa6205c9

Branch: refs/heads/cassandra-3.0
Commit: fa6205c909656b09165da4b5ca469328a6450917
Parents: 7636a6b
Author: Daniel Chia 
Authored: Wed Aug 5 18:46:30 2015 -0400
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 21:48:14 2015 +0300

--
 CHANGES.txt |   1 +
 .../apache/cassandra/cache/AutoSavingCache.java |  96 --
 .../cassandra/config/DatabaseDescriptor.java|  13 +-
 .../io/util/ChecksummedRandomAccessReader.java  | 103 +++
 .../io/util/DataIntegrityMetadata.java  |  16 ++-
 .../io/ChecksummedRandomAccessReaderTest.java   | 127 +++
 6 files changed, 311 insertions(+), 45 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fa6205c9/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 72ad3cd..ff0fdda 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.1
+ * Add checksum to saved cache files (CASSANDRA-9265)
  * Log warning when using an aggregate without partition key (CASSANDRA-9737)
  * Avoid grouping sstables for anticompaction with DTCS (CASSANDRA-9900)
  * UDF / UDA execution time in trace (CASSANDRA-9723)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fa6205c9/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--
diff --git a/src/java/org/apache/cassandra/cache/AutoSavingCache.java 
b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
index a204a18..05653ba 100644
--- a/src/java/org/apache/cassandra/cache/AutoSavingCache.java
+++ b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
@@ -39,6 +39,7 @@ import org.apache.cassandra.db.compaction.OperationType;
 import org.apache.cassandra.db.marshal.BytesType;
 import org.apache.cassandra.io.FSWriteError;
 import org.apache.cassandra.io.util.*;
+import 
org.apache.cassandra.io.util.ChecksummedRandomAccessReader.CorruptFileException;
 import org.apache.cassandra.service.CacheService;
 import org.apache.cassandra.utils.JVMStabilityInspector;
 import org.apache.cassandra.utils.Pair;
@@ -48,8 +49,8 @@ public class AutoSavingCache extends 
InstrumentingCache extends 
InstrumentingCache cacheLoader;
-private static final String CURRENT_VERSION = "b";
+private static final String CURRENT_VERSION = "c";
 
 private static volatile IStreamFactory streamFactory = new IStreamFactory()
 {
-public InputStream getInputStream(File path) throws 
FileNotFoundException
+public InputStream getInputStream(File dataPath, File crcPath) throws 
IOException
 {
-return new FileInputStream(path);
+return ChecksummedRandomAccessReader.open(dataPath, crcPath);
 }
 
-public OutputStream getOutputStream(File path) throws 
FileNotFoundException
+public SequentialWriter getOutputWriter(File dataPath, File crcPath)
 {
-return new FileOutputStream(path);
+return SequentialWriter.open(dataPath, crcPath);
 }
 };
 
@@ -89,10 +90,16 @@ public class AutoSavingCache extends 
InstrumentingCache names = Schema.instance.getCF(cfId);
-return DatabaseDescriptor.getSerializedCachePath(names.left, 
names.right, cfId, cacheType, version);
+return DatabaseDescriptor.getSerializedCachePath(names.left, 
names.right, cfId, cacheType, version, "db");
+}
+
+public File getCacheCrcPath(UUID cfId, String version)
+{
+Pair names = Schema.instance.getCF(cfId);
+return DatabaseDescriptor.getSerializedCachePath(names.left, 
names.right, cfId, cacheType, version, "crc");
 }
 
 public Writer getWriter(int keysToSave)
@@ -129,14 +136,15 @@ public class AutoSavingCache 
extends InstrumentingCache>> futures = new 
ArrayList>>();
 while (in.available() > 0)
 {
@@ -155,10 +163,15 @@ public class AutoSavingCache 
extends InstrumentingCache extends 
InstrumentingCache extends 
InstrumentingCache writers = new HashMap<>();
-HashMap streams = new HashMap<>();
-HashMap paths = new HashMap<>();
+HashMap dataOutputs = new HashMap<>();
+HashMap sequentialWriters = new 
HashMap<>();
+HashMap&

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

2015-08-06 Thread aleksey
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/709510e3
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/709510e3
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/709510e3

Branch: refs/heads/trunk
Commit: 709510e32a5ccd61a75c02c68c1d519dd2bb25c4
Parents: 989c3aa a472aa9
Author: Aleksey Yeschenko 
Authored: Thu Aug 6 21:54:45 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 21:54:45 2015 +0300

--
 CHANGES.txt |   1 +
 .../apache/cassandra/cache/AutoSavingCache.java |  96 --
 .../cassandra/config/DatabaseDescriptor.java|  13 +-
 .../io/util/ChecksummedRandomAccessReader.java  | 110 
 .../io/util/DataIntegrityMetadata.java  |  17 ++-
 .../io/ChecksummedRandomAccessReaderTest.java   | 127 +++
 6 files changed, 319 insertions(+), 45 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/709510e3/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
--



[1/3] cassandra git commit: Add checksum to saved cache files

2015-08-06 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 989c3aa82 -> 709510e32


Add checksum to saved cache files

patch by Daniel Chia; reviewed by Ariel Weisberg for CASSANDRA-9265


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fa6205c9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fa6205c9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fa6205c9

Branch: refs/heads/trunk
Commit: fa6205c909656b09165da4b5ca469328a6450917
Parents: 7636a6b
Author: Daniel Chia 
Authored: Wed Aug 5 18:46:30 2015 -0400
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 21:48:14 2015 +0300

--
 CHANGES.txt |   1 +
 .../apache/cassandra/cache/AutoSavingCache.java |  96 --
 .../cassandra/config/DatabaseDescriptor.java|  13 +-
 .../io/util/ChecksummedRandomAccessReader.java  | 103 +++
 .../io/util/DataIntegrityMetadata.java  |  16 ++-
 .../io/ChecksummedRandomAccessReaderTest.java   | 127 +++
 6 files changed, 311 insertions(+), 45 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fa6205c9/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 72ad3cd..ff0fdda 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.1
+ * Add checksum to saved cache files (CASSANDRA-9265)
  * Log warning when using an aggregate without partition key (CASSANDRA-9737)
  * Avoid grouping sstables for anticompaction with DTCS (CASSANDRA-9900)
  * UDF / UDA execution time in trace (CASSANDRA-9723)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fa6205c9/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--
diff --git a/src/java/org/apache/cassandra/cache/AutoSavingCache.java 
b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
index a204a18..05653ba 100644
--- a/src/java/org/apache/cassandra/cache/AutoSavingCache.java
+++ b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
@@ -39,6 +39,7 @@ import org.apache.cassandra.db.compaction.OperationType;
 import org.apache.cassandra.db.marshal.BytesType;
 import org.apache.cassandra.io.FSWriteError;
 import org.apache.cassandra.io.util.*;
+import 
org.apache.cassandra.io.util.ChecksummedRandomAccessReader.CorruptFileException;
 import org.apache.cassandra.service.CacheService;
 import org.apache.cassandra.utils.JVMStabilityInspector;
 import org.apache.cassandra.utils.Pair;
@@ -48,8 +49,8 @@ public class AutoSavingCache extends 
InstrumentingCache extends 
InstrumentingCache cacheLoader;
-private static final String CURRENT_VERSION = "b";
+private static final String CURRENT_VERSION = "c";
 
 private static volatile IStreamFactory streamFactory = new IStreamFactory()
 {
-public InputStream getInputStream(File path) throws 
FileNotFoundException
+public InputStream getInputStream(File dataPath, File crcPath) throws 
IOException
 {
-return new FileInputStream(path);
+return ChecksummedRandomAccessReader.open(dataPath, crcPath);
 }
 
-public OutputStream getOutputStream(File path) throws 
FileNotFoundException
+public SequentialWriter getOutputWriter(File dataPath, File crcPath)
 {
-return new FileOutputStream(path);
+return SequentialWriter.open(dataPath, crcPath);
 }
 };
 
@@ -89,10 +90,16 @@ public class AutoSavingCache extends 
InstrumentingCache names = Schema.instance.getCF(cfId);
-return DatabaseDescriptor.getSerializedCachePath(names.left, 
names.right, cfId, cacheType, version);
+return DatabaseDescriptor.getSerializedCachePath(names.left, 
names.right, cfId, cacheType, version, "db");
+}
+
+public File getCacheCrcPath(UUID cfId, String version)
+{
+Pair names = Schema.instance.getCF(cfId);
+return DatabaseDescriptor.getSerializedCachePath(names.left, 
names.right, cfId, cacheType, version, "crc");
 }
 
 public Writer getWriter(int keysToSave)
@@ -129,14 +136,15 @@ public class AutoSavingCache 
extends InstrumentingCache>> futures = new 
ArrayList>>();
 while (in.available() > 0)
 {
@@ -155,10 +163,15 @@ public class AutoSavingCache 
extends InstrumentingCache extends 
InstrumentingCache extends 
InstrumentingCache writers = new HashMap<>();
-HashMap streams = new HashMap<>();
-HashMap paths = new HashMap<>();
+HashMap dataOutputs = new HashMap<>();
+HashMap sequentialWriters = new 
HashMap<>();
+HashMap> pa

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

2015-08-06 Thread aleksey
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/a472aa9e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a472aa9e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a472aa9e

Branch: refs/heads/trunk
Commit: a472aa9eaaff3f67035c53dd92b4aee24f2bed36
Parents: 39ee040 fa6205c
Author: Aleksey Yeschenko 
Authored: Thu Aug 6 21:54:20 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 6 21:54:20 2015 +0300

--
 CHANGES.txt |   1 +
 .../apache/cassandra/cache/AutoSavingCache.java |  96 --
 .../cassandra/config/DatabaseDescriptor.java|  13 +-
 .../io/util/ChecksummedRandomAccessReader.java  | 110 
 .../io/util/DataIntegrityMetadata.java  |  17 ++-
 .../io/ChecksummedRandomAccessReaderTest.java   | 127 +++
 6 files changed, 319 insertions(+), 45 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a472aa9e/CHANGES.txt
--
diff --cc CHANGES.txt
index 95fade9,ff0fdda..a894297
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,43 -1,6 +1,44 @@@
 -2.2.1
 +3.0.0-beta1
 + * Optimize batchlog replay to avoid full scans (CASSANDRA-7237)
 + * Repair improvements when using vnodes (CASSANDRA-5220)
 + * Disable scripted UDFs by default (CASSANDRA-9889)
 + * Add transparent data encryption core classes (CASSANDRA-9945)
 + * Bytecode inspection for Java-UDFs (CASSANDRA-9890)
 + * Use byte to serialize MT hash length (CASSANDRA-9792)
 +Merged from 2.2:
+  * Add checksum to saved cache files (CASSANDRA-9265)
   * Log warning when using an aggregate without partition key (CASSANDRA-9737)
 +Merged from 2.1:
 + * Cannot replace token does not exist - DN node removed as Fat Client 
(CASSANDRA-9871)
 +Merged from 2.0:
 + * Don't cast expected bf size to an int (CASSANDRA-9959)
 +
 +
 +3.0.0-alpha1
 + * Implement proper sandboxing for UDFs (CASSANDRA-9402)
 + * Simplify (and unify) cleanup of compaction leftovers (CASSANDRA-7066)
 + * Allow extra schema definitions in cassandra-stress yaml (CASSANDRA-9850)
 + * Metrics should use up to date nomenclature (CASSANDRA-9448)
 + * 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, 9781, 9808, 
9825,
 +   9848, 9705, 9859, 9867, 9874, 9828, 9801)
 + * 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, 9865)
 + * Materialized Views (CASSANDRA-6477)
 +Merged from 2.2:
   * Avoid grouping sstables for anticompaction with DTCS (CASSANDRA-9900)
   * UDF / UDA execution time in trace (CASSANDRA-9723)
   * Fix broken internode SSL (CASSANDRA-9884)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a472aa9e/src/java/org/apache/cassandra/cache/AutoSavingCache.java
--
diff --cc src/java/org/apache/cassandra/cache/AutoSavingCache.java
index 0b334f5,05653ba..3c5b6a5
--- a/src/java/org/apache/cassandra/cache/AutoSavingCache.java
+++ b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
@@@ -38,7 -39,7 +38,8 @@@ import org.apache.cassandra.db.compacti
  import org.apache.cassandra.db.marshal.BytesType;
  import org.apache.cassandra.io.FSWriteError;
  import org.apache.cassandra.io.util.*;
+ import 
org.apache.cassandra.io.util.ChecksummedRandomAccessReader.CorruptFileException;
 +import org.apache.cassandra.io.util.DataInputPlus.DataInputStreamPlus;
  import org.apache.cassandra.service.CacheService;
  import org.apache.cassandra.utils.JVMStabilityInspector;
  import org.apache.cassandra.utils.Pair;
@@@ -129,14 -136,15 +136,15 @@@ public class AutoSavingCache>> futures = new 
ArrayList>>();
  while (in.available() > 0)
  {

http

cassandra git commit: Write hints for paxos commits

2015-08-09 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 3b7934f1a -> 07a7e80c3


Write hints for paxos commits

patch by Sankalp Kohli and Aleksey Yeschenko for CASSANDRA-7342


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/07a7e80c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/07a7e80c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/07a7e80c

Branch: refs/heads/cassandra-2.1
Commit: 07a7e80c321b6667cc44a236f999c7837fe48e20
Parents: 3b7934f
Author: sankalp kohli 
Authored: Thu Aug 6 18:56:37 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Sun Aug 9 22:52:03 2015 +0300

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/net/MessagingService.java | 11 +--
 .../org/apache/cassandra/net/WriteCallbackInfo.java | 11 ++-
 src/java/org/apache/cassandra/service/StorageProxy.java | 12 
 4 files changed, 24 insertions(+), 11 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/07a7e80c/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 3b0241c..7151883 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.9
+ * Write hints for paxos commits (CASSANDRA-7342)
  * (cqlsh) Fix timestamps before 1970 on Windows, always
use UTC for timestamp display (CASSANDRA-1)
  * (cqlsh) Avoid overwriting new config file with old config

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07a7e80c/src/java/org/apache/cassandra/net/MessagingService.java
--
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java 
b/src/java/org/apache/cassandra/net/MessagingService.java
index 1ad0e7c..d7825d4 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -379,8 +379,7 @@ public final class MessagingService implements 
MessagingServiceMBean
 
 if (expiredCallbackInfo.shouldHint())
 {
-Mutation mutation = (Mutation) ((WriteCallbackInfo) 
expiredCallbackInfo).sentMessage.payload;
-
+Mutation mutation = ((WriteCallbackInfo) 
expiredCallbackInfo).mutation();
 return StorageProxy.submitHint(mutation, 
expiredCallbackInfo.target, null);
 }
 
@@ -594,13 +593,13 @@ public final class MessagingService implements 
MessagingServiceMBean
 }
 
 public int addCallback(IAsyncCallback cb,
-   MessageOut message,
+   MessageOut message,
InetAddress to,
long timeout,
ConsistencyLevel consistencyLevel,
boolean allowHints)
 {
-assert message.verb == Verb.MUTATION || message.verb == 
Verb.COUNTER_MUTATION;
+assert message.verb == Verb.MUTATION || message.verb == 
Verb.COUNTER_MUTATION || message.verb == Verb.PAXOS_COMMIT;
 int messageId = nextId();
 
 CallbackInfo previous = callbacks.put(messageId,
@@ -651,7 +650,7 @@ public final class MessagingService implements 
MessagingServiceMBean
 }
 
 /**
- * Send a mutation message to a given endpoint. This method specifies a 
callback
+ * Send a mutation message or a Paxos Commit to a given endpoint. This 
method specifies a callback
  * which is invoked with the actual response.
  * Also holds the message (only mutation messages) to determine if it
  * needs to trigger a hint (uses StorageProxy for that).
@@ -662,7 +661,7 @@ public final class MessagingService implements 
MessagingServiceMBean
  *suggest that a timeout occurred to the invoker of the 
send().
  * @return an reference to message id used to match with the result
  */
-public int sendRR(MessageOut message,
+public int sendRR(MessageOut message,
   InetAddress to,
   AbstractWriteResponseHandler handler,
   boolean allowHints)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07a7e80c/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
--
diff --git a/src/java/org/apache/cassandra/net/WriteCallbackInfo.java 
b/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
index 987ec15..0cf126f 100644
--- a/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
+++ b/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
@@ -21,12 +21,14 @@ package org.apache.cassandra.net;
 import java.net.InetAddress;
 
 import org.apache.cassandra.db.ConsistencyLe

[1/2] cassandra git commit: Write hints for paxos commits

2015-08-09 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 a5297f16e -> 0b99d33ee


Write hints for paxos commits

patch by Sankalp Kohli and Aleksey Yeschenko for CASSANDRA-7342


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/07a7e80c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/07a7e80c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/07a7e80c

Branch: refs/heads/cassandra-2.2
Commit: 07a7e80c321b6667cc44a236f999c7837fe48e20
Parents: 3b7934f
Author: sankalp kohli 
Authored: Thu Aug 6 18:56:37 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Sun Aug 9 22:52:03 2015 +0300

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/net/MessagingService.java | 11 +--
 .../org/apache/cassandra/net/WriteCallbackInfo.java | 11 ++-
 src/java/org/apache/cassandra/service/StorageProxy.java | 12 
 4 files changed, 24 insertions(+), 11 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/07a7e80c/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 3b0241c..7151883 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.9
+ * Write hints for paxos commits (CASSANDRA-7342)
  * (cqlsh) Fix timestamps before 1970 on Windows, always
use UTC for timestamp display (CASSANDRA-1)
  * (cqlsh) Avoid overwriting new config file with old config

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07a7e80c/src/java/org/apache/cassandra/net/MessagingService.java
--
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java 
b/src/java/org/apache/cassandra/net/MessagingService.java
index 1ad0e7c..d7825d4 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -379,8 +379,7 @@ public final class MessagingService implements 
MessagingServiceMBean
 
 if (expiredCallbackInfo.shouldHint())
 {
-Mutation mutation = (Mutation) ((WriteCallbackInfo) 
expiredCallbackInfo).sentMessage.payload;
-
+Mutation mutation = ((WriteCallbackInfo) 
expiredCallbackInfo).mutation();
 return StorageProxy.submitHint(mutation, 
expiredCallbackInfo.target, null);
 }
 
@@ -594,13 +593,13 @@ public final class MessagingService implements 
MessagingServiceMBean
 }
 
 public int addCallback(IAsyncCallback cb,
-   MessageOut message,
+   MessageOut message,
InetAddress to,
long timeout,
ConsistencyLevel consistencyLevel,
boolean allowHints)
 {
-assert message.verb == Verb.MUTATION || message.verb == 
Verb.COUNTER_MUTATION;
+assert message.verb == Verb.MUTATION || message.verb == 
Verb.COUNTER_MUTATION || message.verb == Verb.PAXOS_COMMIT;
 int messageId = nextId();
 
 CallbackInfo previous = callbacks.put(messageId,
@@ -651,7 +650,7 @@ public final class MessagingService implements 
MessagingServiceMBean
 }
 
 /**
- * Send a mutation message to a given endpoint. This method specifies a 
callback
+ * Send a mutation message or a Paxos Commit to a given endpoint. This 
method specifies a callback
  * which is invoked with the actual response.
  * Also holds the message (only mutation messages) to determine if it
  * needs to trigger a hint (uses StorageProxy for that).
@@ -662,7 +661,7 @@ public final class MessagingService implements 
MessagingServiceMBean
  *suggest that a timeout occurred to the invoker of the 
send().
  * @return an reference to message id used to match with the result
  */
-public int sendRR(MessageOut message,
+public int sendRR(MessageOut message,
   InetAddress to,
   AbstractWriteResponseHandler handler,
   boolean allowHints)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07a7e80c/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
--
diff --git a/src/java/org/apache/cassandra/net/WriteCallbackInfo.java 
b/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
index 987ec15..0cf126f 100644
--- a/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
+++ b/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
@@ -21,12 +21,14 @@ package org.apache.cassandra.net;
 import java.net.InetAddress;
 
 import org.apache.cassandra.db.ConsistencyLe

[2/2] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

2015-08-09 Thread aleksey
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/0b99d33e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0b99d33e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0b99d33e

Branch: refs/heads/cassandra-2.2
Commit: 0b99d33eec5e703b6643aafc3a40a54f3fb088a0
Parents: a5297f1 07a7e80
Author: Aleksey Yeschenko 
Authored: Sun Aug 9 23:01:06 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Sun Aug 9 23:01:06 2015 +0300

--
 CHANGES.txt|  1 +
 .../org/apache/cassandra/net/MessagingService.java | 13 ++---
 .../org/apache/cassandra/net/WriteCallbackInfo.java| 11 ++-
 .../org/apache/cassandra/service/StorageProxy.java | 12 
 4 files changed, 25 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b99d33e/CHANGES.txt
--
diff --cc CHANGES.txt
index 705e560,7151883..a913fe7
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,10 -1,5 +1,11 @@@
 -2.1.9
 +2.2.1
 + * Add checksum to saved cache files (CASSANDRA-9265)
 + * Log warning when using an aggregate without partition key (CASSANDRA-9737)
 + * Avoid grouping sstables for anticompaction with DTCS (CASSANDRA-9900)
 + * UDF / UDA execution time in trace (CASSANDRA-9723)
 + * Fix broken internode SSL (CASSANDRA-9884)
 +Merged from 2.1:
+  * Write hints for paxos commits (CASSANDRA-7342)
   * (cqlsh) Fix timestamps before 1970 on Windows, always
 use UTC for timestamp display (CASSANDRA-1)
   * (cqlsh) Avoid overwriting new config file with old config

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b99d33e/src/java/org/apache/cassandra/net/MessagingService.java
--
diff --cc src/java/org/apache/cassandra/net/MessagingService.java
index bb46bbf,d7825d4..f8fd6fd
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@@ -680,9 -661,9 +679,9 @@@ public final class MessagingService imp
   *suggest that a timeout occurred to the invoker of the 
send().
   * @return an reference to message id used to match with the result
   */
- public int sendRR(MessageOut message,
+ public int sendRR(MessageOut message,
InetAddress to,
-   AbstractWriteResponseHandler 
handler,
 -  AbstractWriteResponseHandler handler,
++  AbstractWriteResponseHandler handler,
boolean allowHints)
  {
  int id = addCallback(handler, message, to, message.getTimeout(), 
handler.consistencyLevel, allowHints);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b99d33e/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b99d33e/src/java/org/apache/cassandra/service/StorageProxy.java
--



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

2015-08-09 Thread aleksey
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/0b99d33e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0b99d33e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0b99d33e

Branch: refs/heads/cassandra-3.0
Commit: 0b99d33eec5e703b6643aafc3a40a54f3fb088a0
Parents: a5297f1 07a7e80
Author: Aleksey Yeschenko 
Authored: Sun Aug 9 23:01:06 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Sun Aug 9 23:01:06 2015 +0300

--
 CHANGES.txt|  1 +
 .../org/apache/cassandra/net/MessagingService.java | 13 ++---
 .../org/apache/cassandra/net/WriteCallbackInfo.java| 11 ++-
 .../org/apache/cassandra/service/StorageProxy.java | 12 
 4 files changed, 25 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b99d33e/CHANGES.txt
--
diff --cc CHANGES.txt
index 705e560,7151883..a913fe7
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,10 -1,5 +1,11 @@@
 -2.1.9
 +2.2.1
 + * Add checksum to saved cache files (CASSANDRA-9265)
 + * Log warning when using an aggregate without partition key (CASSANDRA-9737)
 + * Avoid grouping sstables for anticompaction with DTCS (CASSANDRA-9900)
 + * UDF / UDA execution time in trace (CASSANDRA-9723)
 + * Fix broken internode SSL (CASSANDRA-9884)
 +Merged from 2.1:
+  * Write hints for paxos commits (CASSANDRA-7342)
   * (cqlsh) Fix timestamps before 1970 on Windows, always
 use UTC for timestamp display (CASSANDRA-1)
   * (cqlsh) Avoid overwriting new config file with old config

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b99d33e/src/java/org/apache/cassandra/net/MessagingService.java
--
diff --cc src/java/org/apache/cassandra/net/MessagingService.java
index bb46bbf,d7825d4..f8fd6fd
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@@ -680,9 -661,9 +679,9 @@@ public final class MessagingService imp
   *suggest that a timeout occurred to the invoker of the 
send().
   * @return an reference to message id used to match with the result
   */
- public int sendRR(MessageOut message,
+ public int sendRR(MessageOut message,
InetAddress to,
-   AbstractWriteResponseHandler 
handler,
 -  AbstractWriteResponseHandler handler,
++  AbstractWriteResponseHandler handler,
boolean allowHints)
  {
  int id = addCallback(handler, message, to, message.getTimeout(), 
handler.consistencyLevel, allowHints);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b99d33e/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b99d33e/src/java/org/apache/cassandra/service/StorageProxy.java
--



[1/3] cassandra git commit: Write hints for paxos commits

2015-08-09 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 8984ca79f -> f568a5d8a


Write hints for paxos commits

patch by Sankalp Kohli and Aleksey Yeschenko for CASSANDRA-7342


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/07a7e80c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/07a7e80c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/07a7e80c

Branch: refs/heads/cassandra-3.0
Commit: 07a7e80c321b6667cc44a236f999c7837fe48e20
Parents: 3b7934f
Author: sankalp kohli 
Authored: Thu Aug 6 18:56:37 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Sun Aug 9 22:52:03 2015 +0300

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/net/MessagingService.java | 11 +--
 .../org/apache/cassandra/net/WriteCallbackInfo.java | 11 ++-
 src/java/org/apache/cassandra/service/StorageProxy.java | 12 
 4 files changed, 24 insertions(+), 11 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/07a7e80c/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 3b0241c..7151883 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.9
+ * Write hints for paxos commits (CASSANDRA-7342)
  * (cqlsh) Fix timestamps before 1970 on Windows, always
use UTC for timestamp display (CASSANDRA-1)
  * (cqlsh) Avoid overwriting new config file with old config

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07a7e80c/src/java/org/apache/cassandra/net/MessagingService.java
--
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java 
b/src/java/org/apache/cassandra/net/MessagingService.java
index 1ad0e7c..d7825d4 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -379,8 +379,7 @@ public final class MessagingService implements 
MessagingServiceMBean
 
 if (expiredCallbackInfo.shouldHint())
 {
-Mutation mutation = (Mutation) ((WriteCallbackInfo) 
expiredCallbackInfo).sentMessage.payload;
-
+Mutation mutation = ((WriteCallbackInfo) 
expiredCallbackInfo).mutation();
 return StorageProxy.submitHint(mutation, 
expiredCallbackInfo.target, null);
 }
 
@@ -594,13 +593,13 @@ public final class MessagingService implements 
MessagingServiceMBean
 }
 
 public int addCallback(IAsyncCallback cb,
-   MessageOut message,
+   MessageOut message,
InetAddress to,
long timeout,
ConsistencyLevel consistencyLevel,
boolean allowHints)
 {
-assert message.verb == Verb.MUTATION || message.verb == 
Verb.COUNTER_MUTATION;
+assert message.verb == Verb.MUTATION || message.verb == 
Verb.COUNTER_MUTATION || message.verb == Verb.PAXOS_COMMIT;
 int messageId = nextId();
 
 CallbackInfo previous = callbacks.put(messageId,
@@ -651,7 +650,7 @@ public final class MessagingService implements 
MessagingServiceMBean
 }
 
 /**
- * Send a mutation message to a given endpoint. This method specifies a 
callback
+ * Send a mutation message or a Paxos Commit to a given endpoint. This 
method specifies a callback
  * which is invoked with the actual response.
  * Also holds the message (only mutation messages) to determine if it
  * needs to trigger a hint (uses StorageProxy for that).
@@ -662,7 +661,7 @@ public final class MessagingService implements 
MessagingServiceMBean
  *suggest that a timeout occurred to the invoker of the 
send().
  * @return an reference to message id used to match with the result
  */
-public int sendRR(MessageOut message,
+public int sendRR(MessageOut message,
   InetAddress to,
   AbstractWriteResponseHandler handler,
   boolean allowHints)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07a7e80c/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
--
diff --git a/src/java/org/apache/cassandra/net/WriteCallbackInfo.java 
b/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
index 987ec15..0cf126f 100644
--- a/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
+++ b/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
@@ -21,12 +21,14 @@ package org.apache.cassandra.net;
 import java.net.InetAddress;
 
 import org.apache.cassandra.db.ConsistencyLe

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

2015-08-09 Thread aleksey
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/f568a5d8
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f568a5d8
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f568a5d8

Branch: refs/heads/cassandra-3.0
Commit: f568a5d8a8fc2d165801e792f1133ac111c4df27
Parents: 8984ca7 0b99d33
Author: Aleksey Yeschenko 
Authored: Sun Aug 9 23:04:01 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Sun Aug 9 23:04:01 2015 +0300

--
 CHANGES.txt |  1 +
 .../org/apache/cassandra/net/MessagingService.java  | 16 
 .../org/apache/cassandra/net/WriteCallbackInfo.java | 11 ++-
 .../org/apache/cassandra/service/StorageProxy.java  | 12 
 4 files changed, 27 insertions(+), 13 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f568a5d8/CHANGES.txt
--
diff --cc CHANGES.txt
index 0ba7b4e,a913fe7..7cb9f16
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,17 -1,11 +1,18 @@@
 -2.2.1
 +3.0.0-beta1
 + * Support mixed-version clusters with Cassandra 2.1 and 2.2 (CASSANDRA-9704)
 + * Fix multiple slices on RowSearchers (CASSANDRA-10002)
 + * Fix bug in merging of collections (CASSANDRA-10001)
 + * Optimize batchlog replay to avoid full scans (CASSANDRA-7237)
 + * Repair improvements when using vnodes (CASSANDRA-5220)
 + * Disable scripted UDFs by default (CASSANDRA-9889)
 + * Add transparent data encryption core classes (CASSANDRA-9945)
 + * Bytecode inspection for Java-UDFs (CASSANDRA-9890)
 + * Use byte to serialize MT hash length (CASSANDRA-9792)
 +Merged from 2.2:
   * Add checksum to saved cache files (CASSANDRA-9265)
   * Log warning when using an aggregate without partition key (CASSANDRA-9737)
 - * Avoid grouping sstables for anticompaction with DTCS (CASSANDRA-9900)
 - * UDF / UDA execution time in trace (CASSANDRA-9723)
 - * Fix broken internode SSL (CASSANDRA-9884)
  Merged from 2.1:
+  * Write hints for paxos commits (CASSANDRA-7342)
   * (cqlsh) Fix timestamps before 1970 on Windows, always
 use UTC for timestamp display (CASSANDRA-1)
   * (cqlsh) Avoid overwriting new config file with old config

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f568a5d8/src/java/org/apache/cassandra/net/MessagingService.java
--
diff --cc src/java/org/apache/cassandra/net/MessagingService.java
index 25eb0d0,f8fd6fd..0505445
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@@ -625,9 -617,7 +624,10 @@@ public final class MessagingService imp
 ConsistencyLevel consistencyLevel,
 boolean allowHints)
  {
 -assert message.verb == Verb.MUTATION || message.verb == 
Verb.COUNTER_MUTATION || message.verb == Verb.PAXOS_COMMIT;
 +assert message.verb == Verb.MUTATION
-|| message.verb == Verb.BATCHLOG_MUTATION
-|| message.verb == Verb.COUNTER_MUTATION;
++|| message.verb == Verb.BATCHLOG_MUTATION
++|| message.verb == Verb.COUNTER_MUTATION
++|| message.verb == Verb.PAXOS_COMMIT;
  int messageId = nextId();
  
  CallbackInfo previous = callbacks.put(messageId,

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f568a5d8/src/java/org/apache/cassandra/service/StorageProxy.java
--



[2/4] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

2015-08-09 Thread aleksey
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/0b99d33e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0b99d33e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0b99d33e

Branch: refs/heads/trunk
Commit: 0b99d33eec5e703b6643aafc3a40a54f3fb088a0
Parents: a5297f1 07a7e80
Author: Aleksey Yeschenko 
Authored: Sun Aug 9 23:01:06 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Sun Aug 9 23:01:06 2015 +0300

--
 CHANGES.txt|  1 +
 .../org/apache/cassandra/net/MessagingService.java | 13 ++---
 .../org/apache/cassandra/net/WriteCallbackInfo.java| 11 ++-
 .../org/apache/cassandra/service/StorageProxy.java | 12 
 4 files changed, 25 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b99d33e/CHANGES.txt
--
diff --cc CHANGES.txt
index 705e560,7151883..a913fe7
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,10 -1,5 +1,11 @@@
 -2.1.9
 +2.2.1
 + * Add checksum to saved cache files (CASSANDRA-9265)
 + * Log warning when using an aggregate without partition key (CASSANDRA-9737)
 + * Avoid grouping sstables for anticompaction with DTCS (CASSANDRA-9900)
 + * UDF / UDA execution time in trace (CASSANDRA-9723)
 + * Fix broken internode SSL (CASSANDRA-9884)
 +Merged from 2.1:
+  * Write hints for paxos commits (CASSANDRA-7342)
   * (cqlsh) Fix timestamps before 1970 on Windows, always
 use UTC for timestamp display (CASSANDRA-1)
   * (cqlsh) Avoid overwriting new config file with old config

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b99d33e/src/java/org/apache/cassandra/net/MessagingService.java
--
diff --cc src/java/org/apache/cassandra/net/MessagingService.java
index bb46bbf,d7825d4..f8fd6fd
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@@ -680,9 -661,9 +679,9 @@@ public final class MessagingService imp
   *suggest that a timeout occurred to the invoker of the 
send().
   * @return an reference to message id used to match with the result
   */
- public int sendRR(MessageOut message,
+ public int sendRR(MessageOut message,
InetAddress to,
-   AbstractWriteResponseHandler 
handler,
 -  AbstractWriteResponseHandler handler,
++  AbstractWriteResponseHandler handler,
boolean allowHints)
  {
  int id = addCallback(handler, message, to, message.getTimeout(), 
handler.consistencyLevel, allowHints);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b99d33e/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0b99d33e/src/java/org/apache/cassandra/service/StorageProxy.java
--



[1/4] cassandra git commit: Write hints for paxos commits

2015-08-09 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 680accedb -> b6d5f2cf3


Write hints for paxos commits

patch by Sankalp Kohli and Aleksey Yeschenko for CASSANDRA-7342


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/07a7e80c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/07a7e80c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/07a7e80c

Branch: refs/heads/trunk
Commit: 07a7e80c321b6667cc44a236f999c7837fe48e20
Parents: 3b7934f
Author: sankalp kohli 
Authored: Thu Aug 6 18:56:37 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Sun Aug 9 22:52:03 2015 +0300

--
 CHANGES.txt |  1 +
 src/java/org/apache/cassandra/net/MessagingService.java | 11 +--
 .../org/apache/cassandra/net/WriteCallbackInfo.java | 11 ++-
 src/java/org/apache/cassandra/service/StorageProxy.java | 12 
 4 files changed, 24 insertions(+), 11 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/07a7e80c/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 3b0241c..7151883 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.9
+ * Write hints for paxos commits (CASSANDRA-7342)
  * (cqlsh) Fix timestamps before 1970 on Windows, always
use UTC for timestamp display (CASSANDRA-1)
  * (cqlsh) Avoid overwriting new config file with old config

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07a7e80c/src/java/org/apache/cassandra/net/MessagingService.java
--
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java 
b/src/java/org/apache/cassandra/net/MessagingService.java
index 1ad0e7c..d7825d4 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -379,8 +379,7 @@ public final class MessagingService implements 
MessagingServiceMBean
 
 if (expiredCallbackInfo.shouldHint())
 {
-Mutation mutation = (Mutation) ((WriteCallbackInfo) 
expiredCallbackInfo).sentMessage.payload;
-
+Mutation mutation = ((WriteCallbackInfo) 
expiredCallbackInfo).mutation();
 return StorageProxy.submitHint(mutation, 
expiredCallbackInfo.target, null);
 }
 
@@ -594,13 +593,13 @@ public final class MessagingService implements 
MessagingServiceMBean
 }
 
 public int addCallback(IAsyncCallback cb,
-   MessageOut message,
+   MessageOut message,
InetAddress to,
long timeout,
ConsistencyLevel consistencyLevel,
boolean allowHints)
 {
-assert message.verb == Verb.MUTATION || message.verb == 
Verb.COUNTER_MUTATION;
+assert message.verb == Verb.MUTATION || message.verb == 
Verb.COUNTER_MUTATION || message.verb == Verb.PAXOS_COMMIT;
 int messageId = nextId();
 
 CallbackInfo previous = callbacks.put(messageId,
@@ -651,7 +650,7 @@ public final class MessagingService implements 
MessagingServiceMBean
 }
 
 /**
- * Send a mutation message to a given endpoint. This method specifies a 
callback
+ * Send a mutation message or a Paxos Commit to a given endpoint. This 
method specifies a callback
  * which is invoked with the actual response.
  * Also holds the message (only mutation messages) to determine if it
  * needs to trigger a hint (uses StorageProxy for that).
@@ -662,7 +661,7 @@ public final class MessagingService implements 
MessagingServiceMBean
  *suggest that a timeout occurred to the invoker of the 
send().
  * @return an reference to message id used to match with the result
  */
-public int sendRR(MessageOut message,
+public int sendRR(MessageOut message,
   InetAddress to,
   AbstractWriteResponseHandler handler,
   boolean allowHints)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07a7e80c/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
--
diff --git a/src/java/org/apache/cassandra/net/WriteCallbackInfo.java 
b/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
index 987ec15..0cf126f 100644
--- a/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
+++ b/src/java/org/apache/cassandra/net/WriteCallbackInfo.java
@@ -21,12 +21,14 @@ package org.apache.cassandra.net;
 import java.net.InetAddress;
 
 import org.apache.cassandra.db.ConsistencyLevel;
+imp

[4/4] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

2015-08-09 Thread aleksey
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/b6d5f2cf
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b6d5f2cf
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b6d5f2cf

Branch: refs/heads/trunk
Commit: b6d5f2cf3dc2f663c3b7d35a0ee56d2abfea8e02
Parents: 680acce f568a5d
Author: Aleksey Yeschenko 
Authored: Sun Aug 9 23:05:30 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Sun Aug 9 23:05:30 2015 +0300

--
 CHANGES.txt |  1 +
 .../org/apache/cassandra/net/MessagingService.java  | 16 
 .../org/apache/cassandra/net/WriteCallbackInfo.java | 11 ++-
 .../org/apache/cassandra/service/StorageProxy.java  | 12 
 4 files changed, 27 insertions(+), 13 deletions(-)
--




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

2015-08-09 Thread aleksey
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/f568a5d8
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f568a5d8
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f568a5d8

Branch: refs/heads/trunk
Commit: f568a5d8a8fc2d165801e792f1133ac111c4df27
Parents: 8984ca7 0b99d33
Author: Aleksey Yeschenko 
Authored: Sun Aug 9 23:04:01 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Sun Aug 9 23:04:01 2015 +0300

--
 CHANGES.txt |  1 +
 .../org/apache/cassandra/net/MessagingService.java  | 16 
 .../org/apache/cassandra/net/WriteCallbackInfo.java | 11 ++-
 .../org/apache/cassandra/service/StorageProxy.java  | 12 
 4 files changed, 27 insertions(+), 13 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f568a5d8/CHANGES.txt
--
diff --cc CHANGES.txt
index 0ba7b4e,a913fe7..7cb9f16
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,17 -1,11 +1,18 @@@
 -2.2.1
 +3.0.0-beta1
 + * Support mixed-version clusters with Cassandra 2.1 and 2.2 (CASSANDRA-9704)
 + * Fix multiple slices on RowSearchers (CASSANDRA-10002)
 + * Fix bug in merging of collections (CASSANDRA-10001)
 + * Optimize batchlog replay to avoid full scans (CASSANDRA-7237)
 + * Repair improvements when using vnodes (CASSANDRA-5220)
 + * Disable scripted UDFs by default (CASSANDRA-9889)
 + * Add transparent data encryption core classes (CASSANDRA-9945)
 + * Bytecode inspection for Java-UDFs (CASSANDRA-9890)
 + * Use byte to serialize MT hash length (CASSANDRA-9792)
 +Merged from 2.2:
   * Add checksum to saved cache files (CASSANDRA-9265)
   * Log warning when using an aggregate without partition key (CASSANDRA-9737)
 - * Avoid grouping sstables for anticompaction with DTCS (CASSANDRA-9900)
 - * UDF / UDA execution time in trace (CASSANDRA-9723)
 - * Fix broken internode SSL (CASSANDRA-9884)
  Merged from 2.1:
+  * Write hints for paxos commits (CASSANDRA-7342)
   * (cqlsh) Fix timestamps before 1970 on Windows, always
 use UTC for timestamp display (CASSANDRA-1)
   * (cqlsh) Avoid overwriting new config file with old config

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f568a5d8/src/java/org/apache/cassandra/net/MessagingService.java
--
diff --cc src/java/org/apache/cassandra/net/MessagingService.java
index 25eb0d0,f8fd6fd..0505445
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@@ -625,9 -617,7 +624,10 @@@ public final class MessagingService imp
 ConsistencyLevel consistencyLevel,
 boolean allowHints)
  {
 -assert message.verb == Verb.MUTATION || message.verb == 
Verb.COUNTER_MUTATION || message.verb == Verb.PAXOS_COMMIT;
 +assert message.verb == Verb.MUTATION
-|| message.verb == Verb.BATCHLOG_MUTATION
-|| message.verb == Verb.COUNTER_MUTATION;
++|| message.verb == Verb.BATCHLOG_MUTATION
++|| message.verb == Verb.COUNTER_MUTATION
++|| message.verb == Verb.PAXOS_COMMIT;
  int messageId = nextId();
  
  CallbackInfo previous = callbacks.put(messageId,

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f568a5d8/src/java/org/apache/cassandra/service/StorageProxy.java
--



cassandra git commit: Change authorization handling for MVs

2015-08-10 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 269f0785f -> 1a9286c07


Change authorization handling for MVs

patch by Paulo Motta; reviewed by Aleksey Yeschenko for CASSANDRA-9927


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1a9286c0
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1a9286c0
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1a9286c0

Branch: refs/heads/cassandra-3.0
Commit: 1a9286c07a5c168df677da9d6be7178d087ea005
Parents: 269f078
Author: Paulo Motta 
Authored: Fri Aug 7 19:08:04 2015 -0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 11 02:16:39 2015 +0300

--
 CHANGES.txt |  1 +
 .../AlterMaterializedViewStatement.java |  5 ++-
 .../CreateMaterializedViewStatement.java|  2 +-
 .../DropMaterializedViewStatement.java  | 35 ++--
 .../cql3/statements/SelectStatement.java| 14 ++--
 .../cassandra/db/view/MaterializedView.java | 17 ++
 6 files changed, 46 insertions(+), 28 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a9286c0/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 7eff824..eacc110 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.0-beta1
+ * Change authorization handling for MVs (CASSANDRA-9927)
  * Add custom JMX enabled executor for UDF sandbox (CASSANDRA-10026)
  * Fix row deletion bug for Materialized Views (CASSANDRA-10014)
  * Support mixed-version clusters with Cassandra 2.1 and 2.2 (CASSANDRA-9704)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a9286c0/src/java/org/apache/cassandra/cql3/statements/AlterMaterializedViewStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/AlterMaterializedViewStatement.java
 
b/src/java/org/apache/cassandra/cql3/statements/AlterMaterializedViewStatement.java
index d0116fb..acc2f90 100644
--- 
a/src/java/org/apache/cassandra/cql3/statements/AlterMaterializedViewStatement.java
+++ 
b/src/java/org/apache/cassandra/cql3/statements/AlterMaterializedViewStatement.java
@@ -20,6 +20,7 @@ package org.apache.cassandra.cql3.statements;
 import org.apache.cassandra.auth.Permission;
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.cql3.CFName;
+import org.apache.cassandra.db.view.MaterializedView;
 import org.apache.cassandra.exceptions.InvalidRequestException;
 import org.apache.cassandra.exceptions.RequestValidationException;
 import org.apache.cassandra.exceptions.UnauthorizedException;
@@ -41,7 +42,9 @@ public class AlterMaterializedViewStatement extends 
SchemaAlteringStatement
 
 public void checkAccess(ClientState state) throws UnauthorizedException, 
InvalidRequestException
 {
-state.hasColumnFamilyAccess(keyspace(), columnFamily(), 
Permission.ALTER);
+CFMetaData baseTable = MaterializedView.findBaseTable(keyspace(), 
columnFamily());
+if (baseTable != null)
+state.hasColumnFamilyAccess(keyspace(), baseTable.cfName, 
Permission.ALTER);
 }
 
 public void validate(ClientState state)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a9286c0/src/java/org/apache/cassandra/cql3/statements/CreateMaterializedViewStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/CreateMaterializedViewStatement.java
 
b/src/java/org/apache/cassandra/cql3/statements/CreateMaterializedViewStatement.java
index 380b068..ec9e848 100644
--- 
a/src/java/org/apache/cassandra/cql3/statements/CreateMaterializedViewStatement.java
+++ 
b/src/java/org/apache/cassandra/cql3/statements/CreateMaterializedViewStatement.java
@@ -76,7 +76,7 @@ public class CreateMaterializedViewStatement extends 
SchemaAlteringStatement
 {
 if (!baseName.hasKeyspace())
 baseName.setKeyspace(keyspace(), true);
-state.hasKeyspaceAccess(keyspace(), Permission.CREATE);
+state.hasColumnFamilyAccess(keyspace(), baseName.getColumnFamily(), 
Permission.ALTER);
 }
 
 public void validate(ClientState state) throws RequestValidationException

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a9286c0/src/java/org/apache/cassandra/cql3/statements/DropMaterializedViewStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/DropMaterializedViewStatement.java
 
b/src/java/org/apache/cassandra/cql3/statements/DropMaterializedViewStatement.java
index 01d138c..8adba45 100644
--- 
a/src/java/org/apache/cassandra/cql3/stateme

[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

2015-08-10 Thread aleksey
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/1a1c5a00
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1a1c5a00
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1a1c5a00

Branch: refs/heads/trunk
Commit: 1a1c5a0080173abd1ed7dd22e179c41b421e9506
Parents: 10e9c19 1a9286c
Author: Aleksey Yeschenko 
Authored: Tue Aug 11 02:17:36 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 11 02:17:36 2015 +0300

--
 CHANGES.txt |  1 +
 .../AlterMaterializedViewStatement.java |  5 ++-
 .../CreateMaterializedViewStatement.java|  2 +-
 .../DropMaterializedViewStatement.java  | 35 ++--
 .../cql3/statements/SelectStatement.java| 14 ++--
 .../cassandra/db/view/MaterializedView.java | 17 ++
 6 files changed, 46 insertions(+), 28 deletions(-)
--




[1/2] cassandra git commit: Change authorization handling for MVs

2015-08-10 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 10e9c193b -> 1a1c5a008


Change authorization handling for MVs

patch by Paulo Motta; reviewed by Aleksey Yeschenko for CASSANDRA-9927


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1a9286c0
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1a9286c0
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1a9286c0

Branch: refs/heads/trunk
Commit: 1a9286c07a5c168df677da9d6be7178d087ea005
Parents: 269f078
Author: Paulo Motta 
Authored: Fri Aug 7 19:08:04 2015 -0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 11 02:16:39 2015 +0300

--
 CHANGES.txt |  1 +
 .../AlterMaterializedViewStatement.java |  5 ++-
 .../CreateMaterializedViewStatement.java|  2 +-
 .../DropMaterializedViewStatement.java  | 35 ++--
 .../cql3/statements/SelectStatement.java| 14 ++--
 .../cassandra/db/view/MaterializedView.java | 17 ++
 6 files changed, 46 insertions(+), 28 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a9286c0/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 7eff824..eacc110 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.0-beta1
+ * Change authorization handling for MVs (CASSANDRA-9927)
  * Add custom JMX enabled executor for UDF sandbox (CASSANDRA-10026)
  * Fix row deletion bug for Materialized Views (CASSANDRA-10014)
  * Support mixed-version clusters with Cassandra 2.1 and 2.2 (CASSANDRA-9704)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a9286c0/src/java/org/apache/cassandra/cql3/statements/AlterMaterializedViewStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/AlterMaterializedViewStatement.java
 
b/src/java/org/apache/cassandra/cql3/statements/AlterMaterializedViewStatement.java
index d0116fb..acc2f90 100644
--- 
a/src/java/org/apache/cassandra/cql3/statements/AlterMaterializedViewStatement.java
+++ 
b/src/java/org/apache/cassandra/cql3/statements/AlterMaterializedViewStatement.java
@@ -20,6 +20,7 @@ package org.apache.cassandra.cql3.statements;
 import org.apache.cassandra.auth.Permission;
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.cql3.CFName;
+import org.apache.cassandra.db.view.MaterializedView;
 import org.apache.cassandra.exceptions.InvalidRequestException;
 import org.apache.cassandra.exceptions.RequestValidationException;
 import org.apache.cassandra.exceptions.UnauthorizedException;
@@ -41,7 +42,9 @@ public class AlterMaterializedViewStatement extends 
SchemaAlteringStatement
 
 public void checkAccess(ClientState state) throws UnauthorizedException, 
InvalidRequestException
 {
-state.hasColumnFamilyAccess(keyspace(), columnFamily(), 
Permission.ALTER);
+CFMetaData baseTable = MaterializedView.findBaseTable(keyspace(), 
columnFamily());
+if (baseTable != null)
+state.hasColumnFamilyAccess(keyspace(), baseTable.cfName, 
Permission.ALTER);
 }
 
 public void validate(ClientState state)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a9286c0/src/java/org/apache/cassandra/cql3/statements/CreateMaterializedViewStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/CreateMaterializedViewStatement.java
 
b/src/java/org/apache/cassandra/cql3/statements/CreateMaterializedViewStatement.java
index 380b068..ec9e848 100644
--- 
a/src/java/org/apache/cassandra/cql3/statements/CreateMaterializedViewStatement.java
+++ 
b/src/java/org/apache/cassandra/cql3/statements/CreateMaterializedViewStatement.java
@@ -76,7 +76,7 @@ public class CreateMaterializedViewStatement extends 
SchemaAlteringStatement
 {
 if (!baseName.hasKeyspace())
 baseName.setKeyspace(keyspace(), true);
-state.hasKeyspaceAccess(keyspace(), Permission.CREATE);
+state.hasColumnFamilyAccess(keyspace(), baseName.getColumnFamily(), 
Permission.ALTER);
 }
 
 public void validate(ClientState state) throws RequestValidationException

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a9286c0/src/java/org/apache/cassandra/cql3/statements/DropMaterializedViewStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/DropMaterializedViewStatement.java
 
b/src/java/org/apache/cassandra/cql3/statements/DropMaterializedViewStatement.java
index 01d138c..8adba45 100644
--- 
a/src/java/org/apache/cassandra/cql3/stateme

cassandra git commit: Fix CHANGES.txt

2015-08-11 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 67269f699 -> 72acd6ba9


Fix CHANGES.txt


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/72acd6ba
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/72acd6ba
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/72acd6ba

Branch: refs/heads/cassandra-3.0
Commit: 72acd6ba9e9effcd2b1c3c6fc4b8537d9fd5d70c
Parents: 67269f6
Author: Aleksey Yeschenko 
Authored: Tue Aug 11 21:40:30 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 11 21:40:30 2015 +0300

--
 CHANGES.txt | 1 -
 1 file changed, 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/72acd6ba/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index b817cfd..d7e84bf 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -9,7 +9,6 @@
  * Optimize batchlog replay to avoid full scans (CASSANDRA-7237)
  * Repair improvements when using vnodes (CASSANDRA-5220)
  * Disable scripted UDFs by default (CASSANDRA-9889)
- * Add transparent data encryption core classes (CASSANDRA-9945)
  * Bytecode inspection for Java-UDFs (CASSANDRA-9890)
  * Use byte to serialize MT hash length (CASSANDRA-9792)
  * Replace usage of Adler32 with CRC32 (CASSANDRA-8684)



[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

2015-08-11 Thread aleksey
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/3462a23d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3462a23d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3462a23d

Branch: refs/heads/trunk
Commit: 3462a23dc2e2492f6a94ba131a16e4bce31b4b25
Parents: d9e9c94 72acd6b
Author: Aleksey Yeschenko 
Authored: Tue Aug 11 21:40:52 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 11 21:42:34 2015 +0300

--
 CHANGES.txt | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3462a23d/CHANGES.txt
--
diff --cc CHANGES.txt
index b817cfd,d7e84bf..0ebc6d5
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,3 -1,3 +1,7 @@@
++3.2
++ * Add transparent data encryption core classes (CASSANDRA-9945)
++
++
  3.0.0-beta1
   * Add option to only purge repaired tombstones (CASSANDRA-6434)
   * Change authorization handling for MVs (CASSANDRA-9927)



[1/2] cassandra git commit: Fix CHANGES.txt

2015-08-11 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk d9e9c948d -> 3462a23dc


Fix CHANGES.txt


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/72acd6ba
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/72acd6ba
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/72acd6ba

Branch: refs/heads/trunk
Commit: 72acd6ba9e9effcd2b1c3c6fc4b8537d9fd5d70c
Parents: 67269f6
Author: Aleksey Yeschenko 
Authored: Tue Aug 11 21:40:30 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Tue Aug 11 21:40:30 2015 +0300

--
 CHANGES.txt | 1 -
 1 file changed, 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/72acd6ba/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index b817cfd..d7e84bf 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -9,7 +9,6 @@
  * Optimize batchlog replay to avoid full scans (CASSANDRA-7237)
  * Repair improvements when using vnodes (CASSANDRA-5220)
  * Disable scripted UDFs by default (CASSANDRA-9889)
- * Add transparent data encryption core classes (CASSANDRA-9945)
  * Bytecode inspection for Java-UDFs (CASSANDRA-9890)
  * Use byte to serialize MT hash length (CASSANDRA-9792)
  * Replace usage of Adler32 with CRC32 (CASSANDRA-8684)



cassandra git commit: Follow-up to CASSANDRA-9265

2015-08-12 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 5c88651a4 -> 85d550f94


Follow-up to CASSANDRA-9265

patch by Aleksey Yeschenko


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/85d550f9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/85d550f9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/85d550f9

Branch: refs/heads/cassandra-2.2
Commit: 85d550f9460ce763acb97ad0740f6ea495f911d3
Parents: 5c88651
Author: Aleksey Yeschenko 
Authored: Thu Aug 13 01:48:01 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 13 01:48:07 2015 +0300

--
 .../io/util/ChecksummedRandomAccessReader.java | 17 +++--
 1 file changed, 11 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/85d550f9/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
--
diff --git 
a/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java 
b/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
index 60b193a..442236d 100644
--- a/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
+++ b/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
@@ -15,7 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.cassandra.io.util;
 
 import java.io.File;
@@ -32,7 +31,9 @@ public class ChecksummedRandomAccessReader extends 
RandomAccessReader
 {
 public final File file;
 
-public CorruptFileException(Exception cause, File file) {
+public CorruptFileException(Exception cause, File file)
+{
+super(cause);
 this.file = file;
 }
 }
@@ -40,7 +41,8 @@ public class ChecksummedRandomAccessReader extends 
RandomAccessReader
 private final DataIntegrityMetadata.ChecksumValidator validator;
 private final File file;
 
-protected ChecksummedRandomAccessReader(File file, ChannelProxy channel, 
DataIntegrityMetadata.ChecksumValidator validator) throws IOException {
+protected ChecksummedRandomAccessReader(File file, ChannelProxy channel, 
DataIntegrityMetadata.ChecksumValidator validator)
+{
 super(channel, validator.chunkSize, -1, BufferType.ON_HEAP, null);
 this.validator = validator;
 this.file = file;
@@ -51,13 +53,14 @@ public class ChecksummedRandomAccessReader extends 
RandomAccessReader
 try (ChannelProxy channel = new ChannelProxy(file))
 {
 RandomAccessReader crcReader = RandomAccessReader.open(crcFile);
-DataIntegrityMetadata.ChecksumValidator validator = new 
DataIntegrityMetadata.ChecksumValidator(new Adler32(),
-   
 crcReader,
-   
 file.getPath());
+@SuppressWarnings("resource")
+DataIntegrityMetadata.ChecksumValidator validator =
+new DataIntegrityMetadata.ChecksumValidator(new Adler32(), 
crcReader, file.getPath());
 return new ChecksummedRandomAccessReader(file, channel, validator);
 }
 }
 
+@Override
 protected void reBuffer()
 {
 long desiredPosition = current();
@@ -89,12 +92,14 @@ public class ChecksummedRandomAccessReader extends 
RandomAccessReader
 buffer.position((int) (desiredPosition - bufferOffset));
 }
 
+@Override
 public void seek(long newPosition)
 {
 validator.seek(newPosition);
 super.seek(newPosition);
 }
 
+@Override
 public void close()
 {
 super.close();



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

2015-08-12 Thread aleksey
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/ac61af8e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ac61af8e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ac61af8e

Branch: refs/heads/trunk
Commit: ac61af8e3d85dd8ecdb4642ed64c27bcf7b2b89a
Parents: bfd2e08 0ff2a5b
Author: Aleksey Yeschenko 
Authored: Thu Aug 13 01:50:37 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 13 01:50:37 2015 +0300

--
 .../io/util/ChecksummedRandomAccessReader.java | 13 -
 1 file changed, 8 insertions(+), 5 deletions(-)
--




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

2015-08-12 Thread aleksey
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/0ff2a5b7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0ff2a5b7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0ff2a5b7

Branch: refs/heads/cassandra-3.0
Commit: 0ff2a5b712363dae742807005f11bb03201b4237
Parents: e51f83b 85d550f
Author: Aleksey Yeschenko 
Authored: Thu Aug 13 01:50:17 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 13 01:50:17 2015 +0300

--
 .../io/util/ChecksummedRandomAccessReader.java | 13 -
 1 file changed, 8 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0ff2a5b7/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
--
diff --cc 
src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
index 3fc247b,442236d..98869a1
--- a/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
+++ b/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
@@@ -41,23 -41,26 +41,24 @@@ public class ChecksummedRandomAccessRea
  private final DataIntegrityMetadata.ChecksumValidator validator;
  private final File file;
  
- protected ChecksummedRandomAccessReader(File file, ChannelProxy channel, 
DataIntegrityMetadata.ChecksumValidator validator) throws IOException
+ protected ChecksummedRandomAccessReader(File file, ChannelProxy channel, 
DataIntegrityMetadata.ChecksumValidator validator)
  {
 -super(channel, validator.chunkSize, -1, BufferType.ON_HEAP, null);
 +super(channel, validator.chunkSize, -1, BufferType.ON_HEAP);
  this.validator = validator;
  this.file = file;
  }
  
++@SuppressWarnings("resource")
  public static ChecksummedRandomAccessReader open(File file, File crcFile) 
throws IOException
  {
 -try (ChannelProxy channel = new ChannelProxy(file))
 -{
 -RandomAccessReader crcReader = RandomAccessReader.open(crcFile);
 -@SuppressWarnings("resource")
 -DataIntegrityMetadata.ChecksumValidator validator =
 -new DataIntegrityMetadata.ChecksumValidator(new Adler32(), 
crcReader, file.getPath());
 -return new ChecksummedRandomAccessReader(file, channel, 
validator);
 -}
 +ChannelProxy channel = new ChannelProxy(file);
 +RandomAccessReader crcReader = RandomAccessReader.open(crcFile);
- DataIntegrityMetadata.ChecksumValidator validator = new 
DataIntegrityMetadata.ChecksumValidator(new CRC32(),
-   
  crcReader,
-   
  file.getPath());
++DataIntegrityMetadata.ChecksumValidator validator =
++new DataIntegrityMetadata.ChecksumValidator(new CRC32(), 
crcReader, file.getPath());
 +return new ChecksummedRandomAccessReader(file, channel, validator);
  }
  
+ @Override
  protected void reBuffer()
  {
  long desiredPosition = current();
@@@ -95,16 -99,10 +97,17 @@@
  super.seek(newPosition);
  }
  
+ @Override
  public void close()
  {
 -super.close();
 -validator.close();
 +try
 +{
 +super.close();
 +}
 +finally
 +{
 +channel.close();
 +validator.close();
 +}
  }
  }



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

2015-08-12 Thread aleksey
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/0ff2a5b7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0ff2a5b7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0ff2a5b7

Branch: refs/heads/trunk
Commit: 0ff2a5b712363dae742807005f11bb03201b4237
Parents: e51f83b 85d550f
Author: Aleksey Yeschenko 
Authored: Thu Aug 13 01:50:17 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 13 01:50:17 2015 +0300

--
 .../io/util/ChecksummedRandomAccessReader.java | 13 -
 1 file changed, 8 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0ff2a5b7/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
--
diff --cc 
src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
index 3fc247b,442236d..98869a1
--- a/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
+++ b/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
@@@ -41,23 -41,26 +41,24 @@@ public class ChecksummedRandomAccessRea
  private final DataIntegrityMetadata.ChecksumValidator validator;
  private final File file;
  
- protected ChecksummedRandomAccessReader(File file, ChannelProxy channel, 
DataIntegrityMetadata.ChecksumValidator validator) throws IOException
+ protected ChecksummedRandomAccessReader(File file, ChannelProxy channel, 
DataIntegrityMetadata.ChecksumValidator validator)
  {
 -super(channel, validator.chunkSize, -1, BufferType.ON_HEAP, null);
 +super(channel, validator.chunkSize, -1, BufferType.ON_HEAP);
  this.validator = validator;
  this.file = file;
  }
  
++@SuppressWarnings("resource")
  public static ChecksummedRandomAccessReader open(File file, File crcFile) 
throws IOException
  {
 -try (ChannelProxy channel = new ChannelProxy(file))
 -{
 -RandomAccessReader crcReader = RandomAccessReader.open(crcFile);
 -@SuppressWarnings("resource")
 -DataIntegrityMetadata.ChecksumValidator validator =
 -new DataIntegrityMetadata.ChecksumValidator(new Adler32(), 
crcReader, file.getPath());
 -return new ChecksummedRandomAccessReader(file, channel, 
validator);
 -}
 +ChannelProxy channel = new ChannelProxy(file);
 +RandomAccessReader crcReader = RandomAccessReader.open(crcFile);
- DataIntegrityMetadata.ChecksumValidator validator = new 
DataIntegrityMetadata.ChecksumValidator(new CRC32(),
-   
  crcReader,
-   
  file.getPath());
++DataIntegrityMetadata.ChecksumValidator validator =
++new DataIntegrityMetadata.ChecksumValidator(new CRC32(), 
crcReader, file.getPath());
 +return new ChecksummedRandomAccessReader(file, channel, validator);
  }
  
+ @Override
  protected void reBuffer()
  {
  long desiredPosition = current();
@@@ -95,16 -99,10 +97,17 @@@
  super.seek(newPosition);
  }
  
+ @Override
  public void close()
  {
 -super.close();
 -validator.close();
 +try
 +{
 +super.close();
 +}
 +finally
 +{
 +channel.close();
 +validator.close();
 +}
  }
  }



[1/3] cassandra git commit: Follow-up to CASSANDRA-9265

2015-08-12 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk bfd2e0820 -> ac61af8e3


Follow-up to CASSANDRA-9265

patch by Aleksey Yeschenko


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/85d550f9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/85d550f9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/85d550f9

Branch: refs/heads/trunk
Commit: 85d550f9460ce763acb97ad0740f6ea495f911d3
Parents: 5c88651
Author: Aleksey Yeschenko 
Authored: Thu Aug 13 01:48:01 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 13 01:48:07 2015 +0300

--
 .../io/util/ChecksummedRandomAccessReader.java | 17 +++--
 1 file changed, 11 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/85d550f9/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
--
diff --git 
a/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java 
b/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
index 60b193a..442236d 100644
--- a/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
+++ b/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
@@ -15,7 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.cassandra.io.util;
 
 import java.io.File;
@@ -32,7 +31,9 @@ public class ChecksummedRandomAccessReader extends 
RandomAccessReader
 {
 public final File file;
 
-public CorruptFileException(Exception cause, File file) {
+public CorruptFileException(Exception cause, File file)
+{
+super(cause);
 this.file = file;
 }
 }
@@ -40,7 +41,8 @@ public class ChecksummedRandomAccessReader extends 
RandomAccessReader
 private final DataIntegrityMetadata.ChecksumValidator validator;
 private final File file;
 
-protected ChecksummedRandomAccessReader(File file, ChannelProxy channel, 
DataIntegrityMetadata.ChecksumValidator validator) throws IOException {
+protected ChecksummedRandomAccessReader(File file, ChannelProxy channel, 
DataIntegrityMetadata.ChecksumValidator validator)
+{
 super(channel, validator.chunkSize, -1, BufferType.ON_HEAP, null);
 this.validator = validator;
 this.file = file;
@@ -51,13 +53,14 @@ public class ChecksummedRandomAccessReader extends 
RandomAccessReader
 try (ChannelProxy channel = new ChannelProxy(file))
 {
 RandomAccessReader crcReader = RandomAccessReader.open(crcFile);
-DataIntegrityMetadata.ChecksumValidator validator = new 
DataIntegrityMetadata.ChecksumValidator(new Adler32(),
-   
 crcReader,
-   
 file.getPath());
+@SuppressWarnings("resource")
+DataIntegrityMetadata.ChecksumValidator validator =
+new DataIntegrityMetadata.ChecksumValidator(new Adler32(), 
crcReader, file.getPath());
 return new ChecksummedRandomAccessReader(file, channel, validator);
 }
 }
 
+@Override
 protected void reBuffer()
 {
 long desiredPosition = current();
@@ -89,12 +92,14 @@ public class ChecksummedRandomAccessReader extends 
RandomAccessReader
 buffer.position((int) (desiredPosition - bufferOffset));
 }
 
+@Override
 public void seek(long newPosition)
 {
 validator.seek(newPosition);
 super.seek(newPosition);
 }
 
+@Override
 public void close()
 {
 super.close();



[1/2] cassandra git commit: Follow-up to CASSANDRA-9265

2015-08-12 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 e51f83b60 -> 0ff2a5b71


Follow-up to CASSANDRA-9265

patch by Aleksey Yeschenko


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/85d550f9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/85d550f9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/85d550f9

Branch: refs/heads/cassandra-3.0
Commit: 85d550f9460ce763acb97ad0740f6ea495f911d3
Parents: 5c88651
Author: Aleksey Yeschenko 
Authored: Thu Aug 13 01:48:01 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 13 01:48:07 2015 +0300

--
 .../io/util/ChecksummedRandomAccessReader.java | 17 +++--
 1 file changed, 11 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/85d550f9/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
--
diff --git 
a/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java 
b/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
index 60b193a..442236d 100644
--- a/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
+++ b/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
@@ -15,7 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.cassandra.io.util;
 
 import java.io.File;
@@ -32,7 +31,9 @@ public class ChecksummedRandomAccessReader extends 
RandomAccessReader
 {
 public final File file;
 
-public CorruptFileException(Exception cause, File file) {
+public CorruptFileException(Exception cause, File file)
+{
+super(cause);
 this.file = file;
 }
 }
@@ -40,7 +41,8 @@ public class ChecksummedRandomAccessReader extends 
RandomAccessReader
 private final DataIntegrityMetadata.ChecksumValidator validator;
 private final File file;
 
-protected ChecksummedRandomAccessReader(File file, ChannelProxy channel, 
DataIntegrityMetadata.ChecksumValidator validator) throws IOException {
+protected ChecksummedRandomAccessReader(File file, ChannelProxy channel, 
DataIntegrityMetadata.ChecksumValidator validator)
+{
 super(channel, validator.chunkSize, -1, BufferType.ON_HEAP, null);
 this.validator = validator;
 this.file = file;
@@ -51,13 +53,14 @@ public class ChecksummedRandomAccessReader extends 
RandomAccessReader
 try (ChannelProxy channel = new ChannelProxy(file))
 {
 RandomAccessReader crcReader = RandomAccessReader.open(crcFile);
-DataIntegrityMetadata.ChecksumValidator validator = new 
DataIntegrityMetadata.ChecksumValidator(new Adler32(),
-   
 crcReader,
-   
 file.getPath());
+@SuppressWarnings("resource")
+DataIntegrityMetadata.ChecksumValidator validator =
+new DataIntegrityMetadata.ChecksumValidator(new Adler32(), 
crcReader, file.getPath());
 return new ChecksummedRandomAccessReader(file, channel, validator);
 }
 }
 
+@Override
 protected void reBuffer()
 {
 long desiredPosition = current();
@@ -89,12 +92,14 @@ public class ChecksummedRandomAccessReader extends 
RandomAccessReader
 buffer.position((int) (desiredPosition - bufferOffset));
 }
 
+@Override
 public void seek(long newPosition)
 {
 validator.seek(newPosition);
 super.seek(newPosition);
 }
 
+@Override
 public void close()
 {
 super.close();



cassandra git commit: Improve assertions around some of the usage of AbstractBounds

2015-08-14 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 10be826e7 -> 3aa7308e8


Improve assertions around some of the usage of AbstractBounds

patch by Sylvain Lebresne and Ariel Weisberg; reviewed by Aleksey
Yeschenko for CASSANDRA-9462


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3aa7308e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3aa7308e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3aa7308e

Branch: refs/heads/cassandra-2.2
Commit: 3aa7308e8f86969158c8d919c3f77658ae7c4fc3
Parents: 10be826
Author: Sylvain Lebresne 
Authored: Wed Aug 12 16:34:07 2015 -0400
Committer: Aleksey Yeschenko 
Committed: Fri Aug 14 21:20:17 2015 +0300

--
 .../apache/cassandra/db/ColumnFamilyStore.java  | 18 +++---
 .../cassandra/db/SizeEstimatesRecorder.java |  3 ++-
 .../org/apache/cassandra/db/lifecycle/View.java | 13 +++---
 .../apache/cassandra/dht/AbstractBounds.java| 25 
 src/java/org/apache/cassandra/dht/Bounds.java   |  2 +-
 .../apache/cassandra/dht/ExcludingBounds.java   |  2 +-
 .../cassandra/dht/IncludingExcludingBounds.java |  2 +-
 .../cassandra/streaming/StreamSession.java  | 19 ---
 .../apache/cassandra/db/lifecycle/ViewTest.java |  7 +++---
 9 files changed, 70 insertions(+), 21 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3aa7308e/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 482e3ee..8bda6b2 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -1929,11 +1929,17 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
  */
 public Function> viewFilter(final 
AbstractBounds rowBounds)
 {
+assert !AbstractBounds.strictlyWrapsAround(rowBounds.left, 
rowBounds.right);
 return new Function>()
 {
 public List apply(View view)
 {
-return 
compactionStrategyWrapper.filterSSTablesForReads(view.sstablesInBounds(rowBounds));
+// Note that View.sstablesInBounds always includes it's bound 
while rowBounds may not. This is ok however
+// because the fact we restrict the sstables returned by this 
function is an optimization in the first
+// place and the returned sstables will (almost) never cover 
*exactly* rowBounds anyway. It's also
+// *very* unlikely that a sstable is included *just* because 
we consider one of the bound inclusively
+// instead of exclusively, so the performance impact is 
negligible in practice.
+return view.sstablesInBounds(rowBounds.left, rowBounds.right);
 }
 };
 }
@@ -1944,6 +1950,7 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
  */
 public Function> viewFilter(final 
Collection> rowBoundsCollection, final boolean 
includeRepaired)
 {
+assert AbstractBounds.noneStrictlyWrapsAround(rowBoundsCollection);
 return new Function>()
 {
 public List apply(View view)
@@ -1951,7 +1958,12 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 Set sstables = Sets.newHashSet();
 for (AbstractBounds rowBounds : 
rowBoundsCollection)
 {
-for (SSTableReader sstable : 
view.sstablesInBounds(rowBounds))
+// Note that View.sstablesInBounds always includes it's 
bound while rowBounds may not. This is ok however
+// because the fact we restrict the sstables returned by 
this function is an optimization in the first
+// place and the returned sstables will (almost) never 
cover *exactly* rowBounds anyway. It's also
+// *very* unlikely that a sstable is included *just* 
because we consider one of the bound inclusively
+// instead of exclusively, so the performance impact is 
negligible in practice.
+for (SSTableReader sstable : 
view.sstablesInBounds(rowBounds.left, rowBounds.right))
 {
 if (includeRepaired || !sstable.isRepaired())
 sstables.add(sstable);
@@ -2335,7 +2347,7 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 {
 if (!manifestFile.getParentFile().exists())
 manifestFile.getParentFile().mkdirs();
-
+
 try (PrintStr

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

2015-08-14 Thread aleksey
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/99e0c907
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/99e0c907
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/99e0c907

Branch: refs/heads/cassandra-3.0
Commit: 99e0c907eabc26f876f984daf33fdc2d3ab66a24
Parents: 507ed14 3aa7308
Author: Aleksey Yeschenko 
Authored: Fri Aug 14 21:27:08 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Fri Aug 14 21:27:08 2015 +0300

--
 .../apache/cassandra/db/ColumnFamilyStore.java  |  2 +-
 .../cassandra/db/SizeEstimatesRecorder.java |  3 ++-
 .../org/apache/cassandra/db/lifecycle/View.java | 20 
 .../apache/cassandra/dht/AbstractBounds.java| 25 
 src/java/org/apache/cassandra/dht/Bounds.java   |  2 +-
 .../apache/cassandra/dht/ExcludingBounds.java   |  2 +-
 .../cassandra/dht/IncludingExcludingBounds.java |  2 +-
 .../cassandra/streaming/StreamSession.java  | 16 +
 .../apache/cassandra/db/lifecycle/ViewTest.java |  8 ---
 9 files changed, 63 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/99e0c907/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
--
diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 797e2c7,8bda6b2..8d72ecf
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@@ -1179,7 -1394,7 +1179,7 @@@ public class ColumnFamilyStore implemen
  Set results = null;
  for (SSTableReader sstable : sstables)
  {
- Set overlaps = 
ImmutableSet.copyOf(view.sstablesInBounds(sstableSet, 
AbstractBounds.bounds(sstable.first, true, sstable.last, true)));
 -Set overlaps = 
ImmutableSet.copyOf(tree.search(Interval.create(sstable.first, sstable.last)));
++Set overlaps = 
ImmutableSet.copyOf(view.sstablesInBounds(sstableSet, sstable.first, 
sstable.last));
  results = results == null ? overlaps : Sets.union(results, 
overlaps).immutableCopy();
  }
  results = Sets.difference(results, ImmutableSet.copyOf(sstables));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/99e0c907/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/99e0c907/src/java/org/apache/cassandra/db/lifecycle/View.java
--
diff --cc src/java/org/apache/cassandra/db/lifecycle/View.java
index 75590fa,73ba131..7ee0fdf
--- a/src/java/org/apache/cassandra/db/lifecycle/View.java
+++ b/src/java/org/apache/cassandra/db/lifecycle/View.java
@@@ -176,41 -126,19 +176,53 @@@ public class Vie
  return String.format("View(pending_count=%d, sstables=%s, 
compacting=%s)", liveMemtables.size() + flushingMemtables.size() - 1, sstables, 
compacting);
  }
  
- public Iterable sstablesInBounds(SSTableSet sstableSet, 
AbstractBounds rowBounds)
+ /**
 -  * Returns the sstables that have any partition between {@code left} and 
{@code right}, when both bounds are taken inclusively.
 -  * The interval formed by {@code left} and {@code right} shouldn't wrap.
 -  */
 -public List sstablesInBounds(RowPosition left, RowPosition 
right)
++ * Returns the sstables that have any partition between {@code left} and 
{@code right}, when both bounds are taken inclusively.
++ * The interval formed by {@code left} and {@code right} shouldn't wrap.
++ */
++public Iterable sstablesInBounds(SSTableSet sstableSet, 
PartitionPosition left, PartitionPosition right)
  {
+ assert !AbstractBounds.strictlyWrapsAround(left, right);
+ 
  if (intervalTree.isEmpty())
  return Collections.emptyList();
- PartitionPosition stopInTree = rowBounds.right.isMinimum() ? 
intervalTree.max() : rowBounds.right;
- return select(sstableSet, 
intervalTree.search(Interval.create(rowBounds.left, stopInTree)));
+ 
 -RowPosition stopInTree = right.isMinimum() ? intervalTree.max() : 
right;
 -return intervalTree.search(Interval.create(left, stopInTree));
++PartitionPosition stopInTree = right.isMinimum() ? intervalTree.max() 
: right;
++return select(sstableSet, intervalTree.search(Interval.create(left, 
stopInTree)));
 +}
 +
 +public static Function> select(SSTableSet 
sstableSet)
 +{
 +return (view) -> view.sstables(sstableSet);
 +}
 +
 +public static Function> select(SSTableSet 
sstableSet, Pre

[1/2] cassandra git commit: Improve assertions around some of the usage of AbstractBounds

2015-08-14 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 507ed1484 -> 99e0c907e


Improve assertions around some of the usage of AbstractBounds

patch by Sylvain Lebresne and Ariel Weisberg; reviewed by Aleksey
Yeschenko for CASSANDRA-9462


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3aa7308e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3aa7308e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3aa7308e

Branch: refs/heads/cassandra-3.0
Commit: 3aa7308e8f86969158c8d919c3f77658ae7c4fc3
Parents: 10be826
Author: Sylvain Lebresne 
Authored: Wed Aug 12 16:34:07 2015 -0400
Committer: Aleksey Yeschenko 
Committed: Fri Aug 14 21:20:17 2015 +0300

--
 .../apache/cassandra/db/ColumnFamilyStore.java  | 18 +++---
 .../cassandra/db/SizeEstimatesRecorder.java |  3 ++-
 .../org/apache/cassandra/db/lifecycle/View.java | 13 +++---
 .../apache/cassandra/dht/AbstractBounds.java| 25 
 src/java/org/apache/cassandra/dht/Bounds.java   |  2 +-
 .../apache/cassandra/dht/ExcludingBounds.java   |  2 +-
 .../cassandra/dht/IncludingExcludingBounds.java |  2 +-
 .../cassandra/streaming/StreamSession.java  | 19 ---
 .../apache/cassandra/db/lifecycle/ViewTest.java |  7 +++---
 9 files changed, 70 insertions(+), 21 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3aa7308e/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 482e3ee..8bda6b2 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -1929,11 +1929,17 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
  */
 public Function> viewFilter(final 
AbstractBounds rowBounds)
 {
+assert !AbstractBounds.strictlyWrapsAround(rowBounds.left, 
rowBounds.right);
 return new Function>()
 {
 public List apply(View view)
 {
-return 
compactionStrategyWrapper.filterSSTablesForReads(view.sstablesInBounds(rowBounds));
+// Note that View.sstablesInBounds always includes it's bound 
while rowBounds may not. This is ok however
+// because the fact we restrict the sstables returned by this 
function is an optimization in the first
+// place and the returned sstables will (almost) never cover 
*exactly* rowBounds anyway. It's also
+// *very* unlikely that a sstable is included *just* because 
we consider one of the bound inclusively
+// instead of exclusively, so the performance impact is 
negligible in practice.
+return view.sstablesInBounds(rowBounds.left, rowBounds.right);
 }
 };
 }
@@ -1944,6 +1950,7 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
  */
 public Function> viewFilter(final 
Collection> rowBoundsCollection, final boolean 
includeRepaired)
 {
+assert AbstractBounds.noneStrictlyWrapsAround(rowBoundsCollection);
 return new Function>()
 {
 public List apply(View view)
@@ -1951,7 +1958,12 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 Set sstables = Sets.newHashSet();
 for (AbstractBounds rowBounds : 
rowBoundsCollection)
 {
-for (SSTableReader sstable : 
view.sstablesInBounds(rowBounds))
+// Note that View.sstablesInBounds always includes it's 
bound while rowBounds may not. This is ok however
+// because the fact we restrict the sstables returned by 
this function is an optimization in the first
+// place and the returned sstables will (almost) never 
cover *exactly* rowBounds anyway. It's also
+// *very* unlikely that a sstable is included *just* 
because we consider one of the bound inclusively
+// instead of exclusively, so the performance impact is 
negligible in practice.
+for (SSTableReader sstable : 
view.sstablesInBounds(rowBounds.left, rowBounds.right))
 {
 if (includeRepaired || !sstable.isRepaired())
 sstables.add(sstable);
@@ -2335,7 +2347,7 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 {
 if (!manifestFile.getParentFile().exists())
 manifestFile.getParentFile().mkdirs();
-
+
 try (PrintStr

[1/3] cassandra git commit: Improve assertions around some of the usage of AbstractBounds

2015-08-14 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 7a4226f0c -> 45faed014


Improve assertions around some of the usage of AbstractBounds

patch by Sylvain Lebresne and Ariel Weisberg; reviewed by Aleksey
Yeschenko for CASSANDRA-9462


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3aa7308e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3aa7308e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3aa7308e

Branch: refs/heads/trunk
Commit: 3aa7308e8f86969158c8d919c3f77658ae7c4fc3
Parents: 10be826
Author: Sylvain Lebresne 
Authored: Wed Aug 12 16:34:07 2015 -0400
Committer: Aleksey Yeschenko 
Committed: Fri Aug 14 21:20:17 2015 +0300

--
 .../apache/cassandra/db/ColumnFamilyStore.java  | 18 +++---
 .../cassandra/db/SizeEstimatesRecorder.java |  3 ++-
 .../org/apache/cassandra/db/lifecycle/View.java | 13 +++---
 .../apache/cassandra/dht/AbstractBounds.java| 25 
 src/java/org/apache/cassandra/dht/Bounds.java   |  2 +-
 .../apache/cassandra/dht/ExcludingBounds.java   |  2 +-
 .../cassandra/dht/IncludingExcludingBounds.java |  2 +-
 .../cassandra/streaming/StreamSession.java  | 19 ---
 .../apache/cassandra/db/lifecycle/ViewTest.java |  7 +++---
 9 files changed, 70 insertions(+), 21 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3aa7308e/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 482e3ee..8bda6b2 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -1929,11 +1929,17 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
  */
 public Function> viewFilter(final 
AbstractBounds rowBounds)
 {
+assert !AbstractBounds.strictlyWrapsAround(rowBounds.left, 
rowBounds.right);
 return new Function>()
 {
 public List apply(View view)
 {
-return 
compactionStrategyWrapper.filterSSTablesForReads(view.sstablesInBounds(rowBounds));
+// Note that View.sstablesInBounds always includes it's bound 
while rowBounds may not. This is ok however
+// because the fact we restrict the sstables returned by this 
function is an optimization in the first
+// place and the returned sstables will (almost) never cover 
*exactly* rowBounds anyway. It's also
+// *very* unlikely that a sstable is included *just* because 
we consider one of the bound inclusively
+// instead of exclusively, so the performance impact is 
negligible in practice.
+return view.sstablesInBounds(rowBounds.left, rowBounds.right);
 }
 };
 }
@@ -1944,6 +1950,7 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
  */
 public Function> viewFilter(final 
Collection> rowBoundsCollection, final boolean 
includeRepaired)
 {
+assert AbstractBounds.noneStrictlyWrapsAround(rowBoundsCollection);
 return new Function>()
 {
 public List apply(View view)
@@ -1951,7 +1958,12 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 Set sstables = Sets.newHashSet();
 for (AbstractBounds rowBounds : 
rowBoundsCollection)
 {
-for (SSTableReader sstable : 
view.sstablesInBounds(rowBounds))
+// Note that View.sstablesInBounds always includes it's 
bound while rowBounds may not. This is ok however
+// because the fact we restrict the sstables returned by 
this function is an optimization in the first
+// place and the returned sstables will (almost) never 
cover *exactly* rowBounds anyway. It's also
+// *very* unlikely that a sstable is included *just* 
because we consider one of the bound inclusively
+// instead of exclusively, so the performance impact is 
negligible in practice.
+for (SSTableReader sstable : 
view.sstablesInBounds(rowBounds.left, rowBounds.right))
 {
 if (includeRepaired || !sstable.isRepaired())
 sstables.add(sstable);
@@ -2335,7 +2347,7 @@ public class ColumnFamilyStore implements 
ColumnFamilyStoreMBean
 {
 if (!manifestFile.getParentFile().exists())
 manifestFile.getParentFile().mkdirs();
-
+
 try (PrintStr

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

2015-08-14 Thread aleksey
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/99e0c907
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/99e0c907
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/99e0c907

Branch: refs/heads/trunk
Commit: 99e0c907eabc26f876f984daf33fdc2d3ab66a24
Parents: 507ed14 3aa7308
Author: Aleksey Yeschenko 
Authored: Fri Aug 14 21:27:08 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Fri Aug 14 21:27:08 2015 +0300

--
 .../apache/cassandra/db/ColumnFamilyStore.java  |  2 +-
 .../cassandra/db/SizeEstimatesRecorder.java |  3 ++-
 .../org/apache/cassandra/db/lifecycle/View.java | 20 
 .../apache/cassandra/dht/AbstractBounds.java| 25 
 src/java/org/apache/cassandra/dht/Bounds.java   |  2 +-
 .../apache/cassandra/dht/ExcludingBounds.java   |  2 +-
 .../cassandra/dht/IncludingExcludingBounds.java |  2 +-
 .../cassandra/streaming/StreamSession.java  | 16 +
 .../apache/cassandra/db/lifecycle/ViewTest.java |  8 ---
 9 files changed, 63 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/99e0c907/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
--
diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 797e2c7,8bda6b2..8d72ecf
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@@ -1179,7 -1394,7 +1179,7 @@@ public class ColumnFamilyStore implemen
  Set results = null;
  for (SSTableReader sstable : sstables)
  {
- Set overlaps = 
ImmutableSet.copyOf(view.sstablesInBounds(sstableSet, 
AbstractBounds.bounds(sstable.first, true, sstable.last, true)));
 -Set overlaps = 
ImmutableSet.copyOf(tree.search(Interval.create(sstable.first, sstable.last)));
++Set overlaps = 
ImmutableSet.copyOf(view.sstablesInBounds(sstableSet, sstable.first, 
sstable.last));
  results = results == null ? overlaps : Sets.union(results, 
overlaps).immutableCopy();
  }
  results = Sets.difference(results, ImmutableSet.copyOf(sstables));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/99e0c907/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/99e0c907/src/java/org/apache/cassandra/db/lifecycle/View.java
--
diff --cc src/java/org/apache/cassandra/db/lifecycle/View.java
index 75590fa,73ba131..7ee0fdf
--- a/src/java/org/apache/cassandra/db/lifecycle/View.java
+++ b/src/java/org/apache/cassandra/db/lifecycle/View.java
@@@ -176,41 -126,19 +176,53 @@@ public class Vie
  return String.format("View(pending_count=%d, sstables=%s, 
compacting=%s)", liveMemtables.size() + flushingMemtables.size() - 1, sstables, 
compacting);
  }
  
- public Iterable sstablesInBounds(SSTableSet sstableSet, 
AbstractBounds rowBounds)
+ /**
 -  * Returns the sstables that have any partition between {@code left} and 
{@code right}, when both bounds are taken inclusively.
 -  * The interval formed by {@code left} and {@code right} shouldn't wrap.
 -  */
 -public List sstablesInBounds(RowPosition left, RowPosition 
right)
++ * Returns the sstables that have any partition between {@code left} and 
{@code right}, when both bounds are taken inclusively.
++ * The interval formed by {@code left} and {@code right} shouldn't wrap.
++ */
++public Iterable sstablesInBounds(SSTableSet sstableSet, 
PartitionPosition left, PartitionPosition right)
  {
+ assert !AbstractBounds.strictlyWrapsAround(left, right);
+ 
  if (intervalTree.isEmpty())
  return Collections.emptyList();
- PartitionPosition stopInTree = rowBounds.right.isMinimum() ? 
intervalTree.max() : rowBounds.right;
- return select(sstableSet, 
intervalTree.search(Interval.create(rowBounds.left, stopInTree)));
+ 
 -RowPosition stopInTree = right.isMinimum() ? intervalTree.max() : 
right;
 -return intervalTree.search(Interval.create(left, stopInTree));
++PartitionPosition stopInTree = right.isMinimum() ? intervalTree.max() 
: right;
++return select(sstableSet, intervalTree.search(Interval.create(left, 
stopInTree)));
 +}
 +
 +public static Function> select(SSTableSet 
sstableSet)
 +{
 +return (view) -> view.sstables(sstableSet);
 +}
 +
 +public static Function> select(SSTableSet 
sstableSet, Predicate

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

2015-08-14 Thread aleksey
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/45faed01
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/45faed01
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/45faed01

Branch: refs/heads/trunk
Commit: 45faed0141add9e7a52c81f08a9e0ccc0d62d6c8
Parents: 7a4226f 99e0c90
Author: Aleksey Yeschenko 
Authored: Fri Aug 14 21:27:36 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Fri Aug 14 21:27:36 2015 +0300

--
 .../apache/cassandra/db/ColumnFamilyStore.java  |  2 +-
 .../cassandra/db/SizeEstimatesRecorder.java |  3 ++-
 .../org/apache/cassandra/db/lifecycle/View.java | 20 
 .../apache/cassandra/dht/AbstractBounds.java| 25 
 src/java/org/apache/cassandra/dht/Bounds.java   |  2 +-
 .../apache/cassandra/dht/ExcludingBounds.java   |  2 +-
 .../cassandra/dht/IncludingExcludingBounds.java |  2 +-
 .../cassandra/streaming/StreamSession.java  | 16 +
 .../apache/cassandra/db/lifecycle/ViewTest.java |  8 ---
 9 files changed, 63 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/45faed01/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
--



[2/4] cassandra git commit: Rewrite hinted handoff

2015-08-19 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/src/java/org/apache/cassandra/hints/HintsWriter.java
--
diff --git a/src/java/org/apache/cassandra/hints/HintsWriter.java 
b/src/java/org/apache/cassandra/hints/HintsWriter.java
new file mode 100644
index 000..300d9cc
--- /dev/null
+++ b/src/java/org/apache/cassandra/hints/HintsWriter.java
@@ -0,0 +1,272 @@
+/*
+ * 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.hints;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
+import java.nio.file.Files;
+import java.nio.file.StandardOpenOption;
+import java.util.zip.CRC32;
+
+import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.io.FSWriteError;
+import org.apache.cassandra.io.util.DataOutputBuffer;
+import org.apache.cassandra.io.util.DataOutputBufferFixed;
+import org.apache.cassandra.utils.CLibrary;
+import org.apache.cassandra.utils.SyncUtil;
+import org.apache.cassandra.utils.Throwables;
+
+import static org.apache.cassandra.utils.FBUtilities.updateChecksum;
+import static org.apache.cassandra.utils.FBUtilities.updateChecksumInt;
+import static org.apache.cassandra.utils.Throwables.perform;
+
+final class HintsWriter implements AutoCloseable
+{
+static final int PAGE_SIZE = 4096;
+
+private final File directory;
+private final HintsDescriptor descriptor;
+private final File file;
+private final FileChannel channel;
+private final int fd;
+private final CRC32 globalCRC;
+
+private volatile long lastSyncPosition = 0L;
+
+private HintsWriter(File directory, HintsDescriptor descriptor, File file, 
FileChannel channel, int fd, CRC32 globalCRC)
+{
+this.directory = directory;
+this.descriptor = descriptor;
+this.file = file;
+this.channel = channel;
+this.fd = fd;
+this.globalCRC = globalCRC;
+}
+
+static HintsWriter create(File directory, HintsDescriptor descriptor) 
throws IOException
+{
+File file = new File(directory, descriptor.fileName());
+
+FileChannel channel = FileChannel.open(file.toPath(), 
StandardOpenOption.WRITE, StandardOpenOption.CREATE_NEW);
+int fd = CLibrary.getfd(channel);
+
+CRC32 crc = new CRC32();
+
+try
+{
+// write the descriptor
+DataOutputBuffer dob = new DataOutputBuffer();
+descriptor.serialize(dob);
+ByteBuffer descriptorBytes = dob.buffer();
+updateChecksum(crc, descriptorBytes);
+channel.write(descriptorBytes);
+}
+catch (Throwable e)
+{
+channel.close();
+throw e;
+}
+
+return new HintsWriter(directory, descriptor, file, channel, fd, crc);
+}
+
+HintsDescriptor descriptor()
+{
+return descriptor;
+}
+
+private void writeChecksum()
+{
+File checksumFile = new File(directory, descriptor.checksumFileName());
+try (OutputStream out = Files.newOutputStream(checksumFile.toPath()))
+{
+out.write(Integer.toHexString((int) 
globalCRC.getValue()).getBytes());
+}
+catch (IOException e)
+{
+throw new FSWriteError(e, checksumFile);
+}
+}
+
+public void close()
+{
+perform(file, Throwables.FileOpType.WRITE, this::doFsync, 
channel::close);
+
+writeChecksum();
+}
+
+public void fsync()
+{
+perform(file, Throwables.FileOpType.WRITE, this::doFsync);
+}
+
+private void doFsync() throws IOException
+{
+SyncUtil.force(channel, true);
+lastSyncPosition = channel.position();
+}
+
+Session newSession(ByteBuffer buffer)
+{
+try
+{
+return new Session(buffer, channel.size());
+}
+catch (IOException e)
+{
+throw new FSWriteError(e, file);
+}
+}
+
+/**
+ * The primary goal of the Session class is to be able to share the same 
buffers among potentially dozens

[4/4] cassandra git commit: Rewrite hinted handoff

2015-08-19 Thread aleksey
Rewrite hinted handoff

patch by Aleksey Yeschenko; reviewed by Benedict Elliott Smith for
CASSANDRA-6230


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/96d41f0e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/96d41f0e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/96d41f0e

Branch: refs/heads/cassandra-3.0
Commit: 96d41f0e0e44d9b3114a5d80dedf12053d36a76b
Parents: 811ee6c
Author: Aleksey Yeschenko 
Authored: Sun Nov 23 18:29:38 2014 +0300
Committer: Aleksey Yeschenko 
Committed: Wed Aug 19 17:27:22 2015 +0300

--
 CHANGES.txt |   1 +
 NEWS.txt|   9 +-
 conf/cassandra.yaml |  13 +
 .../org/apache/cassandra/config/Config.java |   9 +-
 .../cassandra/config/DatabaseDescriptor.java|  51 +-
 .../apache/cassandra/db/BatchlogManager.java|  84 ++-
 .../cassandra/db/HintedHandOffManager.java  | 543 +--
 .../cassandra/db/HintedHandOffManagerMBean.java |   1 +
 src/java/org/apache/cassandra/db/Mutation.java  |  33 +-
 .../org/apache/cassandra/db/SystemKeyspace.java |  31 +-
 .../cassandra/db/commitlog/CommitLog.java   |  20 +-
 src/java/org/apache/cassandra/gms/Gossiper.java |  14 +
 .../cassandra/hints/ChecksummedDataInput.java   | 114 
 .../cassandra/hints/EncodedHintMessage.java |  89 +++
 src/java/org/apache/cassandra/hints/Hint.java   | 130 +
 .../org/apache/cassandra/hints/HintMessage.java | 130 +
 .../apache/cassandra/hints/HintResponse.java|  58 ++
 .../apache/cassandra/hints/HintVerbHandler.java |  89 +++
 .../org/apache/cassandra/hints/HintsBuffer.java | 261 +
 .../apache/cassandra/hints/HintsBufferPool.java | 120 
 .../apache/cassandra/hints/HintsCatalog.java| 128 +
 .../apache/cassandra/hints/HintsDescriptor.java | 242 +
 .../cassandra/hints/HintsDispatchExecutor.java  | 199 +++
 .../cassandra/hints/HintsDispatchTrigger.java   |  85 +++
 .../apache/cassandra/hints/HintsDispatcher.java | 228 
 .../org/apache/cassandra/hints/HintsReader.java | 312 +++
 .../apache/cassandra/hints/HintsService.java| 291 ++
 .../cassandra/hints/HintsServiceMBean.java  |  43 ++
 .../org/apache/cassandra/hints/HintsStore.java  | 210 +++
 .../cassandra/hints/HintsWriteExecutor.java | 235 
 .../org/apache/cassandra/hints/HintsWriter.java | 272 ++
 .../cassandra/hints/LegacyHintsMigrator.java| 243 +
 .../apache/cassandra/hints/package-info.java|  44 ++
 .../cassandra/metrics/HintedHandoffMetrics.java |   3 +-
 .../cassandra/metrics/HintsServiceMetrics.java  |  25 +
 .../apache/cassandra/net/MessagingService.java  |   9 +-
 .../cassandra/service/CassandraDaemon.java  |   4 +
 .../apache/cassandra/service/StartupChecks.java |  43 +-
 .../apache/cassandra/service/StorageProxy.java  | 209 +++
 .../cassandra/service/StorageService.java   |  68 ++-
 .../org/apache/cassandra/tools/NodeProbe.java   |   2 +-
 .../org/apache/cassandra/utils/FBUtilities.java |  32 +-
 .../org/apache/cassandra/utils/Throwables.java  |  90 ++-
 test/conf/cassandra.yaml|   1 +
 .../cassandra/hints/HintsWriteThenReadTest.java | 191 +++
 .../OffsetAwareConfigurationLoader.java |   1 +
 .../apache/cassandra/db/HintedHandOffTest.java  | 150 -
 .../cassandra/db/commitlog/CommitLogTest.java   |   4 +-
 .../hints/ChecksummedDataInputTest.java | 112 
 .../apache/cassandra/hints/HintMessageTest.java |  79 +++
 .../org/apache/cassandra/hints/HintTest.java| 231 
 .../apache/cassandra/hints/HintsBufferTest.java | 236 
 .../cassandra/hints/HintsCatalogTest.java   |  88 +++
 .../cassandra/hints/HintsDescriptorTest.java| 153 ++
 .../apache/cassandra/hints/HintsTestUtil.java   |  60 ++
 .../hints/LegacyHintsMigratorTest.java  | 195 +++
 .../metrics/HintedHandOffMetricsTest.java   |  56 ++
 .../cassandra/service/StorageProxyTest.java |   3 +-
 58 files changed, 5469 insertions(+), 908 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 54a6a07..0d17235 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.0-beta1
+ * Rewrite hinted handoff (CASSANDRA-6230)
  * Fix query on static compact tables (CASSANDRA-10093)
  * Fix race during construction of commit log (CASSANDRA-10049)
  * Add option to only purge repaired tombstones (CASSANDRA-6434)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/NEWS.txt
--
diff --git a/NEWS.txt

[3/4] cassandra git commit: Rewrite hinted handoff

2015-08-19 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/src/java/org/apache/cassandra/hints/HintVerbHandler.java
--
diff --git a/src/java/org/apache/cassandra/hints/HintVerbHandler.java 
b/src/java/org/apache/cassandra/hints/HintVerbHandler.java
new file mode 100644
index 000..458d01f
--- /dev/null
+++ b/src/java/org/apache/cassandra/hints/HintVerbHandler.java
@@ -0,0 +1,89 @@
+/*
+ * 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.hints;
+
+import java.net.InetAddress;
+import java.util.UUID;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.cassandra.db.partitions.PartitionUpdate;
+import org.apache.cassandra.net.IVerbHandler;
+import org.apache.cassandra.net.MessageIn;
+import org.apache.cassandra.net.MessagingService;
+import org.apache.cassandra.serializers.MarshalException;
+import org.apache.cassandra.service.StorageService;
+
+/**
+ * Verb handler used both for hint dispatch and streaming.
+ *
+ * With the non-sstable format, we cannot just stream hint sstables on node 
decommission. So sometimes, at decommission
+ * time, we might have to stream hints to a non-owning host (say, if the 
owning host B is down during decommission of host A).
+ * In that case the handler just stores the received hint in its local hint 
store.
+ */
+public final class HintVerbHandler implements IVerbHandler
+{
+private static final Logger logger = 
LoggerFactory.getLogger(HintVerbHandler.class);
+
+public void doVerb(MessageIn message, int id)
+{
+UUID hostId = message.payload.hostId;
+Hint hint = message.payload.hint;
+
+// If we see an unknown table id, it means the table, or one of the 
tables in the mutation, had been dropped.
+// In that case there is nothing we can really do, or should do, other 
than log it go on.
+// This will *not* happen due to a not-yet-seen table, because we 
don't transfer hints unless there
+// is schema agreement between the sender and the receiver.
+if (hint == null)
+{
+logger.debug("Failed to decode and apply a hint for {} - table 
with id {} is unknown",
+ hostId,
+ message.payload.unknownTableID);
+reply(id, message.from);
+return;
+}
+
+// We must perform validation before applying the hint, and there is 
no other place to do it other than here.
+try
+{
+
hint.mutation.getPartitionUpdates().forEach(PartitionUpdate::validate);
+}
+catch (MarshalException e)
+{
+logger.warn("Failed to validate a hint for {} (table id {}) - 
skipped", hostId);
+reply(id, message.from);
+return;
+}
+
+// Apply the hint if this node is the destination, store for future 
dispatch if this node isn't (must have gotten
+// it from a decommissioned node that had streamed it before going 
out).
+if (hostId.equals(StorageService.instance.getLocalHostUUID()))
+hint.apply();
+else
+HintsService.instance.write(hostId, hint);
+
+reply(id, message.from);
+}
+
+private static void reply(int id, InetAddress to)
+{
+MessagingService.instance().sendReply(HintResponse.message, id, to);
+}
+}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/src/java/org/apache/cassandra/hints/HintsBuffer.java
--
diff --git a/src/java/org/apache/cassandra/hints/HintsBuffer.java 
b/src/java/org/apache/cassandra/hints/HintsBuffer.java
new file mode 100644
index 000..097abce
--- /dev/null
+++ b/src/java/org/apache/cassandra/hints/HintsBuffer.java
@@ -0,0 +1,261 @@
+/*
+ * 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 exc

[4/5] cassandra git commit: Rewrite hinted handoff

2015-08-19 Thread aleksey
Rewrite hinted handoff

patch by Aleksey Yeschenko; reviewed by Benedict Elliott Smith for
CASSANDRA-6230


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/96d41f0e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/96d41f0e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/96d41f0e

Branch: refs/heads/trunk
Commit: 96d41f0e0e44d9b3114a5d80dedf12053d36a76b
Parents: 811ee6c
Author: Aleksey Yeschenko 
Authored: Sun Nov 23 18:29:38 2014 +0300
Committer: Aleksey Yeschenko 
Committed: Wed Aug 19 17:27:22 2015 +0300

--
 CHANGES.txt |   1 +
 NEWS.txt|   9 +-
 conf/cassandra.yaml |  13 +
 .../org/apache/cassandra/config/Config.java |   9 +-
 .../cassandra/config/DatabaseDescriptor.java|  51 +-
 .../apache/cassandra/db/BatchlogManager.java|  84 ++-
 .../cassandra/db/HintedHandOffManager.java  | 543 +--
 .../cassandra/db/HintedHandOffManagerMBean.java |   1 +
 src/java/org/apache/cassandra/db/Mutation.java  |  33 +-
 .../org/apache/cassandra/db/SystemKeyspace.java |  31 +-
 .../cassandra/db/commitlog/CommitLog.java   |  20 +-
 src/java/org/apache/cassandra/gms/Gossiper.java |  14 +
 .../cassandra/hints/ChecksummedDataInput.java   | 114 
 .../cassandra/hints/EncodedHintMessage.java |  89 +++
 src/java/org/apache/cassandra/hints/Hint.java   | 130 +
 .../org/apache/cassandra/hints/HintMessage.java | 130 +
 .../apache/cassandra/hints/HintResponse.java|  58 ++
 .../apache/cassandra/hints/HintVerbHandler.java |  89 +++
 .../org/apache/cassandra/hints/HintsBuffer.java | 261 +
 .../apache/cassandra/hints/HintsBufferPool.java | 120 
 .../apache/cassandra/hints/HintsCatalog.java| 128 +
 .../apache/cassandra/hints/HintsDescriptor.java | 242 +
 .../cassandra/hints/HintsDispatchExecutor.java  | 199 +++
 .../cassandra/hints/HintsDispatchTrigger.java   |  85 +++
 .../apache/cassandra/hints/HintsDispatcher.java | 228 
 .../org/apache/cassandra/hints/HintsReader.java | 312 +++
 .../apache/cassandra/hints/HintsService.java| 291 ++
 .../cassandra/hints/HintsServiceMBean.java  |  43 ++
 .../org/apache/cassandra/hints/HintsStore.java  | 210 +++
 .../cassandra/hints/HintsWriteExecutor.java | 235 
 .../org/apache/cassandra/hints/HintsWriter.java | 272 ++
 .../cassandra/hints/LegacyHintsMigrator.java| 243 +
 .../apache/cassandra/hints/package-info.java|  44 ++
 .../cassandra/metrics/HintedHandoffMetrics.java |   3 +-
 .../cassandra/metrics/HintsServiceMetrics.java  |  25 +
 .../apache/cassandra/net/MessagingService.java  |   9 +-
 .../cassandra/service/CassandraDaemon.java  |   4 +
 .../apache/cassandra/service/StartupChecks.java |  43 +-
 .../apache/cassandra/service/StorageProxy.java  | 209 +++
 .../cassandra/service/StorageService.java   |  68 ++-
 .../org/apache/cassandra/tools/NodeProbe.java   |   2 +-
 .../org/apache/cassandra/utils/FBUtilities.java |  32 +-
 .../org/apache/cassandra/utils/Throwables.java  |  90 ++-
 test/conf/cassandra.yaml|   1 +
 .../cassandra/hints/HintsWriteThenReadTest.java | 191 +++
 .../OffsetAwareConfigurationLoader.java |   1 +
 .../apache/cassandra/db/HintedHandOffTest.java  | 150 -
 .../cassandra/db/commitlog/CommitLogTest.java   |   4 +-
 .../hints/ChecksummedDataInputTest.java | 112 
 .../apache/cassandra/hints/HintMessageTest.java |  79 +++
 .../org/apache/cassandra/hints/HintTest.java| 231 
 .../apache/cassandra/hints/HintsBufferTest.java | 236 
 .../cassandra/hints/HintsCatalogTest.java   |  88 +++
 .../cassandra/hints/HintsDescriptorTest.java| 153 ++
 .../apache/cassandra/hints/HintsTestUtil.java   |  60 ++
 .../hints/LegacyHintsMigratorTest.java  | 195 +++
 .../metrics/HintedHandOffMetricsTest.java   |  56 ++
 .../cassandra/service/StorageProxyTest.java |   3 +-
 58 files changed, 5469 insertions(+), 908 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 54a6a07..0d17235 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.0-beta1
+ * Rewrite hinted handoff (CASSANDRA-6230)
  * Fix query on static compact tables (CASSANDRA-10093)
  * Fix race during construction of commit log (CASSANDRA-10049)
  * Add option to only purge repaired tombstones (CASSANDRA-6434)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/NEWS.txt
--
diff --git a/NEWS.txt b

[2/5] cassandra git commit: Rewrite hinted handoff

2015-08-19 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/src/java/org/apache/cassandra/hints/HintsWriter.java
--
diff --git a/src/java/org/apache/cassandra/hints/HintsWriter.java 
b/src/java/org/apache/cassandra/hints/HintsWriter.java
new file mode 100644
index 000..300d9cc
--- /dev/null
+++ b/src/java/org/apache/cassandra/hints/HintsWriter.java
@@ -0,0 +1,272 @@
+/*
+ * 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.hints;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
+import java.nio.file.Files;
+import java.nio.file.StandardOpenOption;
+import java.util.zip.CRC32;
+
+import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.io.FSWriteError;
+import org.apache.cassandra.io.util.DataOutputBuffer;
+import org.apache.cassandra.io.util.DataOutputBufferFixed;
+import org.apache.cassandra.utils.CLibrary;
+import org.apache.cassandra.utils.SyncUtil;
+import org.apache.cassandra.utils.Throwables;
+
+import static org.apache.cassandra.utils.FBUtilities.updateChecksum;
+import static org.apache.cassandra.utils.FBUtilities.updateChecksumInt;
+import static org.apache.cassandra.utils.Throwables.perform;
+
+final class HintsWriter implements AutoCloseable
+{
+static final int PAGE_SIZE = 4096;
+
+private final File directory;
+private final HintsDescriptor descriptor;
+private final File file;
+private final FileChannel channel;
+private final int fd;
+private final CRC32 globalCRC;
+
+private volatile long lastSyncPosition = 0L;
+
+private HintsWriter(File directory, HintsDescriptor descriptor, File file, 
FileChannel channel, int fd, CRC32 globalCRC)
+{
+this.directory = directory;
+this.descriptor = descriptor;
+this.file = file;
+this.channel = channel;
+this.fd = fd;
+this.globalCRC = globalCRC;
+}
+
+static HintsWriter create(File directory, HintsDescriptor descriptor) 
throws IOException
+{
+File file = new File(directory, descriptor.fileName());
+
+FileChannel channel = FileChannel.open(file.toPath(), 
StandardOpenOption.WRITE, StandardOpenOption.CREATE_NEW);
+int fd = CLibrary.getfd(channel);
+
+CRC32 crc = new CRC32();
+
+try
+{
+// write the descriptor
+DataOutputBuffer dob = new DataOutputBuffer();
+descriptor.serialize(dob);
+ByteBuffer descriptorBytes = dob.buffer();
+updateChecksum(crc, descriptorBytes);
+channel.write(descriptorBytes);
+}
+catch (Throwable e)
+{
+channel.close();
+throw e;
+}
+
+return new HintsWriter(directory, descriptor, file, channel, fd, crc);
+}
+
+HintsDescriptor descriptor()
+{
+return descriptor;
+}
+
+private void writeChecksum()
+{
+File checksumFile = new File(directory, descriptor.checksumFileName());
+try (OutputStream out = Files.newOutputStream(checksumFile.toPath()))
+{
+out.write(Integer.toHexString((int) 
globalCRC.getValue()).getBytes());
+}
+catch (IOException e)
+{
+throw new FSWriteError(e, checksumFile);
+}
+}
+
+public void close()
+{
+perform(file, Throwables.FileOpType.WRITE, this::doFsync, 
channel::close);
+
+writeChecksum();
+}
+
+public void fsync()
+{
+perform(file, Throwables.FileOpType.WRITE, this::doFsync);
+}
+
+private void doFsync() throws IOException
+{
+SyncUtil.force(channel, true);
+lastSyncPosition = channel.position();
+}
+
+Session newSession(ByteBuffer buffer)
+{
+try
+{
+return new Session(buffer, channel.size());
+}
+catch (IOException e)
+{
+throw new FSWriteError(e, file);
+}
+}
+
+/**
+ * The primary goal of the Session class is to be able to share the same 
buffers among potentially dozens

[1/5] cassandra git commit: Rewrite hinted handoff

2015-08-19 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk b83b674ee -> cabdb03a9


http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/test/unit/org/apache/cassandra/hints/HintMessageTest.java
--
diff --git a/test/unit/org/apache/cassandra/hints/HintMessageTest.java 
b/test/unit/org/apache/cassandra/hints/HintMessageTest.java
new file mode 100644
index 000..7ffaa54
--- /dev/null
+++ b/test/unit/org/apache/cassandra/hints/HintMessageTest.java
@@ -0,0 +1,79 @@
+/*
+ * 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.hints;
+
+import java.io.IOException;
+import java.util.UUID;
+
+import org.junit.Test;
+
+import org.apache.cassandra.SchemaLoader;
+import org.apache.cassandra.config.CFMetaData;
+import org.apache.cassandra.config.Schema;
+import org.apache.cassandra.db.Mutation;
+import org.apache.cassandra.db.RowUpdateBuilder;
+import org.apache.cassandra.io.util.DataInputBuffer;
+import org.apache.cassandra.io.util.DataInputPlus;
+import org.apache.cassandra.io.util.DataOutputBuffer;
+import org.apache.cassandra.net.MessagingService;
+import org.apache.cassandra.schema.KeyspaceParams;
+import org.apache.cassandra.utils.FBUtilities;
+
+import static junit.framework.Assert.assertEquals;
+
+import static org.apache.cassandra.hints.HintsTestUtil.assertHintsEqual;
+import static org.apache.cassandra.utils.ByteBufferUtil.bytes;
+
+public class HintMessageTest
+{
+private static final String KEYSPACE = "hint_message_test";
+private static final String TABLE = "table";
+
+@Test
+public void testSerializer() throws IOException
+{
+SchemaLoader.prepareServer();
+SchemaLoader.createKeyspace(KEYSPACE, KeyspaceParams.simple(1), 
SchemaLoader.standardCFMD(KEYSPACE, TABLE));
+
+UUID hostId = UUID.randomUUID();
+long now = FBUtilities.timestampMicros();
+
+CFMetaData table = Schema.instance.getCFMetaData(KEYSPACE, TABLE);
+Mutation mutation =
+new RowUpdateBuilder(table, now, bytes("key"))
+.clustering("column")
+.add("val", "val" + 1234)
+.build();
+Hint hint = Hint.create(mutation, now / 1000);
+HintMessage message = new HintMessage(hostId, hint);
+
+// serialize
+int serializedSize = (int) 
HintMessage.serializer.serializedSize(message, 
MessagingService.current_version);
+DataOutputBuffer dob = new DataOutputBuffer();
+HintMessage.serializer.serialize(message, dob, 
MessagingService.current_version);
+assertEquals(serializedSize, dob.getLength());
+
+// deserialize
+DataInputPlus di = new DataInputBuffer(dob.buffer(), true);
+HintMessage deserializedMessage = 
HintMessage.serializer.deserialize(di, MessagingService.current_version);
+
+// compare before/after
+assertEquals(hostId, deserializedMessage.hostId);
+assertHintsEqual(message.hint, deserializedMessage.hint);
+}
+}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/test/unit/org/apache/cassandra/hints/HintTest.java
--
diff --git a/test/unit/org/apache/cassandra/hints/HintTest.java 
b/test/unit/org/apache/cassandra/hints/HintTest.java
new file mode 100644
index 000..c198149
--- /dev/null
+++ b/test/unit/org/apache/cassandra/hints/HintTest.java
@@ -0,0 +1,231 @@
+/*
+ * 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 th

[1/4] cassandra git commit: Rewrite hinted handoff

2015-08-19 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 811ee6ca2 -> 96d41f0e0


http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/test/unit/org/apache/cassandra/hints/HintMessageTest.java
--
diff --git a/test/unit/org/apache/cassandra/hints/HintMessageTest.java 
b/test/unit/org/apache/cassandra/hints/HintMessageTest.java
new file mode 100644
index 000..7ffaa54
--- /dev/null
+++ b/test/unit/org/apache/cassandra/hints/HintMessageTest.java
@@ -0,0 +1,79 @@
+/*
+ * 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.hints;
+
+import java.io.IOException;
+import java.util.UUID;
+
+import org.junit.Test;
+
+import org.apache.cassandra.SchemaLoader;
+import org.apache.cassandra.config.CFMetaData;
+import org.apache.cassandra.config.Schema;
+import org.apache.cassandra.db.Mutation;
+import org.apache.cassandra.db.RowUpdateBuilder;
+import org.apache.cassandra.io.util.DataInputBuffer;
+import org.apache.cassandra.io.util.DataInputPlus;
+import org.apache.cassandra.io.util.DataOutputBuffer;
+import org.apache.cassandra.net.MessagingService;
+import org.apache.cassandra.schema.KeyspaceParams;
+import org.apache.cassandra.utils.FBUtilities;
+
+import static junit.framework.Assert.assertEquals;
+
+import static org.apache.cassandra.hints.HintsTestUtil.assertHintsEqual;
+import static org.apache.cassandra.utils.ByteBufferUtil.bytes;
+
+public class HintMessageTest
+{
+private static final String KEYSPACE = "hint_message_test";
+private static final String TABLE = "table";
+
+@Test
+public void testSerializer() throws IOException
+{
+SchemaLoader.prepareServer();
+SchemaLoader.createKeyspace(KEYSPACE, KeyspaceParams.simple(1), 
SchemaLoader.standardCFMD(KEYSPACE, TABLE));
+
+UUID hostId = UUID.randomUUID();
+long now = FBUtilities.timestampMicros();
+
+CFMetaData table = Schema.instance.getCFMetaData(KEYSPACE, TABLE);
+Mutation mutation =
+new RowUpdateBuilder(table, now, bytes("key"))
+.clustering("column")
+.add("val", "val" + 1234)
+.build();
+Hint hint = Hint.create(mutation, now / 1000);
+HintMessage message = new HintMessage(hostId, hint);
+
+// serialize
+int serializedSize = (int) 
HintMessage.serializer.serializedSize(message, 
MessagingService.current_version);
+DataOutputBuffer dob = new DataOutputBuffer();
+HintMessage.serializer.serialize(message, dob, 
MessagingService.current_version);
+assertEquals(serializedSize, dob.getLength());
+
+// deserialize
+DataInputPlus di = new DataInputBuffer(dob.buffer(), true);
+HintMessage deserializedMessage = 
HintMessage.serializer.deserialize(di, MessagingService.current_version);
+
+// compare before/after
+assertEquals(hostId, deserializedMessage.hostId);
+assertHintsEqual(message.hint, deserializedMessage.hint);
+}
+}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/test/unit/org/apache/cassandra/hints/HintTest.java
--
diff --git a/test/unit/org/apache/cassandra/hints/HintTest.java 
b/test/unit/org/apache/cassandra/hints/HintTest.java
new file mode 100644
index 000..c198149
--- /dev/null
+++ b/test/unit/org/apache/cassandra/hints/HintTest.java
@@ -0,0 +1,231 @@
+/*
+ * 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 Licens

[5/5] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

2015-08-19 Thread aleksey
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/cabdb03a
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cabdb03a
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cabdb03a

Branch: refs/heads/trunk
Commit: cabdb03a9f63a05d1f6e3b27fafde8b2e6385c23
Parents: b83b674 96d41f0
Author: Aleksey Yeschenko 
Authored: Wed Aug 19 17:30:00 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Wed Aug 19 17:30:00 2015 +0300

--
 CHANGES.txt |   1 +
 NEWS.txt|   9 +-
 conf/cassandra.yaml |  13 +
 .../org/apache/cassandra/config/Config.java |   7 +-
 .../cassandra/config/DatabaseDescriptor.java|  51 +-
 .../apache/cassandra/db/BatchlogManager.java|  84 ++-
 .../cassandra/db/HintedHandOffManager.java  | 543 +--
 .../cassandra/db/HintedHandOffManagerMBean.java |   1 +
 src/java/org/apache/cassandra/db/Mutation.java  |  33 +-
 .../org/apache/cassandra/db/SystemKeyspace.java |  31 +-
 .../cassandra/db/commitlog/CommitLog.java   |  20 +-
 src/java/org/apache/cassandra/gms/Gossiper.java |  14 +
 .../cassandra/hints/ChecksummedDataInput.java   | 114 
 .../cassandra/hints/EncodedHintMessage.java |  89 +++
 src/java/org/apache/cassandra/hints/Hint.java   | 130 +
 .../org/apache/cassandra/hints/HintMessage.java | 130 +
 .../apache/cassandra/hints/HintResponse.java|  58 ++
 .../apache/cassandra/hints/HintVerbHandler.java |  89 +++
 .../org/apache/cassandra/hints/HintsBuffer.java | 261 +
 .../apache/cassandra/hints/HintsBufferPool.java | 120 
 .../apache/cassandra/hints/HintsCatalog.java| 128 +
 .../apache/cassandra/hints/HintsDescriptor.java | 242 +
 .../cassandra/hints/HintsDispatchExecutor.java  | 199 +++
 .../cassandra/hints/HintsDispatchTrigger.java   |  85 +++
 .../apache/cassandra/hints/HintsDispatcher.java | 228 
 .../org/apache/cassandra/hints/HintsReader.java | 312 +++
 .../apache/cassandra/hints/HintsService.java| 291 ++
 .../cassandra/hints/HintsServiceMBean.java  |  43 ++
 .../org/apache/cassandra/hints/HintsStore.java  | 210 +++
 .../cassandra/hints/HintsWriteExecutor.java | 235 
 .../org/apache/cassandra/hints/HintsWriter.java | 272 ++
 .../cassandra/hints/LegacyHintsMigrator.java| 243 +
 .../apache/cassandra/hints/package-info.java|  44 ++
 .../cassandra/metrics/HintedHandoffMetrics.java |   3 +-
 .../cassandra/metrics/HintsServiceMetrics.java  |  25 +
 .../apache/cassandra/net/MessagingService.java  |   9 +-
 .../cassandra/service/CassandraDaemon.java  |   4 +
 .../apache/cassandra/service/StartupChecks.java |  43 +-
 .../apache/cassandra/service/StorageProxy.java  | 209 +++
 .../cassandra/service/StorageService.java   |  68 ++-
 .../org/apache/cassandra/tools/NodeProbe.java   |   2 +-
 .../org/apache/cassandra/utils/FBUtilities.java |  32 +-
 .../org/apache/cassandra/utils/Throwables.java  |  90 ++-
 test/conf/cassandra.yaml|   1 +
 .../cassandra/hints/HintsWriteThenReadTest.java | 191 +++
 .../OffsetAwareConfigurationLoader.java |   1 +
 .../apache/cassandra/db/HintedHandOffTest.java  | 150 -
 .../cassandra/db/commitlog/CommitLogTest.java   |   4 +-
 .../hints/ChecksummedDataInputTest.java | 112 
 .../apache/cassandra/hints/HintMessageTest.java |  79 +++
 .../org/apache/cassandra/hints/HintTest.java| 231 
 .../apache/cassandra/hints/HintsBufferTest.java | 236 
 .../cassandra/hints/HintsCatalogTest.java   |  88 +++
 .../cassandra/hints/HintsDescriptorTest.java| 153 ++
 .../apache/cassandra/hints/HintsTestUtil.java   |  60 ++
 .../hints/LegacyHintsMigratorTest.java  | 195 +++
 .../metrics/HintedHandOffMetricsTest.java   |  56 ++
 .../cassandra/service/StorageProxyTest.java |   3 +-
 58 files changed, 5468 insertions(+), 907 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/cabdb03a/CHANGES.txt
--
diff --cc CHANGES.txt
index eba9e36,0d17235..a78a19c
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,8 -1,5 +1,9 @@@
 +3.2
 + * Add transparent data encryption core classes (CASSANDRA-9945)
 +
 +
  3.0.0-beta1
+  * Rewrite hinted handoff (CASSANDRA-6230)
   * Fix query on static compact tables (CASSANDRA-10093)
   * Fix race during construction of commit log (CASSANDRA-10049)
   * Add option to only purge repaired tombstones (CASSANDRA-6434)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/cabdb03a/src/java/org/apache/cassandra/config/C

[3/5] cassandra git commit: Rewrite hinted handoff

2015-08-19 Thread aleksey
http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/src/java/org/apache/cassandra/hints/HintVerbHandler.java
--
diff --git a/src/java/org/apache/cassandra/hints/HintVerbHandler.java 
b/src/java/org/apache/cassandra/hints/HintVerbHandler.java
new file mode 100644
index 000..458d01f
--- /dev/null
+++ b/src/java/org/apache/cassandra/hints/HintVerbHandler.java
@@ -0,0 +1,89 @@
+/*
+ * 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.hints;
+
+import java.net.InetAddress;
+import java.util.UUID;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.cassandra.db.partitions.PartitionUpdate;
+import org.apache.cassandra.net.IVerbHandler;
+import org.apache.cassandra.net.MessageIn;
+import org.apache.cassandra.net.MessagingService;
+import org.apache.cassandra.serializers.MarshalException;
+import org.apache.cassandra.service.StorageService;
+
+/**
+ * Verb handler used both for hint dispatch and streaming.
+ *
+ * With the non-sstable format, we cannot just stream hint sstables on node 
decommission. So sometimes, at decommission
+ * time, we might have to stream hints to a non-owning host (say, if the 
owning host B is down during decommission of host A).
+ * In that case the handler just stores the received hint in its local hint 
store.
+ */
+public final class HintVerbHandler implements IVerbHandler
+{
+private static final Logger logger = 
LoggerFactory.getLogger(HintVerbHandler.class);
+
+public void doVerb(MessageIn message, int id)
+{
+UUID hostId = message.payload.hostId;
+Hint hint = message.payload.hint;
+
+// If we see an unknown table id, it means the table, or one of the 
tables in the mutation, had been dropped.
+// In that case there is nothing we can really do, or should do, other 
than log it go on.
+// This will *not* happen due to a not-yet-seen table, because we 
don't transfer hints unless there
+// is schema agreement between the sender and the receiver.
+if (hint == null)
+{
+logger.debug("Failed to decode and apply a hint for {} - table 
with id {} is unknown",
+ hostId,
+ message.payload.unknownTableID);
+reply(id, message.from);
+return;
+}
+
+// We must perform validation before applying the hint, and there is 
no other place to do it other than here.
+try
+{
+
hint.mutation.getPartitionUpdates().forEach(PartitionUpdate::validate);
+}
+catch (MarshalException e)
+{
+logger.warn("Failed to validate a hint for {} (table id {}) - 
skipped", hostId);
+reply(id, message.from);
+return;
+}
+
+// Apply the hint if this node is the destination, store for future 
dispatch if this node isn't (must have gotten
+// it from a decommissioned node that had streamed it before going 
out).
+if (hostId.equals(StorageService.instance.getLocalHostUUID()))
+hint.apply();
+else
+HintsService.instance.write(hostId, hint);
+
+reply(id, message.from);
+}
+
+private static void reply(int id, InetAddress to)
+{
+MessagingService.instance().sendReply(HintResponse.message, id, to);
+}
+}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/96d41f0e/src/java/org/apache/cassandra/hints/HintsBuffer.java
--
diff --git a/src/java/org/apache/cassandra/hints/HintsBuffer.java 
b/src/java/org/apache/cassandra/hints/HintsBuffer.java
new file mode 100644
index 000..097abce
--- /dev/null
+++ b/src/java/org/apache/cassandra/hints/HintsBuffer.java
@@ -0,0 +1,261 @@
+/*
+ * 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 exc

cassandra git commit: Fix post-6717 driver issue with indexes

2015-08-19 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 cb8ff5d3a -> 51bc7f87d


Fix post-6717 driver issue with indexes

patch by Blake Eggleston; reviewed by Aleksey Yeschenko for
CASSANDRA-10121


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/51bc7f87
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/51bc7f87
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/51bc7f87

Branch: refs/heads/cassandra-3.0
Commit: 51bc7f87d708abb66db73976e5a60df8e53c7c4a
Parents: cb8ff5d
Author: Blake Eggleston 
Authored: Wed Aug 19 22:15:51 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Wed Aug 19 22:17:05 2015 +0300

--
 ...core-3.0.0-alpha2-188d996-SNAPSHOT-shaded.jar | Bin 2204619 -> 0 bytes
 ...core-3.0.0-alpha2-ae1e256-SNAPSHOT-shaded.jar | Bin 0 -> 2209194 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/51bc7f87/lib/cassandra-driver-core-3.0.0-alpha2-188d996-SNAPSHOT-shaded.jar
--
diff --git a/lib/cassandra-driver-core-3.0.0-alpha2-188d996-SNAPSHOT-shaded.jar 
b/lib/cassandra-driver-core-3.0.0-alpha2-188d996-SNAPSHOT-shaded.jar
deleted file mode 100644
index 14354bd..000
Binary files 
a/lib/cassandra-driver-core-3.0.0-alpha2-188d996-SNAPSHOT-shaded.jar and 
/dev/null differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/51bc7f87/lib/cassandra-driver-core-3.0.0-alpha2-ae1e256-SNAPSHOT-shaded.jar
--
diff --git a/lib/cassandra-driver-core-3.0.0-alpha2-ae1e256-SNAPSHOT-shaded.jar 
b/lib/cassandra-driver-core-3.0.0-alpha2-ae1e256-SNAPSHOT-shaded.jar
new file mode 100644
index 000..f930cc6
Binary files /dev/null and 
b/lib/cassandra-driver-core-3.0.0-alpha2-ae1e256-SNAPSHOT-shaded.jar differ



[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

2015-08-19 Thread aleksey
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/b1c7f595
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b1c7f595
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b1c7f595

Branch: refs/heads/trunk
Commit: b1c7f59554fccc03cf7b3976dfa7c7d42de15154
Parents: 2c31677 51bc7f8
Author: Aleksey Yeschenko 
Authored: Wed Aug 19 22:17:45 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Wed Aug 19 22:17:45 2015 +0300

--
 ...core-3.0.0-alpha2-188d996-SNAPSHOT-shaded.jar | Bin 2204619 -> 0 bytes
 ...core-3.0.0-alpha2-ae1e256-SNAPSHOT-shaded.jar | Bin 0 -> 2209194 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
--




[1/2] cassandra git commit: Fix post-6717 driver issue with indexes

2015-08-19 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 2c3167722 -> b1c7f5955


Fix post-6717 driver issue with indexes

patch by Blake Eggleston; reviewed by Aleksey Yeschenko for
CASSANDRA-10121


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/51bc7f87
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/51bc7f87
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/51bc7f87

Branch: refs/heads/trunk
Commit: 51bc7f87d708abb66db73976e5a60df8e53c7c4a
Parents: cb8ff5d
Author: Blake Eggleston 
Authored: Wed Aug 19 22:15:51 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Wed Aug 19 22:17:05 2015 +0300

--
 ...core-3.0.0-alpha2-188d996-SNAPSHOT-shaded.jar | Bin 2204619 -> 0 bytes
 ...core-3.0.0-alpha2-ae1e256-SNAPSHOT-shaded.jar | Bin 0 -> 2209194 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/51bc7f87/lib/cassandra-driver-core-3.0.0-alpha2-188d996-SNAPSHOT-shaded.jar
--
diff --git a/lib/cassandra-driver-core-3.0.0-alpha2-188d996-SNAPSHOT-shaded.jar 
b/lib/cassandra-driver-core-3.0.0-alpha2-188d996-SNAPSHOT-shaded.jar
deleted file mode 100644
index 14354bd..000
Binary files 
a/lib/cassandra-driver-core-3.0.0-alpha2-188d996-SNAPSHOT-shaded.jar and 
/dev/null differ

http://git-wip-us.apache.org/repos/asf/cassandra/blob/51bc7f87/lib/cassandra-driver-core-3.0.0-alpha2-ae1e256-SNAPSHOT-shaded.jar
--
diff --git a/lib/cassandra-driver-core-3.0.0-alpha2-ae1e256-SNAPSHOT-shaded.jar 
b/lib/cassandra-driver-core-3.0.0-alpha2-ae1e256-SNAPSHOT-shaded.jar
new file mode 100644
index 000..f930cc6
Binary files /dev/null and 
b/lib/cassandra-driver-core-3.0.0-alpha2-ae1e256-SNAPSHOT-shaded.jar differ



cassandra git commit: Fix Coverity-flagged CASSANDRA-6230 issues

2015-08-19 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 51bc7f87d -> 4cc2b67df


Fix Coverity-flagged CASSANDRA-6230 issues


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4cc2b67d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4cc2b67d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4cc2b67d

Branch: refs/heads/cassandra-3.0
Commit: 4cc2b67df369bc3e9587b9e4864b8058ca78cdf7
Parents: 51bc7f8
Author: Aleksey Yeschenko 
Authored: Thu Aug 20 00:30:30 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 20 00:30:53 2015 +0300

--
 src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 2 +-
 src/java/org/apache/cassandra/hints/HintsWriter.java | 7 ---
 src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java | 2 +-
 3 files changed, 6 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4cc2b67d/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 b3bc4d2..01455ac 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -1527,7 +1527,7 @@ public class DatabaseDescriptor
 
 public static long getMaxHintsFileSize()
 {
-return conf.max_hints_file_size_in_mb * 1024 * 1024;
+return conf.max_hints_file_size_in_mb * 1024L * 1024L;
 }
 
 public static boolean isIncrementalBackupsEnabled()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4cc2b67d/src/java/org/apache/cassandra/hints/HintsWriter.java
--
diff --git a/src/java/org/apache/cassandra/hints/HintsWriter.java 
b/src/java/org/apache/cassandra/hints/HintsWriter.java
index 300d9cc..5cadd35 100644
--- a/src/java/org/apache/cassandra/hints/HintsWriter.java
+++ b/src/java/org/apache/cassandra/hints/HintsWriter.java
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.nio.ByteBuffer;
 import java.nio.channels.FileChannel;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.StandardOpenOption;
 import java.util.zip.CRC32;
@@ -98,7 +99,7 @@ final class HintsWriter implements AutoCloseable
 File checksumFile = new File(directory, descriptor.checksumFileName());
 try (OutputStream out = Files.newOutputStream(checksumFile.toPath()))
 {
-out.write(Integer.toHexString((int) 
globalCRC.getValue()).getBytes());
+out.write(Integer.toHexString((int) 
globalCRC.getValue()).getBytes(StandardCharsets.UTF_8));
 }
 catch (IOException e)
 {
@@ -255,7 +256,7 @@ final class HintsWriter implements AutoCloseable
 
 private void maybeFsync()
 {
-if (position() >= lastSyncPosition + 
DatabaseDescriptor.getTrickleFsyncIntervalInKb() * 1024)
+if (position() >= lastSyncPosition + 
DatabaseDescriptor.getTrickleFsyncIntervalInKb() * 1024L)
 fsync();
 }
 
@@ -265,7 +266,7 @@ final class HintsWriter implements AutoCloseable
 
 // don't skip page cache for tiny files, on the assumption that if 
they are tiny, the target node is probably
 // alive, and if so, the file will be closed and dispatched 
shortly (within a minute), and the file will be dropped.
-if (position >= DatabaseDescriptor.getTrickleFsyncIntervalInKb() * 
1024)
+if (position >= DatabaseDescriptor.getTrickleFsyncIntervalInKb() * 
1024L)
 CLibrary.trySkipCache(fd, 0, position - (position % 
PAGE_SIZE), file.getPath());
 }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4cc2b67d/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java
--
diff --git a/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java 
b/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java
index 082e307..196f184 100644
--- a/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java
+++ b/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java
@@ -71,7 +71,7 @@ public final class LegacyHintsMigrator
 int meanCellCount = legacyHintsTable.getMeanColumns();
 double meanPartitionSize = legacyHintsTable.getMeanPartitionSize();
 
-if (meanCellCount != 0 || meanPartitionSize != 0)
+if (meanCellCount != 0 && meanPartitionSize != 0)
 {
 int avgHintSize = (int) meanPartitionSize / mean

[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

2015-08-19 Thread aleksey
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/6cad04b2
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6cad04b2
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6cad04b2

Branch: refs/heads/trunk
Commit: 6cad04b220833e185e05aa229684ebbdc23f4212
Parents: b1c7f59 4cc2b67
Author: Aleksey Yeschenko 
Authored: Thu Aug 20 00:31:27 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 20 00:31:27 2015 +0300

--
 src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 2 +-
 src/java/org/apache/cassandra/hints/HintsWriter.java | 7 ---
 src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java | 2 +-
 3 files changed, 6 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6cad04b2/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
--



[1/2] cassandra git commit: Fix Coverity-flagged CASSANDRA-6230 issues

2015-08-19 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk b1c7f5955 -> 6cad04b22


Fix Coverity-flagged CASSANDRA-6230 issues


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4cc2b67d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4cc2b67d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4cc2b67d

Branch: refs/heads/trunk
Commit: 4cc2b67df369bc3e9587b9e4864b8058ca78cdf7
Parents: 51bc7f8
Author: Aleksey Yeschenko 
Authored: Thu Aug 20 00:30:30 2015 +0300
Committer: Aleksey Yeschenko 
Committed: Thu Aug 20 00:30:53 2015 +0300

--
 src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 2 +-
 src/java/org/apache/cassandra/hints/HintsWriter.java | 7 ---
 src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java | 2 +-
 3 files changed, 6 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4cc2b67d/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 b3bc4d2..01455ac 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -1527,7 +1527,7 @@ public class DatabaseDescriptor
 
 public static long getMaxHintsFileSize()
 {
-return conf.max_hints_file_size_in_mb * 1024 * 1024;
+return conf.max_hints_file_size_in_mb * 1024L * 1024L;
 }
 
 public static boolean isIncrementalBackupsEnabled()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4cc2b67d/src/java/org/apache/cassandra/hints/HintsWriter.java
--
diff --git a/src/java/org/apache/cassandra/hints/HintsWriter.java 
b/src/java/org/apache/cassandra/hints/HintsWriter.java
index 300d9cc..5cadd35 100644
--- a/src/java/org/apache/cassandra/hints/HintsWriter.java
+++ b/src/java/org/apache/cassandra/hints/HintsWriter.java
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.nio.ByteBuffer;
 import java.nio.channels.FileChannel;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.StandardOpenOption;
 import java.util.zip.CRC32;
@@ -98,7 +99,7 @@ final class HintsWriter implements AutoCloseable
 File checksumFile = new File(directory, descriptor.checksumFileName());
 try (OutputStream out = Files.newOutputStream(checksumFile.toPath()))
 {
-out.write(Integer.toHexString((int) 
globalCRC.getValue()).getBytes());
+out.write(Integer.toHexString((int) 
globalCRC.getValue()).getBytes(StandardCharsets.UTF_8));
 }
 catch (IOException e)
 {
@@ -255,7 +256,7 @@ final class HintsWriter implements AutoCloseable
 
 private void maybeFsync()
 {
-if (position() >= lastSyncPosition + 
DatabaseDescriptor.getTrickleFsyncIntervalInKb() * 1024)
+if (position() >= lastSyncPosition + 
DatabaseDescriptor.getTrickleFsyncIntervalInKb() * 1024L)
 fsync();
 }
 
@@ -265,7 +266,7 @@ final class HintsWriter implements AutoCloseable
 
 // don't skip page cache for tiny files, on the assumption that if 
they are tiny, the target node is probably
 // alive, and if so, the file will be closed and dispatched 
shortly (within a minute), and the file will be dropped.
-if (position >= DatabaseDescriptor.getTrickleFsyncIntervalInKb() * 
1024)
+if (position >= DatabaseDescriptor.getTrickleFsyncIntervalInKb() * 
1024L)
 CLibrary.trySkipCache(fd, 0, position - (position % 
PAGE_SIZE), file.getPath());
 }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4cc2b67d/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java
--
diff --git a/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java 
b/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java
index 082e307..196f184 100644
--- a/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java
+++ b/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java
@@ -71,7 +71,7 @@ public final class LegacyHintsMigrator
 int meanCellCount = legacyHintsTable.getMeanColumns();
 double meanPartitionSize = legacyHintsTable.getMeanPartitionSize();
 
-if (meanCellCount != 0 || meanPartitionSize != 0)
+if (meanCellCount != 0 && meanPartitionSize != 0)
 {
 int avgHintSize = (int) meanPartitionSize / meanCellCount;

  1   2   3   4   5   6   7   8   9   10   >