[jira] [Commented] (CASSANDRA-4775) Counters 2.0

2013-07-08 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13701847#comment-13701847
 ] 

Sylvain Lebresne commented on CASSANDRA-4775:
-

bq. read-before-write is inherent in the 1.0 design

That's true, and that's annoying. That being said, I think the fact that today 
CL.ONE lies about doing a read-before-write is probably a good part of what end 
up surprising people. Besides, I'll admit that I remain to be convinced about 
the performance of doing one column per write with on-read merging (as as been 
suggested for a replacement). It will clearly be faster on writes, but 
performance on read remains to be seen (I'm particularly afraid of everything 
run fines in testing, but I go in production, some counters gets more load than 
expected and now the read performance on those goes through the roof). But 
yes, read-before-write is a PITA and somewhat anti-Cassandra.   

bq. but idempotence internally is very handy

I couldn't agree more, and that's my biggest problem with the current 
implementation (and as always be really). But just in case that wasn't clear, 
the whole goal of the band aid (as you call it) I'm mentioning would to 
restore internal idempotence. So that problem is *not* inherent to counters 1.0.

 Counters 2.0
 

 Key: CASSANDRA-4775
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4775
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Arya Goudarzi
Assignee: Aleksey Yeschenko
  Labels: counters
 Fix For: 2.1


 The existing partitioned counters remain a source of frustration for most 
 users almost two years after being introduced.  The remaining problems are 
 inherent in the design, not something that can be fixed given enough 
 time/eyeballs.
 Ideally a solution would give us
 - similar performance
 - less special cases in the code
 - potential for a retry mechanism

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5619) CAS UPDATE for a lost race: save round trip by returning column values

2013-07-08 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13701868#comment-13701868
 ] 

Sylvain Lebresne commented on CASSANDRA-5619:
-

bq. Could we do timestamp(column) and ttl(column), including literal 
parentheses, where column is the name of the column involved?

In the case I'm talking about, there isn't a specific column involved (or 
rather there could be more than one). The one I'm talking about is
if you do:
{noformat}
UPDATE foo USING TTL ? SET c1=2, c2=3, 
{noformat}
In that case the TTL applies to all the columns. And so in that case we 
currently return [ttl] (with the square bracket btw) as name for the first 
prepared marked.

bq. These would not be legal column names

Actually, they would. Provided you double quote a column name, we're pretty 
permissive about what it can be: it can be anything really, and timestamp() 
is as much legal than [timestamp].

This does is a problem somewhat, don't get me wrong. Even ignoring the 
timestamp/ttl in prepared statements, if you do:
{noformat}
SELECT writeTime(c), writeTime(c) FROM foo;
{noformat}
we'll return a resultSet where both column with the string writeTime(c) as 
identifier, and the only way to distinguish between the arguably weird column 
name and the function call is by position in the result set.

But so far we've somewhat dodged that issue saying that you really have to be 
looking for trouble to run into this, and that you still can rely on positions 
in the result set anyway. We could probably disambiguate this, though so far 
I've wondered if it was worth the trouble really.

Anyway, that's somewhat unrelated to this issue but wanted to be complete.

 CAS UPDATE for a lost race: save round trip by returning column values
 --

 Key: CASSANDRA-5619
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5619
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Affects Versions: 2.0 beta 1
Reporter: Blair Zajac
Assignee: Sylvain Lebresne
 Fix For: 2.0 beta 1

 Attachments: 0001-Add-back-boolean-result-column.txt, 
 5619_thrift_fixup.txt, 5619.txt


 Looking at the new CAS CQL3 support examples [1], if one lost a race for an 
 UPDATE, to save a round trip to get the current values to decide if you need 
 to perform your work, could the columns that were used in the IF clause also 
 be returned to the caller?  Maybe the columns values as part of the SET part 
 could also be returned.
 I don't know if this is generally useful though.
 In the case of creating a new user account with a given username which is the 
 partition key, if one lost the race to another person creating an account 
 with the same username, it doesn't matter to the loser what the column values 
 are, just that they lost.
 I'm new to Cassandra, so maybe there's other use cases, such as doing 
 incremental amount of work on a row.  In pure Java projects I've done while 
 loops around AtomicReference.html#compareAndSet() until the work was done on 
 the referenced object to handle multiple threads each making forward progress 
 in updating the references object.
 [1] https://github.com/riptano/cassandra-dtest/blob/master/cql_tests.py#L3044

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5619) CAS UPDATE for a lost race: save round trip by returning column values

2013-07-08 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13701874#comment-13701874
 ] 

Sylvain Lebresne commented on CASSANDRA-5619:
-

So using exceptions for this actually has some practical backward compatibility 
problem: we can't really add a new exception to the native protocol v1. And 
unfortunately there isn't an existing exception that would work very well. It's 
also a problem for CQL-over-thrift: while we can add a new exception in thrift, 
having it potentially returned by execute_cql3_query() is a breaking change.

It's not necessarily a blocker, we can decide that CAS are only available with 
the native protocol v2 (and raw thrift), but it's a bit of shame.

 CAS UPDATE for a lost race: save round trip by returning column values
 --

 Key: CASSANDRA-5619
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5619
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Affects Versions: 2.0 beta 1
Reporter: Blair Zajac
Assignee: Sylvain Lebresne
 Fix For: 2.0 beta 1

 Attachments: 0001-Add-back-boolean-result-column.txt, 
 5619_thrift_fixup.txt, 5619.txt


 Looking at the new CAS CQL3 support examples [1], if one lost a race for an 
 UPDATE, to save a round trip to get the current values to decide if you need 
 to perform your work, could the columns that were used in the IF clause also 
 be returned to the caller?  Maybe the columns values as part of the SET part 
 could also be returned.
 I don't know if this is generally useful though.
 In the case of creating a new user account with a given username which is the 
 partition key, if one lost the race to another person creating an account 
 with the same username, it doesn't matter to the loser what the column values 
 are, just that they lost.
 I'm new to Cassandra, so maybe there's other use cases, such as doing 
 incremental amount of work on a row.  In pure Java projects I've done while 
 loops around AtomicReference.html#compareAndSet() until the work was done on 
 the referenced object to handle multiple threads each making forward progress 
 in updating the references object.
 [1] https://github.com/riptano/cassandra-dtest/blob/master/cql_tests.py#L3044

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


git commit: Don't keep ancestor information in memory since it is only used on startup.

2013-07-08 Thread marcuse
Updated Branches:
  refs/heads/cassandra-1.2 cc9ac8277 - 83b75754f


Don't keep ancestor information in memory since it is only used on startup.

patch by marcuse, reviewed by jbellis for CASSANDRA-5342


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

Branch: refs/heads/cassandra-1.2
Commit: 83b75754ff143d4d77b01ef76a813da47779c6f4
Parents: cc9ac82
Author: Marcus Eriksson marc...@spotify.com
Authored: Mon Jul 8 09:55:34 2013 +0200
Committer: Marcus Eriksson marc...@spotify.com
Committed: Mon Jul 8 09:57:11 2013 +0200

--
 CHANGES.txt |  1 +
 .../cassandra/io/sstable/SSTableMetadata.java   | 39 ++--
 .../cassandra/io/sstable/SSTableReader.java | 12 +-
 .../cassandra/io/sstable/SSTableWriter.java |  6 +--
 .../cassandra/tools/SSTableMetadataViewer.java  |  2 +-
 .../sstable/SSTableMetadataSerializerTest.java  | 13 +--
 6 files changed, 52 insertions(+), 21 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/83b75754/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index fa4df36..b08f967 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -7,6 +7,7 @@
(CASSANDRA-5692)
  * Fix skipping range tombstones with reverse queries (CASSANDRA-5712)
  * Expire entries out of ThriftSessionManager (CASSANRDA-5719)
+ * Don't keep ancestor information in memory (CASSANDRA-5342)
 
 1.2.6
  * Fix tracing when operation completes before all responses arrive 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/83b75754/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
index 865c2ea..de51ea9 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
@@ -20,6 +20,7 @@ package org.apache.cassandra.io.sstable;
 import java.io.*;
 import java.util.*;
 
+import org.apache.cassandra.utils.Pair;
 import org.apache.cassandra.utils.StreamingHistogram;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -55,7 +56,6 @@ public class SSTableMetadata
 public final long maxTimestamp;
 public final double compressionRatio;
 public final String partitioner;
-public final SetInteger ancestors;
 public final StreamingHistogram estimatedTombstoneDropTime;
 
 private SSTableMetadata()
@@ -67,7 +67,6 @@ public class SSTableMetadata
  Long.MAX_VALUE,
  NO_COMPRESSION_RATIO,
  null,
- Collections.IntegeremptySet(),
  defaultTombstoneDropTimeHistogram());
 }
 
@@ -78,7 +77,6 @@ public class SSTableMetadata
 long maxTimestamp,
 double cr,
 String partitioner,
-SetInteger ancestors,
 StreamingHistogram estimatedTombstoneDropTime)
 {
 this.estimatedRowSize = rowSizes;
@@ -88,7 +86,6 @@ public class SSTableMetadata
 this.maxTimestamp = maxTimestamp;
 this.compressionRatio = cr;
 this.partitioner = partitioner;
-this.ancestors = ancestors;
 this.estimatedTombstoneDropTime = estimatedTombstoneDropTime;
 }
 
@@ -193,7 +190,6 @@ public class SSTableMetadata
maxTimestamp,
compressionRatio,
partitioner,
-   ancestors,
estimatedTombstoneDropTime);
 }
 
@@ -242,7 +238,7 @@ public class SSTableMetadata
 {
 private static final Logger logger = 
LoggerFactory.getLogger(SSTableMetadataSerializer.class);
 
-public void serialize(SSTableMetadata sstableStats, DataOutput dos) 
throws IOException
+public void serialize(SSTableMetadata sstableStats, SetInteger 
ancestors, DataOutput dos) throws IOException
 {
 assert sstableStats.partitioner != null;
 
@@ -253,20 +249,31 @@ public class SSTableMetadata
 dos.writeLong(sstableStats.maxTimestamp);
 dos.writeDouble(sstableStats.compressionRatio);
 dos.writeUTF(sstableStats.partitioner);
-dos.writeInt(sstableStats.ancestors.size());
-for (Integer g : sstableStats.ancestors)
+

[1/2] git commit: Don't keep ancestor information in memory since it is only used on startup.

2013-07-08 Thread marcuse
Updated Branches:
  refs/heads/trunk 1a2f35731 - 07ca445e5


Don't keep ancestor information in memory since it is only used on startup.

patch by marcuse, reviewed by jbellis for CASSANDRA-5342


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

Branch: refs/heads/trunk
Commit: 83b75754ff143d4d77b01ef76a813da47779c6f4
Parents: cc9ac82
Author: Marcus Eriksson marc...@spotify.com
Authored: Mon Jul 8 09:55:34 2013 +0200
Committer: Marcus Eriksson marc...@spotify.com
Committed: Mon Jul 8 09:57:11 2013 +0200

--
 CHANGES.txt |  1 +
 .../cassandra/io/sstable/SSTableMetadata.java   | 39 ++--
 .../cassandra/io/sstable/SSTableReader.java | 12 +-
 .../cassandra/io/sstable/SSTableWriter.java |  6 +--
 .../cassandra/tools/SSTableMetadataViewer.java  |  2 +-
 .../sstable/SSTableMetadataSerializerTest.java  | 13 +--
 6 files changed, 52 insertions(+), 21 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/83b75754/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index fa4df36..b08f967 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -7,6 +7,7 @@
(CASSANDRA-5692)
  * Fix skipping range tombstones with reverse queries (CASSANDRA-5712)
  * Expire entries out of ThriftSessionManager (CASSANRDA-5719)
+ * Don't keep ancestor information in memory (CASSANDRA-5342)
 
 1.2.6
  * Fix tracing when operation completes before all responses arrive 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/83b75754/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
index 865c2ea..de51ea9 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableMetadata.java
@@ -20,6 +20,7 @@ package org.apache.cassandra.io.sstable;
 import java.io.*;
 import java.util.*;
 
+import org.apache.cassandra.utils.Pair;
 import org.apache.cassandra.utils.StreamingHistogram;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -55,7 +56,6 @@ public class SSTableMetadata
 public final long maxTimestamp;
 public final double compressionRatio;
 public final String partitioner;
-public final SetInteger ancestors;
 public final StreamingHistogram estimatedTombstoneDropTime;
 
 private SSTableMetadata()
@@ -67,7 +67,6 @@ public class SSTableMetadata
  Long.MAX_VALUE,
  NO_COMPRESSION_RATIO,
  null,
- Collections.IntegeremptySet(),
  defaultTombstoneDropTimeHistogram());
 }
 
@@ -78,7 +77,6 @@ public class SSTableMetadata
 long maxTimestamp,
 double cr,
 String partitioner,
-SetInteger ancestors,
 StreamingHistogram estimatedTombstoneDropTime)
 {
 this.estimatedRowSize = rowSizes;
@@ -88,7 +86,6 @@ public class SSTableMetadata
 this.maxTimestamp = maxTimestamp;
 this.compressionRatio = cr;
 this.partitioner = partitioner;
-this.ancestors = ancestors;
 this.estimatedTombstoneDropTime = estimatedTombstoneDropTime;
 }
 
@@ -193,7 +190,6 @@ public class SSTableMetadata
maxTimestamp,
compressionRatio,
partitioner,
-   ancestors,
estimatedTombstoneDropTime);
 }
 
@@ -242,7 +238,7 @@ public class SSTableMetadata
 {
 private static final Logger logger = 
LoggerFactory.getLogger(SSTableMetadataSerializer.class);
 
-public void serialize(SSTableMetadata sstableStats, DataOutput dos) 
throws IOException
+public void serialize(SSTableMetadata sstableStats, SetInteger 
ancestors, DataOutput dos) throws IOException
 {
 assert sstableStats.partitioner != null;
 
@@ -253,20 +249,31 @@ public class SSTableMetadata
 dos.writeLong(sstableStats.maxTimestamp);
 dos.writeDouble(sstableStats.compressionRatio);
 dos.writeUTF(sstableStats.partitioner);
-dos.writeInt(sstableStats.ancestors.size());
-for (Integer g : sstableStats.ancestors)
+dos.writeInt(ancestors.size());
+

[jira] [Commented] (CASSANDRA-5342) ancestors are not cleared in SSTableMetadata after compactions are done and old SSTables are removed

2013-07-08 Thread Marcus Eriksson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13701912#comment-13701912
 ] 

Marcus Eriksson commented on CASSANDRA-5342:


thanks, committed as 83b75754ff143d4d77b01ef76a813da47779c6f4

opted to leave the Pair in, no strong feelings either

 ancestors are not cleared in SSTableMetadata after compactions are done and 
 old SSTables are removed
 

 Key: CASSANDRA-5342
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5342
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.1.3
Reporter: Wei Zhu
Assignee: Marcus Eriksson
 Fix For: 1.2.7

 Attachments: 0001-CASSANDRA-5342-wip.patch, 
 0001-CASSANDRA-5342-wip-v2.patch, Screen Shot 2013-03-13 at 12.05.08 PM.png


 We are using LCS and have total of 38000 SSTables for one CF. During LCS, 
 there could be over a thousand SSTable involved. All those SSTable IDs are 
 stored in ancestors field of SSTableMetatdata for the new table. In our case, 
 it consumes more than 1G of heap memory for those field. Put it in 
 perspective, the ancestors consume 2 - 3 times more memory than bloomfilter 
 (fp = 0.1 by default) in LCS. 
 We should remove those ancestors from SSTableMetadata after the compaction is 
 finished and the old SSTable is removed. It  might be a big deal for Sized 
 Compaction since there are small number of SSTable involved. But it consumes 
 a lot of memory for LCS. 
 At least, we shouldn't load those ancestors to the memory during startup if 
 the files are removed. 
 I would love to contribute and provide patch. Please let me know how to 
 start. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (CASSANDRA-5723) DateType (timestamp type in CQL3) does not sort pre-'unix epoch' dates correctly

2013-07-08 Thread Sylvain Lebresne (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Lebresne updated CASSANDRA-5723:


Attachment: 5723.txt

Attaching a patch with that new TimestampType. The patch is against 1.2 right 
now, but I'm starting to wonder if 2.0 is not a more reasonable goal.

The basics of the patch is that the CQL3 timestamp type now default to that new 
type. For the native protocol however, we make both DateType and TimestampType 
be returned as 'timestamp'. Otherwise, if we were returning it as a custom 
type, this would likely break users since client driver wouldn't recognize it 
anymore. Besides, the actual sorting of a type in a ResultSet shouldn't matter 
for a CQL3 driver.

On the CQL-over-thrift side however, we return the full thrift comparator 
name, so in practice we'd have to update cqlsh so it continues to work with 
dates, but the patch doesn't do it.

The patch let user switch between DateType and TimestampType, but log a warning 
when you do so.

 DateType (timestamp type in CQL3) does not sort pre-'unix epoch' dates 
 correctly
 

 Key: CASSANDRA-5723
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5723
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.2.3
Reporter: zhouhero
 Fix For: 1.2.3

 Attachments: 5723.txt


 - this bug can be confirmed by fellow:
 1.create table like fellow:
 create table test2 (
 id varchar,
 c varchar,
 create_date timestamp,
 primary key(id)
 );
 create index idx_test2_c on test2 (c);
 create index idx_test2_create_date on test2 (create_date);
 2.insert data like fellow;
 cqlsh:pgl update test2 set create_date='1950-01-01', c='1' where id='111';
 cqlsh:pgl update test2 set create_date='1917-01-01', c='1' where id='111';
 cqlsh:pgl update test2 set create_date='2013-01-01', c='1' where id='111';
 3.select data :
 cqlsh:pgl select * from test2 where c='1' and create_date'2011-01-01 
 12:00:01' ALLOW FILTERING ;
 id | c | create_date
 -+---+--
 111 | 1 | 2012-12-31 15:00:00+
 4. add data:
 update test2 set create_date='1917-05-01', c='1' where id='111';
 5.select data:
 cqlsh:pgl select * from test2 where c='1' and create_date'2011-01-01 
 12:00:01' ALLOW FILTERING ;
 id | c | create_date
 -+---+--
 111 | 1 | 1917-04-30 15:00:00+
 ↑
 the search result is not right!
 it should be fellow:
 id | c | create_date
 -+---+--
 111 | 1 | 2012-12-31 15:00:00+

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (CASSANDRA-5723) DateType (timestamp type in CQL3) does not sort pre-'unix epoch' dates correctly

2013-07-08 Thread Sylvain Lebresne (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Lebresne updated CASSANDRA-5723:


Fix Version/s: (was: 1.2.3)

 DateType (timestamp type in CQL3) does not sort pre-'unix epoch' dates 
 correctly
 

 Key: CASSANDRA-5723
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5723
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.2.3
Reporter: zhouhero
 Attachments: 5723.txt


 - this bug can be confirmed by fellow:
 1.create table like fellow:
 create table test2 (
 id varchar,
 c varchar,
 create_date timestamp,
 primary key(id)
 );
 create index idx_test2_c on test2 (c);
 create index idx_test2_create_date on test2 (create_date);
 2.insert data like fellow;
 cqlsh:pgl update test2 set create_date='1950-01-01', c='1' where id='111';
 cqlsh:pgl update test2 set create_date='1917-01-01', c='1' where id='111';
 cqlsh:pgl update test2 set create_date='2013-01-01', c='1' where id='111';
 3.select data :
 cqlsh:pgl select * from test2 where c='1' and create_date'2011-01-01 
 12:00:01' ALLOW FILTERING ;
 id | c | create_date
 -+---+--
 111 | 1 | 2012-12-31 15:00:00+
 4. add data:
 update test2 set create_date='1917-05-01', c='1' where id='111';
 5.select data:
 cqlsh:pgl select * from test2 where c='1' and create_date'2011-01-01 
 12:00:01' ALLOW FILTERING ;
 id | c | create_date
 -+---+--
 111 | 1 | 1917-04-30 15:00:00+
 ↑
 the search result is not right!
 it should be fellow:
 id | c | create_date
 -+---+--
 111 | 1 | 2012-12-31 15:00:00+

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-4495) Don't tie client side use of AbstractType to JDBC

2013-07-08 Thread Rick Shaw (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702018#comment-13702018
 ] 

Rick Shaw commented on CASSANDRA-4495:
--

LGTM. Should be no problem to incorporate into client side work. Thanks for the 
enhancements!

 Don't tie client side use of AbstractType to JDBC
 -

 Key: CASSANDRA-4495
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4495
 Project: Cassandra
  Issue Type: Improvement
Reporter: Sylvain Lebresne
Assignee: Carl Yeksigian
Priority: Minor
 Fix For: 2.0

 Attachments: 4495.patch, 4495-v2.patch, 4495-v3.patch


 We currently expose the AbstractType to java clients that want to reuse them 
 though the cql.jdbc.* classes. I think this shouldn't be tied to the JDBC 
 standard. JDBC was make for SQL DB, which Cassandra is not (CQL is not SQL 
 and will never be). Typically, there is a fair amount of the JDBC standard 
 that cannot be implemented with C*, and there is a number of specificity of 
 C* that are not in JDBC (typically the set and maps collections).
 So I propose to extract simple type classes with just a compose and decompose 
 method (but without ties to jdbc, which would allow all the jdbc specific 
 method those types have) in the purpose of exporting that in a separate jar 
 for clients (we could put that in a org.apache.cassandra.type package for 
 instance). We could then deprecate the jdbc classes with basically the same 
 schedule than CQL2.
 Let me note that this is *not* saying there shouldn't be a JDBC driver for 
 Cassandra.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-4775) Counters 2.0

2013-07-08 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702029#comment-13702029
 ] 

Jonathan Ellis commented on CASSANDRA-4775:
---

bq. that problem is not inherent to counters 1.0

You'll have to explain that for me in small words, then -- I don't see how 
moving to explicit read-before-write allows us to safely replay the same 
commitlog segment twice, for instance.

 Counters 2.0
 

 Key: CASSANDRA-4775
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4775
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Arya Goudarzi
Assignee: Aleksey Yeschenko
  Labels: counters
 Fix For: 2.1


 The existing partitioned counters remain a source of frustration for most 
 users almost two years after being introduced.  The remaining problems are 
 inherent in the design, not something that can be fixed given enough 
 time/eyeballs.
 Ideally a solution would give us
 - similar performance
 - less special cases in the code
 - potential for a retry mechanism

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Comment Edited] (CASSANDRA-4775) Counters 2.0

2013-07-08 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702029#comment-13702029
 ] 

Jonathan Ellis edited comment on CASSANDRA-4775 at 7/8/13 2:34 PM:
---

bq. that problem is not inherent to counters 1.0

You'll have to explain that for me in small words, then -- I don't see how 
moving to lock-and-read-before-write allows us to safely replay the same 
commitlog segment twice, for instance.

  was (Author: jbellis):
bq. that problem is not inherent to counters 1.0

You'll have to explain that for me in small words, then -- I don't see how 
moving to explicit read-before-write allows us to safely replay the same 
commitlog segment twice, for instance.
  
 Counters 2.0
 

 Key: CASSANDRA-4775
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4775
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Arya Goudarzi
Assignee: Aleksey Yeschenko
  Labels: counters
 Fix For: 2.1


 The existing partitioned counters remain a source of frustration for most 
 users almost two years after being introduced.  The remaining problems are 
 inherent in the design, not something that can be fixed given enough 
 time/eyeballs.
 Ideally a solution would give us
 - similar performance
 - less special cases in the code
 - potential for a retry mechanism

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-4775) Counters 2.0

2013-07-08 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702042#comment-13702042
 ] 

Sylvain Lebresne commented on CASSANDRA-4775:
-

We currently have 2 types of shards in a couter context: local and remotes.  
Remote ones are resolved using a the biggest-clock wins rule so they are not 
problem for internal idempotence. The problem are local shards: when a new 
increment comes int, the leader of that increment writes a new cell with that 
increment as local shard, and those local shard get summed during merge. That's 
the problem, since duplicating said shard imply a duplicate count.

But those local shards are an implementation detail. The idea of doing a 
read-before-write imply not using those anymore. So on a new increment, the 
leader of the increment would read the current value for his own shard, 
compute the increment value (and incremented clock) and write that result. But 
it's now the result of the increment (for his own shard, other node can safely 
increment their own shard concurrently), not an increment. So duplicating those 
cells doesn't matter at all. It does mean you synchronize locally the 
read-before-write of course, hence my mentioning of locking above.

Make sense?

 Counters 2.0
 

 Key: CASSANDRA-4775
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4775
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Arya Goudarzi
Assignee: Aleksey Yeschenko
  Labels: counters
 Fix For: 2.1


 The existing partitioned counters remain a source of frustration for most 
 users almost two years after being introduced.  The remaining problems are 
 inherent in the design, not something that can be fixed given enough 
 time/eyeballs.
 Ideally a solution would give us
 - similar performance
 - less special cases in the code
 - potential for a retry mechanism

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Assigned] (CASSANDRA-5728) Check if native server is running before starting it up

2013-07-08 Thread Cyril Scetbon (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5728?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Cyril Scetbon reassigned CASSANDRA-5728:


Assignee: Cyril Scetbon

 Check if native server is running before starting it up
 ---

 Key: CASSANDRA-5728
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5728
 Project: Cassandra
  Issue Type: Improvement
Affects Versions: 1.2.6
Reporter: Manoj Mainali
Assignee: Cyril Scetbon
 Attachments: trunk-CASSANDRA-5728.patch


 It is possible to enable/disable thrift and native server via nodetool. 
 However, there is a slight difference in their behaviour. In the case of 
 thrift server, if the server is already running, enable will ignore and will 
 not throw any exceptions. However, in the case of native server if the server 
 is already running an exception is thrown. In the case of thrift, we check if 
 the server is already running but not in the case of binary. The exception is 
 perfectly valid, but, we should have consistent behaviour with thirft and 
 binary server.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-4775) Counters 2.0

2013-07-08 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702046#comment-13702046
 ] 

Jonathan Ellis commented on CASSANDRA-4775:
---

So we'd lock even before the commitlog entry?

 Counters 2.0
 

 Key: CASSANDRA-4775
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4775
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Arya Goudarzi
Assignee: Aleksey Yeschenko
  Labels: counters
 Fix For: 2.1


 The existing partitioned counters remain a source of frustration for most 
 users almost two years after being introduced.  The remaining problems are 
 inherent in the design, not something that can be fixed given enough 
 time/eyeballs.
 Ideally a solution would give us
 - similar performance
 - less special cases in the code
 - potential for a retry mechanism

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-4775) Counters 2.0

2013-07-08 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702071#comment-13702071
 ] 

Sylvain Lebresne commented on CASSANDRA-4775:
-

bq. So we'd lock even before the commitlog entry?

Yes. The SP.applyCounterMutationOnLeader would become something like (on just 
one counter to make it simpler):
{noformat}
public AbstractWriteResponseHandler applyCounterMutationOnLeader(CFStore cfs, 
ByteBuffer key, CounterUpdateColumn increment)
{
   counterLock.lock();
   try
   {
  CounterColumn current = read(cfs, key, column.name());
  CounterColumn newValue = current.add(increment); // This would return a 
new value where the current node shard has an incremented value and clock
  cfs.apply(newValue);
   }
   finally
   {
   counterLock.unlock();
   }
}
{noformat}
(of course in practice we would shard that counterLock, and there is probably 
some fancier optimization to do).

 Counters 2.0
 

 Key: CASSANDRA-4775
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4775
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Arya Goudarzi
Assignee: Aleksey Yeschenko
  Labels: counters
 Fix For: 2.1


 The existing partitioned counters remain a source of frustration for most 
 users almost two years after being introduced.  The remaining problems are 
 inherent in the design, not something that can be fixed given enough 
 time/eyeballs.
 Ideally a solution would give us
 - similar performance
 - less special cases in the code
 - potential for a retry mechanism

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5619) CAS UPDATE for a lost race: save round trip by returning column values

2013-07-08 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702084#comment-13702084
 ] 

Jonathan Ellis commented on CASSANDRA-5619:
---

Ugh.  In that case, I guess the latest patch is probably the lesser evil.  Ship 
it!

 CAS UPDATE for a lost race: save round trip by returning column values
 --

 Key: CASSANDRA-5619
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5619
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Affects Versions: 2.0 beta 1
Reporter: Blair Zajac
Assignee: Sylvain Lebresne
 Fix For: 2.0 beta 1

 Attachments: 0001-Add-back-boolean-result-column.txt, 
 5619_thrift_fixup.txt, 5619.txt


 Looking at the new CAS CQL3 support examples [1], if one lost a race for an 
 UPDATE, to save a round trip to get the current values to decide if you need 
 to perform your work, could the columns that were used in the IF clause also 
 be returned to the caller?  Maybe the columns values as part of the SET part 
 could also be returned.
 I don't know if this is generally useful though.
 In the case of creating a new user account with a given username which is the 
 partition key, if one lost the race to another person creating an account 
 with the same username, it doesn't matter to the loser what the column values 
 are, just that they lost.
 I'm new to Cassandra, so maybe there's other use cases, such as doing 
 incremental amount of work on a row.  In pure Java projects I've done while 
 loops around AtomicReference.html#compareAndSet() until the work was done on 
 the referenced object to handle multiple threads each making forward progress 
 in updating the references object.
 [1] https://github.com/riptano/cassandra-dtest/blob/master/cql_tests.py#L3044

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


git commit: Commit 3rd (and hopefully last) part of 5619

2013-07-08 Thread slebresne
Updated Branches:
  refs/heads/trunk 07ca445e5 - 4cd087f44


Commit 3rd (and hopefully last) part of 5619


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

Branch: refs/heads/trunk
Commit: 4cd087f44a0fd49ea82745d4f7aeaeace1fa
Parents: 07ca445
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Mon Jul 8 18:08:33 2013 +0200
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Mon Jul 8 18:08:33 2013 +0200

--
 .../cql3/statements/ModificationStatement.java  | 47 ++--
 1 file changed, 43 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4cd087f4/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
index ed30748..63655a8 100644
--- a/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
@@ -38,13 +38,14 @@ import org.apache.cassandra.service.pager.PagingState;
 import org.apache.cassandra.thrift.ThriftValidation;
 import org.apache.cassandra.transport.messages.ResultMessage;
 import org.apache.cassandra.utils.Pair;
+import org.apache.cassandra.utils.ByteBufferUtil;
 
 /*
  * Abstract parent class of individual modifications, i.e. INSERT, UPDATE and 
DELETE.
  */
 public abstract class ModificationStatement implements CQLStatement
 {
-private static final ColumnIdentifier RESULT_COLUMN = new 
ColumnIdentifier(result, false);
+private static final ColumnIdentifier CAS_RESULT_COLUMN = new 
ColumnIdentifier([applied], false);
 
 private final int boundTerms;
 public final CFMetaData cfm;
@@ -374,9 +375,37 @@ public abstract class ModificationStatement implements 
CQLStatement
 ColumnFamily expected = buildConditions(key, clusteringPrefix, params);
 
 ColumnFamily result = StorageProxy.cas(keyspace(), columnFamily(), 
key, clusteringPrefix, expected, updates, cl);
-return result == null
- ? new ResultMessage.Void()
- : new ResultMessage.Rows(buildCasFailureResultSet(key, result));
+return new ResultMessage.Rows(buildCasResultSet(key, result));
+}
+
+private ResultSet buildCasResultSet(ByteBuffer key, ColumnFamily cf) 
throws InvalidRequestException
+{
+boolean success = cf == null;
+
+ColumnSpecification spec = new ColumnSpecification(keyspace(), 
columnFamily(), CAS_RESULT_COLUMN, BooleanType.instance);
+ResultSet.Metadata metadata = new 
ResultSet.Metadata(Collections.singletonList(spec));
+ListListByteBuffer rows = 
Collections.singletonList(Collections.singletonList(BooleanType.instance.decompose(success)));
+
+ResultSet rs = new ResultSet(metadata, rows);
+return success ? rs : merge(rs, buildCasFailureResultSet(key, cf));
+}
+
+private static ResultSet merge(ResultSet left, ResultSet right)
+{
+if (left.size() == 0)
+return right;
+else if (right.size() == 0)
+return left;
+
+assert left.size() == 1  right.size() == 1;
+int size = left.metadata.names.size() + right.metadata.names.size();
+ListColumnSpecification specs = new 
ArrayListColumnSpecification(size);
+specs.addAll(left.metadata.names);
+specs.addAll(right.metadata.names);
+ListByteBuffer row = new ArrayListByteBuffer(size);
+row.addAll(left.rows.get(0));
+row.addAll(right.rows.get(0));
+return new ResultSet(new ResultSet.Metadata(specs), 
Collections.singletonList(row));
 }
 
 private ResultSet buildCasFailureResultSet(ByteBuffer key, ColumnFamily 
cf) throws InvalidRequestException
@@ -467,6 +496,16 @@ public abstract class ModificationStatement implements 
CQLStatement
 return null;
 
 ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(cfm);
+
+// CQL row marker
+CFDefinition cfDef = cfm.getCfDef();
+if (cfDef.isComposite  !cfDef.isCompact  !cfm.isSuper())
+{
+ByteBuffer name = 
clusteringPrefix.copy().add(ByteBufferUtil.EMPTY_BYTE_BUFFER).build();
+cf.addColumn(params.makeColumn(name, 
ByteBufferUtil.EMPTY_BYTE_BUFFER));
+}
+
+// Conditions
 for (Operation condition : columnConditions)
 condition.execute(key, cf, clusteringPrefix.copy(), params);
 



[jira] [Resolved] (CASSANDRA-5619) CAS UPDATE for a lost race: save round trip by returning column values

2013-07-08 Thread Sylvain Lebresne (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Lebresne resolved CASSANDRA-5619.
-

Resolution: Fixed

Alright, committed, thanks.

 CAS UPDATE for a lost race: save round trip by returning column values
 --

 Key: CASSANDRA-5619
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5619
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Affects Versions: 2.0 beta 1
Reporter: Blair Zajac
Assignee: Sylvain Lebresne
 Fix For: 2.0 beta 1

 Attachments: 0001-Add-back-boolean-result-column.txt, 
 5619_thrift_fixup.txt, 5619.txt


 Looking at the new CAS CQL3 support examples [1], if one lost a race for an 
 UPDATE, to save a round trip to get the current values to decide if you need 
 to perform your work, could the columns that were used in the IF clause also 
 be returned to the caller?  Maybe the columns values as part of the SET part 
 could also be returned.
 I don't know if this is generally useful though.
 In the case of creating a new user account with a given username which is the 
 partition key, if one lost the race to another person creating an account 
 with the same username, it doesn't matter to the loser what the column values 
 are, just that they lost.
 I'm new to Cassandra, so maybe there's other use cases, such as doing 
 incremental amount of work on a row.  In pure Java projects I've done while 
 loops around AtomicReference.html#compareAndSet() until the work was done on 
 the referenced object to handle multiple threads each making forward progress 
 in updating the references object.
 [1] https://github.com/riptano/cassandra-dtest/blob/master/cql_tests.py#L3044

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5723) DateType (timestamp type in CQL3) does not sort pre-'unix epoch' dates correctly

2013-07-08 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702091#comment-13702091
 ] 

Jonathan Ellis commented on CASSANDRA-5723:
---

+1, but I agree that this should be for 2.0.

 DateType (timestamp type in CQL3) does not sort pre-'unix epoch' dates 
 correctly
 

 Key: CASSANDRA-5723
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5723
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.2.3
Reporter: zhouhero
Assignee: Sylvain Lebresne
 Attachments: 5723.txt


 - this bug can be confirmed by fellow:
 1.create table like fellow:
 create table test2 (
 id varchar,
 c varchar,
 create_date timestamp,
 primary key(id)
 );
 create index idx_test2_c on test2 (c);
 create index idx_test2_create_date on test2 (create_date);
 2.insert data like fellow;
 cqlsh:pgl update test2 set create_date='1950-01-01', c='1' where id='111';
 cqlsh:pgl update test2 set create_date='1917-01-01', c='1' where id='111';
 cqlsh:pgl update test2 set create_date='2013-01-01', c='1' where id='111';
 3.select data :
 cqlsh:pgl select * from test2 where c='1' and create_date'2011-01-01 
 12:00:01' ALLOW FILTERING ;
 id | c | create_date
 -+---+--
 111 | 1 | 2012-12-31 15:00:00+
 4. add data:
 update test2 set create_date='1917-05-01', c='1' where id='111';
 5.select data:
 cqlsh:pgl select * from test2 where c='1' and create_date'2011-01-01 
 12:00:01' ALLOW FILTERING ;
 id | c | create_date
 -+---+--
 111 | 1 | 1917-04-30 15:00:00+
 ↑
 the search result is not right!
 it should be fellow:
 id | c | create_date
 -+---+--
 111 | 1 | 2012-12-31 15:00:00+

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


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

2013-07-08 Thread jbellis
Merge branch 'cassandra-1.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/a90e8b77
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a90e8b77
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a90e8b77

Branch: refs/heads/trunk
Commit: a90e8b77c5b0f4d231bd7b61abc0bd16450beeaa
Parents: 4cd087f f8c072e
Author: Jonathan Ellis jbel...@apache.org
Authored: Mon Jul 8 11:30:39 2013 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Mon Jul 8 11:30:39 2013 -0500

--
 CHANGES.txt | 2 ++
 src/java/org/apache/cassandra/transport/Server.java | 7 +--
 2 files changed, 7 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a90e8b77/CHANGES.txt
--
diff --cc CHANGES.txt
index 40c076c,7c16cd0..5d597bd
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,81 -1,8 +1,82 @@@
 +2.0
 + * Removed on-heap row cache (CASSANDRA-5348)
 + * use nanotime consistently for node-local timeouts (CASSANDRA-5581)
 + * Avoid unnecessary second pass on name-based queries (CASSANDRA-5577)
 + * Experimental triggers (CASSANDRA-1311)
 + * JEMalloc support for off-heap allocation (CASSANDRA-3997)
 + * Single-pass compaction (CASSANDRA-4180)
 + * Removed token range bisection (CASSANDRA-5518)
 + * Removed compatibility with pre-1.2.5 sstables and network messages
 +   (CASSANDRA-5511)
 + * removed PBSPredictor (CASSANDRA-5455)
 + * CAS support (CASSANDRA-5062, 5441, 5442, 5443, 5619, 5667)
 + * Leveled compaction performs size-tiered compactions in L0 
 +   (CASSANDRA-5371, 5439)
 + * Add yaml network topology snitch for mixed ec2/other envs (CASSANDRA-5339)
 + * Log when a node is down longer than the hint window (CASSANDRA-4554)
 + * Optimize tombstone creation for ExpiringColumns (CASSANDRA-4917)
 + * Improve LeveledScanner work estimation (CASSANDRA-5250, 5407)
 + * Replace compaction lock with runWithCompactionsDisabled (CASSANDRA-3430)
 + * Change Message IDs to ints (CASSANDRA-5307)
 + * Move sstable level information into the Stats component, removing the
 +   need for a separate Manifest file (CASSANDRA-4872)
 + * avoid serializing to byte[] on commitlog append (CASSANDRA-5199)
 + * make index_interval configurable per columnfamily (CASSANDRA-3961, 
CASSANDRA-5650)
 + * add default_time_to_live (CASSANDRA-3974)
 + * add memtable_flush_period_in_ms (CASSANDRA-4237)
 + * replace supercolumns internally by composites (CASSANDRA-3237, 5123)
 + * upgrade thrift to 0.9.0 (CASSANDRA-3719)
 + * drop unnecessary keyspace parameter from user-defined compaction API 
 +   (CASSANDRA-5139)
 + * more robust solution to incomplete compactions + counters (CASSANDRA-5151)
 + * Change order of directory searching for c*.in.sh (CASSANDRA-3983)
 + * Add tool to reset SSTable compaction level for LCS (CASSANDRA-5271)
 + * Allow custom configuration loader (CASSANDRA-5045)
 + * Remove memory emergency pressure valve logic (CASSANDRA-3534)
 + * Reduce request latency with eager retry (CASSANDRA-4705)
 + * cqlsh: Remove ASSUME command (CASSANDRA-5331)
 + * Rebuild BF when loading sstables if bloom_filter_fp_chance
 +   has changed since compaction (CASSANDRA-5015)
 + * remove row-level bloom filters (CASSANDRA-4885)
 + * Change Kernel Page Cache skipping into row preheating (disabled by default)
 +   (CASSANDRA-4937)
 + * Improve repair by deciding on a gcBefore before sending
 +   out TreeRequests (CASSANDRA-4932)
 + * Add an official way to disable compactions (CASSANDRA-5074)
 + * Reenable ALTER TABLE DROP with new semantics (CASSANDRA-3919)
 + * Add binary protocol versioning (CASSANDRA-5436)
 + * Swap THshaServer for TThreadedSelectorServer (CASSANDRA-5530)
 + * Add alias support to SELECT statement (CASSANDRA-5075)
 + * Don't create empty RowMutations in CommitLogReplayer (CASSANDRA-5541)
 + * Use range tombstones when dropping cfs/columns from schema (CASSANDRA-5579)
 + * cqlsh: drop CQL2/CQL3-beta support (CASSANDRA-5585)
 + * Track max/min column names in sstables to be able to optimize slice
 +   queries (CASSANDRA-5514, CASSANDRA-5595, CASSANDRA-5600)
 + * Binary protocol: allow batching already prepared statements 
(CASSANDRA-4693)
 + * Allow preparing timestamp, ttl and limit in CQL3 queries (CASSANDRA-4450)
 + * Support native link w/o JNA in Java7 (CASSANDRA-3734)
 + * Use SASL authentication in binary protocol v2 (CASSANDRA-5545)
 + * Replace Thrift HsHa with LMAX Disruptor based implementation 
(CASSANDRA-5582)
 + * cqlsh: Add row count to SELECT output (CASSANDRA-5636)
 + * Include a timestamp with all read commands to determine column expiration
 +   (CASSANDRA-5149)
 + * Streaming 2.0 (CASSANDRA-5286, 5699)
 + * Conditional create/drop ks/table/index 

[2/3] git commit: make starting native protocol server idempotent patch by Manoj Mainali; reviewed by jbellis for CASSANDRA-5728

2013-07-08 Thread jbellis
make starting native protocol server idempotent
patch by Manoj Mainali; reviewed by jbellis for CASSANDRA-5728


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

Branch: refs/heads/trunk
Commit: f8c072e974eef21ca7287e21db33f09788cb56c0
Parents: 83b7575
Author: Jonathan Ellis jbel...@apache.org
Authored: Mon Jul 8 11:30:31 2013 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Mon Jul 8 11:30:31 2013 -0500

--
 CHANGES.txt | 2 ++
 src/java/org/apache/cassandra/transport/Server.java | 7 +--
 2 files changed, 7 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f8c072e9/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index b08f967..7c16cd0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.7
+ * make starting native protocol server idempotent (CASSANDRA-5728)
  * Fix loading key cache when a saved entry is no longer valid (CASSANDRA-5706)
  * Fix serialization of the LEFT gossip value (CASSANDRA-5696)
  * Pig: support for cql3 tables (CASSANDRA-5234)
@@ -9,6 +10,7 @@
  * Expire entries out of ThriftSessionManager (CASSANRDA-5719)
  * Don't keep ancestor information in memory (CASSANDRA-5342)
 
+
 1.2.6
  * Fix tracing when operation completes before all responses arrive 
(CASSANDRA-5668)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f8c072e9/src/java/org/apache/cassandra/transport/Server.java
--
diff --git a/src/java/org/apache/cassandra/transport/Server.java 
b/src/java/org/apache/cassandra/transport/Server.java
index 51a90e8..7400a8b 100644
--- a/src/java/org/apache/cassandra/transport/Server.java
+++ b/src/java/org/apache/cassandra/transport/Server.java
@@ -95,8 +95,11 @@ public class Server implements CassandraDaemon.Server
 
 public void start()
 {
-run();
-isRunning.set(true);
+   if(!isRunning())
+   {
+run();
+isRunning.set(true);
+   }
 }
 
 public void stop()



[1/3] git commit: make starting native protocol server idempotent patch by Manoj Mainali; reviewed by jbellis for CASSANDRA-5728

2013-07-08 Thread jbellis
Updated Branches:
  refs/heads/cassandra-1.2 83b75754f - f8c072e97
  refs/heads/trunk 4cd087f44 - a90e8b77c


make starting native protocol server idempotent
patch by Manoj Mainali; reviewed by jbellis for CASSANDRA-5728


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

Branch: refs/heads/cassandra-1.2
Commit: f8c072e974eef21ca7287e21db33f09788cb56c0
Parents: 83b7575
Author: Jonathan Ellis jbel...@apache.org
Authored: Mon Jul 8 11:30:31 2013 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Mon Jul 8 11:30:31 2013 -0500

--
 CHANGES.txt | 2 ++
 src/java/org/apache/cassandra/transport/Server.java | 7 +--
 2 files changed, 7 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f8c072e9/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index b08f967..7c16cd0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.7
+ * make starting native protocol server idempotent (CASSANDRA-5728)
  * Fix loading key cache when a saved entry is no longer valid (CASSANDRA-5706)
  * Fix serialization of the LEFT gossip value (CASSANDRA-5696)
  * Pig: support for cql3 tables (CASSANDRA-5234)
@@ -9,6 +10,7 @@
  * Expire entries out of ThriftSessionManager (CASSANRDA-5719)
  * Don't keep ancestor information in memory (CASSANDRA-5342)
 
+
 1.2.6
  * Fix tracing when operation completes before all responses arrive 
(CASSANDRA-5668)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f8c072e9/src/java/org/apache/cassandra/transport/Server.java
--
diff --git a/src/java/org/apache/cassandra/transport/Server.java 
b/src/java/org/apache/cassandra/transport/Server.java
index 51a90e8..7400a8b 100644
--- a/src/java/org/apache/cassandra/transport/Server.java
+++ b/src/java/org/apache/cassandra/transport/Server.java
@@ -95,8 +95,11 @@ public class Server implements CassandraDaemon.Server
 
 public void start()
 {
-run();
-isRunning.set(true);
+   if(!isRunning())
+   {
+run();
+isRunning.set(true);
+   }
 }
 
 public void stop()



[4/4] git commit: Add TimestampType to replace DateType

2013-07-08 Thread slebresne
Add TimestampType to replace DateType

patch by slebresne; reviewed by jbellis for CASSANDRA-5723


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

Branch: refs/heads/trunk
Commit: 9ec7b808ac6786db74b5cbad0a63f6a9cdfdc5bd
Parents: e9c6742
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Mon Jul 8 15:49:21 2013 +0200
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Mon Jul 8 18:55:32 2013 +0200

--
 CHANGES.txt |   1 +
 NEWS.txt|   1 +
 .../org/apache/cassandra/cql3/CQL3Type.java |   2 +-
 .../apache/cassandra/cql3/UntypedResultSet.java |   2 +-
 .../cassandra/cql3/functions/TimeuuidFcts.java  |  14 +-
 .../cassandra/db/marshal/AbstractType.java  |   1 -
 .../apache/cassandra/db/marshal/DateType.java   |  42 --
 .../apache/cassandra/db/marshal/LongType.java   |   8 +-
 .../cassandra/db/marshal/TimestampType.java | 145 +++
 .../apache/cassandra/db/marshal/UUIDType.java   |   2 +-
 .../hadoop/pig/AbstractCassandraStorage.java|   4 +-
 .../org/apache/cassandra/tools/Shuffle.java |   4 +-
 .../apache/cassandra/transport/DataType.java|   5 +-
 .../apache/cassandra/type/DateSerializer.java   | 104 -
 .../cassandra/type/TimestampSerializer.java | 104 +
 15 files changed, 304 insertions(+), 135 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9ec7b808/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index eaa5eea..4b7dcc5 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -72,6 +72,7 @@
  * Move resultset type information into prepare, not execute (CASSANDRA-5649)
  * Auto paging in binary protocol (CASSANDRA-4415, 5714)
  * Don't tie client side use of AbstractType to JDBC (CASSANDRA-4495)
+ * Adds new TimestampType to replace DateType (CASSANDRA-5723)
 
 
 1.2.7

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9ec7b808/NEWS.txt
--
diff --git a/NEWS.txt b/NEWS.txt
index 7e12e2c..652f8c2 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -73,6 +73,7 @@ Features
 
 1.2.7
 =
+
 Upgrading
 -
 - If you have decommissioned a node in the past 72 hours, it is imperative

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9ec7b808/src/java/org/apache/cassandra/cql3/CQL3Type.java
--
diff --git a/src/java/org/apache/cassandra/cql3/CQL3Type.java 
b/src/java/org/apache/cassandra/cql3/CQL3Type.java
index d7a4e8e..aed3165 100644
--- a/src/java/org/apache/cassandra/cql3/CQL3Type.java
+++ b/src/java/org/apache/cassandra/cql3/CQL3Type.java
@@ -41,7 +41,7 @@ public interface CQL3Type
 INET (InetAddressType.instance),
 INT  (Int32Type.instance),
 TEXT (UTF8Type.instance),
-TIMESTAMP(DateType.instance),
+TIMESTAMP(TimestampType.instance),
 UUID (UUIDType.instance),
 VARCHAR  (UTF8Type.instance),
 VARINT   (IntegerType.instance),

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9ec7b808/src/java/org/apache/cassandra/cql3/UntypedResultSet.java
--
diff --git a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java 
b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java
index 9bee563..25294d6 100644
--- a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java
+++ b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java
@@ -128,7 +128,7 @@ public class UntypedResultSet implements 
IterableUntypedResultSet.Row
 
 public Date getTimestamp(String column)
 {
-return DateType.instance.compose(data.get(column));
+return TimestampType.instance.compose(data.get(column));
 }
 
 public long getLong(String column)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9ec7b808/src/java/org/apache/cassandra/cql3/functions/TimeuuidFcts.java
--
diff --git a/src/java/org/apache/cassandra/cql3/functions/TimeuuidFcts.java 
b/src/java/org/apache/cassandra/cql3/functions/TimeuuidFcts.java
index e325e8f..18ccd56 100644
--- a/src/java/org/apache/cassandra/cql3/functions/TimeuuidFcts.java
+++ b/src/java/org/apache/cassandra/cql3/functions/TimeuuidFcts.java
@@ -21,7 +21,7 @@ import java.nio.ByteBuffer;
 import java.util.Date;
 import java.util.List;
 
-import org.apache.cassandra.db.marshal.DateType;
+import 

[jira] [Created] (CASSANDRA-5729) Add new TimestampType to cqlsh

2013-07-08 Thread Sylvain Lebresne (JIRA)
Sylvain Lebresne created CASSANDRA-5729:
---

 Summary: Add new TimestampType to cqlsh
 Key: CASSANDRA-5729
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5729
 Project: Cassandra
  Issue Type: Bug
Reporter: Sylvain Lebresne
Assignee: Aleksey Yeschenko
Priority: Minor
 Fix For: 2.0


Since cqlsh used CQL-over-thrift currently, we'd need to add support for the 
new TimestampType introduced in CASSANDRA-5723.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (CASSANDRA-5723) DateType (timestamp type in CQL3) does not sort pre-'unix epoch' dates correctly

2013-07-08 Thread Sylvain Lebresne (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Lebresne updated CASSANDRA-5723:


Reviewer: jbellis

 DateType (timestamp type in CQL3) does not sort pre-'unix epoch' dates 
 correctly
 

 Key: CASSANDRA-5723
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5723
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.2.3
Reporter: zhouhero
Assignee: Sylvain Lebresne
 Fix For: 2.0 beta 1

 Attachments: 5723.txt


 - this bug can be confirmed by fellow:
 1.create table like fellow:
 create table test2 (
 id varchar,
 c varchar,
 create_date timestamp,
 primary key(id)
 );
 create index idx_test2_c on test2 (c);
 create index idx_test2_create_date on test2 (create_date);
 2.insert data like fellow;
 cqlsh:pgl update test2 set create_date='1950-01-01', c='1' where id='111';
 cqlsh:pgl update test2 set create_date='1917-01-01', c='1' where id='111';
 cqlsh:pgl update test2 set create_date='2013-01-01', c='1' where id='111';
 3.select data :
 cqlsh:pgl select * from test2 where c='1' and create_date'2011-01-01 
 12:00:01' ALLOW FILTERING ;
 id | c | create_date
 -+---+--
 111 | 1 | 2012-12-31 15:00:00+
 4. add data:
 update test2 set create_date='1917-05-01', c='1' where id='111';
 5.select data:
 cqlsh:pgl select * from test2 where c='1' and create_date'2011-01-01 
 12:00:01' ALLOW FILTERING ;
 id | c | create_date
 -+---+--
 111 | 1 | 1917-04-30 15:00:00+
 ↑
 the search result is not right!
 it should be fellow:
 id | c | create_date
 -+---+--
 111 | 1 | 2012-12-31 15:00:00+

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (CASSANDRA-5723) DateType (timestamp type in CQL3) does not sort pre-'unix epoch' dates correctly

2013-07-08 Thread Sylvain Lebresne (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Lebresne updated CASSANDRA-5723:


Fix Version/s: 2.0 beta 1

 DateType (timestamp type in CQL3) does not sort pre-'unix epoch' dates 
 correctly
 

 Key: CASSANDRA-5723
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5723
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.2.3
Reporter: zhouhero
Assignee: Sylvain Lebresne
 Fix For: 2.0 beta 1

 Attachments: 5723.txt


 - this bug can be confirmed by fellow:
 1.create table like fellow:
 create table test2 (
 id varchar,
 c varchar,
 create_date timestamp,
 primary key(id)
 );
 create index idx_test2_c on test2 (c);
 create index idx_test2_create_date on test2 (create_date);
 2.insert data like fellow;
 cqlsh:pgl update test2 set create_date='1950-01-01', c='1' where id='111';
 cqlsh:pgl update test2 set create_date='1917-01-01', c='1' where id='111';
 cqlsh:pgl update test2 set create_date='2013-01-01', c='1' where id='111';
 3.select data :
 cqlsh:pgl select * from test2 where c='1' and create_date'2011-01-01 
 12:00:01' ALLOW FILTERING ;
 id | c | create_date
 -+---+--
 111 | 1 | 2012-12-31 15:00:00+
 4. add data:
 update test2 set create_date='1917-05-01', c='1' where id='111';
 5.select data:
 cqlsh:pgl select * from test2 where c='1' and create_date'2011-01-01 
 12:00:01' ALLOW FILTERING ;
 id | c | create_date
 -+---+--
 111 | 1 | 1917-04-30 15:00:00+
 ↑
 the search result is not right!
 it should be fellow:
 id | c | create_date
 -+---+--
 111 | 1 | 2012-12-31 15:00:00+

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Created] (CASSANDRA-5730) Re-add ScrubTest post single-pass compaction

2013-07-08 Thread Sylvain Lebresne (JIRA)
Sylvain Lebresne created CASSANDRA-5730:
---

 Summary: Re-add ScrubTest post single-pass compaction
 Key: CASSANDRA-5730
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5730
 Project: Cassandra
  Issue Type: Test
Reporter: Sylvain Lebresne
Assignee: Jason Brown
Priority: Minor
 Fix For: 2.0


Follow up of CASSANDRA-5429 for adding back a ScrubTest.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Resolved] (CASSANDRA-5429) Update scrub and scrubtest for single-pass compaction format

2013-07-08 Thread Sylvain Lebresne (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5429?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Lebresne resolved CASSANDRA-5429.
-

Resolution: Fixed

Don't want to hold back beta1, so created CASSANDRA-5730 as a follow up to add 
back scrubTest.

 Update scrub and scrubtest for single-pass compaction format
 

 Key: CASSANDRA-5429
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5429
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 2.0 beta 1
Reporter: Jonathan Ellis
Assignee: Jason Brown
 Fix For: 2.0 beta 1

 Attachments: 5429-v1.diff




--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Created] (CASSANDRA-5731) Should use index_interval from already loaded index summary

2013-07-08 Thread Yuki Morishita (JIRA)
Yuki Morishita created CASSANDRA-5731:
-

 Summary: Should use index_interval from already loaded index 
summary
 Key: CASSANDRA-5731
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5731
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 2.0 beta 1
Reporter: Yuki Morishita
Assignee: Yuki Morishita
Priority: Trivial
 Fix For: 2.0


Since index_interval can be changed anytime in 2.0, SSTableReader should use 
index interval from loaded summary.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (CASSANDRA-5731) Should use index_interval from already loaded index summary

2013-07-08 Thread Yuki Morishita (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yuki Morishita updated CASSANDRA-5731:
--

Attachment: 5731.txt

Fix attached.

 Should use index_interval from already loaded index summary
 ---

 Key: CASSANDRA-5731
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5731
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 2.0 beta 1
Reporter: Yuki Morishita
Assignee: Yuki Morishita
Priority: Trivial
 Fix For: 2.0

 Attachments: 5731.txt


 Since index_interval can be changed anytime in 2.0, SSTableReader should use 
 index interval from loaded summary.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[1/3] Renames post 4495

2013-07-08 Thread slebresne
Updated Branches:
  refs/heads/trunk 9ec7b808a - fc8b76f79


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fc8b76f7/src/java/org/apache/cassandra/type/SetSerializer.java
--
diff --git a/src/java/org/apache/cassandra/type/SetSerializer.java 
b/src/java/org/apache/cassandra/type/SetSerializer.java
deleted file mode 100644
index f60acb4..000
--- a/src/java/org/apache/cassandra/type/SetSerializer.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * 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.type;
-
-import java.nio.BufferUnderflowException;
-import java.nio.ByteBuffer;
-import java.util.*;
-
-public class SetSerializerT extends CollectionSerializerSetT
-{
-// interning instances
-private static final MapAbstractSerializer?, SetSerializer instances = 
new HashMapAbstractSerializer?, SetSerializer();
-
-public final AbstractSerializerT elements;
-
-public static synchronized T SetSerializerT 
getInstance(AbstractSerializerT elements)
-{
-SetSerializerT t = instances.get(elements);
-if (t == null)
-{
-t = new SetSerializerT(elements);
-instances.put(elements, t);
-}
-return t;
-}
-
-private SetSerializer(AbstractSerializerT elements)
-{
-this.elements = elements;
-}
-
-public SetT serialize(ByteBuffer bytes)
-{
-try
-{
-ByteBuffer input = bytes.duplicate();
-int n = getUnsignedShort(input);
-SetT l = new LinkedHashSetT(n);
-for (int i = 0; i  n; i++)
-{
-int s = getUnsignedShort(input);
-byte[] data = new byte[s];
-input.get(data);
-ByteBuffer databb = ByteBuffer.wrap(data);
-elements.validate(databb);
-l.add(elements.serialize(databb));
-}
-return l;
-}
-catch (BufferUnderflowException e)
-{
-throw new MarshalException(Not enough bytes to read a list);
-}
-}
-
-/**
- * Layout is: {@code ns_1b_1...s_nb_n }
- * where:
- *   n is the number of elements
- *   s_i is the number of bytes composing the ith element
- *   b_i is the s_i bytes composing the ith element
- */
-public ByteBuffer deserialize(SetT value)
-{
-ListByteBuffer bbs = new ArrayListByteBuffer(value.size());
-int size = 0;
-for (T elt : value)
-{
-ByteBuffer bb = elements.deserialize(elt);
-bbs.add(bb);
-size += 2 + bb.remaining();
-}
-return pack(bbs, value.size(), size);
-}
-
-public String toString(SetT value)
-{
-StringBuffer sb = new StringBuffer();
-boolean isFirst = true;
-for (T element : value)
-{
-if (isFirst)
-{
-isFirst = false;
-}
-else
-{
-sb.append(; );
-}
-sb.append(elements.toString(element));
-}
-return sb.toString();
-}
-
-public ClassSetT getType()
-{
-return (Class) Set.class;
-}
-}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fc8b76f7/src/java/org/apache/cassandra/type/TimeUUIDSerializer.java
--
diff --git a/src/java/org/apache/cassandra/type/TimeUUIDSerializer.java 
b/src/java/org/apache/cassandra/type/TimeUUIDSerializer.java
deleted file mode 100644
index b767012..000
--- a/src/java/org/apache/cassandra/type/TimeUUIDSerializer.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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
- *
- * 

[jira] [Commented] (CASSANDRA-4495) Don't tie client side use of AbstractType to JDBC

2013-07-08 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702166#comment-13702166
 ] 

Sylvain Lebresne commented on CASSANDRA-4495:
-

For info, took the liberty to do the following renames:
* renamed the package from type to serializers, since that's what the classes 
are called.
* made AbstractSerializer an interface since I didn't see a good reason to have 
it an abstract class. Renamed into TypeSerializer too.
* renamed the asComposer() method in AbstractType to getSerializer() (I suspect 
that was a left-over of the initial patch)

 Don't tie client side use of AbstractType to JDBC
 -

 Key: CASSANDRA-4495
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4495
 Project: Cassandra
  Issue Type: Improvement
Reporter: Sylvain Lebresne
Assignee: Carl Yeksigian
Priority: Minor
 Fix For: 2.0 beta 1

 Attachments: 4495.patch, 4495-v2.patch, 4495-v3.patch


 We currently expose the AbstractType to java clients that want to reuse them 
 though the cql.jdbc.* classes. I think this shouldn't be tied to the JDBC 
 standard. JDBC was make for SQL DB, which Cassandra is not (CQL is not SQL 
 and will never be). Typically, there is a fair amount of the JDBC standard 
 that cannot be implemented with C*, and there is a number of specificity of 
 C* that are not in JDBC (typically the set and maps collections).
 So I propose to extract simple type classes with just a compose and decompose 
 method (but without ties to jdbc, which would allow all the jdbc specific 
 method those types have) in the purpose of exporting that in a separate jar 
 for clients (we could put that in a org.apache.cassandra.type package for 
 instance). We could then deprecate the jdbc classes with basically the same 
 schedule than CQL2.
 Let me note that this is *not* saying there shouldn't be a JDBC driver for 
 Cassandra.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5731) Should use index_interval from already loaded index summary

2013-07-08 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5731?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702170#comment-13702170
 ] 

Jonathan Ellis commented on CASSANDRA-5731:
---

+1

 Should use index_interval from already loaded index summary
 ---

 Key: CASSANDRA-5731
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5731
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 2.0 beta 1
Reporter: Yuki Morishita
Assignee: Yuki Morishita
Priority: Trivial
 Fix For: 2.0

 Attachments: 5731.txt


 Since index_interval can be changed anytime in 2.0, SSTableReader should use 
 index interval from loaded summary.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (CASSANDRA-5517) Cassandra crashes at start with segmentation fault

2013-07-08 Thread Eric Evans (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5517?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Evans updated CASSANDRA-5517:
--

Assignee: Eric Evans

 Cassandra crashes at start with segmentation fault
 --

 Key: CASSANDRA-5517
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5517
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: VirtualBox 4.2.6 VM with 4GB RAM, Xubuntu 12.10 as host 
 and guest OS.
 Cassandra 1.2.4 installed on guest as Debian package.
Reporter: Sergey Naumov
Assignee: Eric Evans
 Attachments: 
 0001-CASSANDRA-5517-up-xss-to-256k-for-openjdk-1.6.patch, 
 0002-optional-upgrade-dependency-to-OpenJDK-7.patch


 Sometimes Cassandra fails at start with segmentation fault:
 # /usr/sbin/cassandra -f
 xss =   -ea -javaajent:/usr/share/cassandra/lib/jamm-0.2.5.jar 
 -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms1024M -Xmx1024M 
 -Xmn100M -XX:+HeapDumpOnOutOfMemoryError -Xss180k
 Segmentation fault
 It seems that not only me encountered this bug: 
 http://snapwebsites.org/known-issues/cassandra-crashes-java-segmentation-fault
 Solution proposed on this link works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (CASSANDRA-5517) Cassandra crashes at start with segmentation fault

2013-07-08 Thread Eric Evans (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5517?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Evans updated CASSANDRA-5517:
--

Attachment: 0002-optional-upgrade-dependency-to-OpenJDK-7.patch
0001-CASSANDRA-5517-up-xss-to-256k-for-openjdk-1.6.patch

 Cassandra crashes at start with segmentation fault
 --

 Key: CASSANDRA-5517
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5517
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: VirtualBox 4.2.6 VM with 4GB RAM, Xubuntu 12.10 as host 
 and guest OS.
 Cassandra 1.2.4 installed on guest as Debian package.
Reporter: Sergey Naumov
Assignee: Eric Evans
 Attachments: 
 0001-CASSANDRA-5517-up-xss-to-256k-for-openjdk-1.6.patch, 
 0002-optional-upgrade-dependency-to-OpenJDK-7.patch


 Sometimes Cassandra fails at start with segmentation fault:
 # /usr/sbin/cassandra -f
 xss =   -ea -javaajent:/usr/share/cassandra/lib/jamm-0.2.5.jar 
 -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms1024M -Xmx1024M 
 -Xmn100M -XX:+HeapDumpOnOutOfMemoryError -Xss180k
 Segmentation fault
 It seems that not only me encountered this bug: 
 http://snapwebsites.org/known-issues/cassandra-crashes-java-segmentation-fault
 Solution proposed on this link works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5517) Cassandra crashes at start with segmentation fault

2013-07-08 Thread Eric Evans (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5517?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702254#comment-13702254
 ] 

Eric Evans commented on CASSANDRA-5517:
---

The attached patch, 0001-CASSANDRA-5517-up-xss-to-256k-for-openjdk-1.6, raises 
-Xss to 256k for OpenJDK 1.6 only.

Optionally, 0002-optional-upgrade-dependency-to-OpenJDK-7 raises the Debian 
package dependency to OpenJDK 1.7.  You could argue it unwise to change this in 
a point release, but OpenJDK 1.7 seems to be a _much_ better default at this 
point.

 Cassandra crashes at start with segmentation fault
 --

 Key: CASSANDRA-5517
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5517
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: VirtualBox 4.2.6 VM with 4GB RAM, Xubuntu 12.10 as host 
 and guest OS.
 Cassandra 1.2.4 installed on guest as Debian package.
Reporter: Sergey Naumov
Assignee: Eric Evans
 Attachments: 
 0001-CASSANDRA-5517-up-xss-to-256k-for-openjdk-1.6.patch, 
 0002-optional-upgrade-dependency-to-OpenJDK-7.patch


 Sometimes Cassandra fails at start with segmentation fault:
 # /usr/sbin/cassandra -f
 xss =   -ea -javaajent:/usr/share/cassandra/lib/jamm-0.2.5.jar 
 -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms1024M -Xmx1024M 
 -Xmn100M -XX:+HeapDumpOnOutOfMemoryError -Xss180k
 Segmentation fault
 It seems that not only me encountered this bug: 
 http://snapwebsites.org/known-issues/cassandra-crashes-java-segmentation-fault
 Solution proposed on this link works.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


git commit: use index interval from index summary patch by yukim; reviewed by jbellis for CASSANDRA-5731

2013-07-08 Thread yukim
Updated Branches:
  refs/heads/trunk fc8b76f79 - 2de07250d


use index interval from index summary
patch by yukim; reviewed by jbellis for CASSANDRA-5731


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

Branch: refs/heads/trunk
Commit: 2de07250d1235a4e9e7fac0ac1a2a45784d2a3ab
Parents: fc8b76f
Author: Yuki Morishita yu...@apache.org
Authored: Mon Jul 8 13:50:21 2013 -0500
Committer: Yuki Morishita yu...@apache.org
Committed: Mon Jul 8 13:50:32 2013 -0500

--
 .../org/apache/cassandra/io/sstable/SSTableReader.java| 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2de07250/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
--
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java 
b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
index 81f83d1..c4f32cb 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
@@ -112,7 +112,7 @@ public class SSTableReader extends SSTable
 for (SSTableReader sstable : sstables)
 {
 int indexKeyCount = sstable.getKeySampleSize();
-count = count + (indexKeyCount + 1) * metadata.getIndexInterval();
+count = count + (indexKeyCount + 1) * 
sstable.indexSummary.getIndexInterval();
 if (logger.isDebugEnabled())
 logger.debug(index size for bloom filter calc for file  :  + 
sstable.getFilename() +:  + count);
 }
@@ -556,7 +556,7 @@ public class SSTableReader extends SSTable
  */
 public long estimatedKeys()
 {
-return indexSummary.size() * metadata.getIndexInterval();
+return indexSummary.size() * indexSummary.getIndexInterval();
 }
 
 /**
@@ -569,7 +569,7 @@ public class SSTableReader extends SSTable
 ListPairInteger, Integer sampleIndexes = 
getSampleIndexesForRanges(indexSummary, ranges);
 for (PairInteger, Integer sampleIndexRange : sampleIndexes)
 sampleKeyCount += (sampleIndexRange.right - sampleIndexRange.left 
+ 1);
-return Math.max(1, sampleKeyCount * metadata.getIndexInterval());
+return Math.max(1, sampleKeyCount * indexSummary.getIndexInterval());
 }
 
 /**
@@ -825,12 +825,12 @@ public class SSTableReader extends SSTable
 // of the next interval).
 int i = 0;
 IteratorFileDataInput segments = ifile.iterator(sampledPosition, 
INDEX_FILE_BUFFER_BYTES);
-while (segments.hasNext()  i = metadata.getIndexInterval())
+while (segments.hasNext()  i = indexSummary.getIndexInterval())
 {
 FileDataInput in = segments.next();
 try
 {
-while (!in.isEOF()  i = metadata.getIndexInterval())
+while (!in.isEOF()  i = indexSummary.getIndexInterval())
 {
 i++;
 



[jira] [Resolved] (CASSANDRA-5731) Should use index_interval from already loaded index summary

2013-07-08 Thread Yuki Morishita (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yuki Morishita resolved CASSANDRA-5731.
---

   Resolution: Fixed
Fix Version/s: (was: 2.0)
   2.0 beta 1
 Reviewer: jbellis

Committed.

 Should use index_interval from already loaded index summary
 ---

 Key: CASSANDRA-5731
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5731
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 2.0 beta 1
Reporter: Yuki Morishita
Assignee: Yuki Morishita
Priority: Trivial
 Fix For: 2.0 beta 1

 Attachments: 5731.txt


 Since index_interval can be changed anytime in 2.0, SSTableReader should use 
 index interval from loaded summary.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


git commit: scripts fail when paths contain whitespace

2013-07-08 Thread eevans
Updated Branches:
  refs/heads/cassandra-1.2 f8c072e97 - 909b2ed1a


scripts fail when paths contain whitespace

Patch by Amichai Rothman; Reviewed by eevans for CASSANDRA-5338


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

Branch: refs/heads/cassandra-1.2
Commit: 909b2ed1a939048cd372bbf97918f0a69f80af92
Parents: f8c072e
Author: Eric Evans eev...@apache.org
Authored: Mon Jul 8 14:20:40 2013 -0500
Committer: Eric Evans eev...@apache.org
Committed: Mon Jul 8 14:20:40 2013 -0500

--
 bin/cassandra | 10 +-
 bin/cassandra-cli | 20 ++--
 bin/cassandra-shuffle | 24 
 bin/cassandra.in.sh   | 16 
 bin/debug-cql |  4 ++--
 bin/json2sstable  | 20 ++--
 bin/nodetool  | 30 +++---
 bin/sstable2json  | 20 ++--
 bin/sstablekeys   | 22 +++---
 bin/sstableloader | 20 ++--
 bin/sstablescrub  | 20 ++--
 11 files changed, 103 insertions(+), 103 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/909b2ed1/bin/cassandra
--
diff --git a/bin/cassandra b/bin/cassandra
index 25498aa..1fbf047 100755
--- a/bin/cassandra
+++ b/bin/cassandra
@@ -71,7 +71,7 @@ if [ x$CASSANDRA_INCLUDE = x ]; then
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
$HOME/.cassandra.in.sh \
-   `dirname $0`/cassandra.in.sh; do
+   `dirname $0`/cassandra.in.sh; do
 if [ -r $include ]; then
 . $include
 break
@@ -120,10 +120,10 @@ esac
 
 launch_service()
 {
-pidpath=$1
-foreground=$2
-props=$3
-class=$4
+pidpath=$1
+foreground=$2
+props=$3
+class=$4
 cassandra_parms=-Dlog4j.configuration=log4j-server.properties 
-Dlog4j.defaultInitOverride=true
 
 if [ x$pidpath != x ]; then

http://git-wip-us.apache.org/repos/asf/cassandra/blob/909b2ed1/bin/cassandra-cli
--
diff --git a/bin/cassandra-cli b/bin/cassandra-cli
index c5fe27b..56c3095 100755
--- a/bin/cassandra-cli
+++ b/bin/cassandra-cli
@@ -21,29 +21,29 @@ if [ x$CASSANDRA_INCLUDE = x ]; then
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
~/.cassandra.in.sh \
-   `dirname $0`/cassandra.in.sh; do
-if [ -r $include ]; then
-. $include
+   `dirname $0`/cassandra.in.sh; do
+if [ -r $include ]; then
+. $include
 break
 fi
 done
-elif [ -r $CASSANDRA_INCLUDE ]; then
-. $CASSANDRA_INCLUDE
+elif [ -r $CASSANDRA_INCLUDE ]; then
+. $CASSANDRA_INCLUDE
 fi
 
 # Use JAVA_HOME if set, otherwise look for java in PATH
-if [ -x $JAVA_HOME/bin/java ]; then
-JAVA=$JAVA_HOME/bin/java
+if [ -x $JAVA_HOME/bin/java ]; then
+JAVA=$JAVA_HOME/bin/java
 else
-JAVA=`which java`
+JAVA=`which java`
 fi
 
-if [ -z $CLASSPATH ]; then
+if [ -z $CLASSPATH ]; then
 echo You must set the CLASSPATH var 2
 exit 1
 fi
 
-$JAVA -ea -cp $CLASSPATH -Xmx256M \
+$JAVA -ea -cp $CLASSPATH -Xmx256M \
 -Dlog4j.configuration=log4j-tools.properties \
 org.apache.cassandra.cli.CliMain $@
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/909b2ed1/bin/cassandra-shuffle
--
diff --git a/bin/cassandra-shuffle b/bin/cassandra-shuffle
index d6dabfe..53636f7 100755
--- a/bin/cassandra-shuffle
+++ b/bin/cassandra-shuffle
@@ -19,24 +19,24 @@ if [ x$CASSANDRA_INCLUDE = x ]; then
 for include in /usr/share/cassandra/cassandra.in.sh \
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
-   `dirname $0`/cassandra.in.sh; do
-if [ -r $include ]; then
-. $include
+   `dirname $0`/cassandra.in.sh; do
+if [ -r $include ]; then
+. $include
 break
 fi
 done
-elif [ -r $CASSANDRA_INCLUDE ]; then
-. $CASSANDRA_INCLUDE
+elif [ -r $CASSANDRA_INCLUDE ]; then
+. $CASSANDRA_INCLUDE
 fi
 
 # Use JAVA_HOME if set, otherwise look for java in PATH
-if [ -x $JAVA_HOME/bin/java ]; then
-JAVA=$JAVA_HOME/bin/java
+if [ -x $JAVA_HOME/bin/java ]; then
+JAVA=$JAVA_HOME/bin/java
 else
-JAVA=`which 

[jira] [Updated] (CASSANDRA-5729) Add new TimestampType to cqlsh

2013-07-08 Thread Aleksey Yeschenko (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Yeschenko updated CASSANDRA-5729:
-

Attachment: 5729.txt

 Add new TimestampType to cqlsh
 --

 Key: CASSANDRA-5729
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5729
 Project: Cassandra
  Issue Type: Bug
Reporter: Sylvain Lebresne
Assignee: Aleksey Yeschenko
Priority: Minor
 Fix For: 2.0

 Attachments: 5729.txt


 Since cqlsh used CQL-over-thrift currently, we'd need to add support for the 
 new TimestampType introduced in CASSANDRA-5723.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5729) Add new TimestampType to cqlsh

2013-07-08 Thread Brandon Williams (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702341#comment-13702341
 ] 

Brandon Williams commented on CASSANDRA-5729:
-

+1

 Add new TimestampType to cqlsh
 --

 Key: CASSANDRA-5729
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5729
 Project: Cassandra
  Issue Type: Bug
Reporter: Sylvain Lebresne
Assignee: Aleksey Yeschenko
Priority: Minor
 Fix For: 2.0

 Attachments: 5729.txt


 Since cqlsh used CQL-over-thrift currently, we'd need to add support for the 
 new TimestampType introduced in CASSANDRA-5723.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5697) cqlsh doesn't allow semicolons in BATCH statements

2013-07-08 Thread Brandon Williams (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702340#comment-13702340
 ] 

Brandon Williams commented on CASSANDRA-5697:
-

+1

 cqlsh doesn't allow semicolons in BATCH statements
 --

 Key: CASSANDRA-5697
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5697
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Affects Versions: 1.2.0
 Environment: Mac OSX, cqlsh 3.0.2
Reporter: Russell Alexander Spitzer
Assignee: Aleksey Yeschenko
Priority: Minor
  Labels: cqlsh
 Fix For: 1.2.7

 Attachments: 5697.txt


 The documentation for BATCH statements declares that semicolons are required 
 between update operations. Currently including them results in an error 
 'expecting K_APPLY'. To match the design specifications, semi-colons should 
 be allowed or optional. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


git commit: cqlsh: support the new TimestampType

2013-07-08 Thread aleksey
Updated Branches:
  refs/heads/trunk 2de07250d - 61772d3d7


cqlsh: support the new TimestampType

patch by Aleksey Yeschenko; reviewed by Brandon Williams for
CASSANDRA-5729


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

Branch: refs/heads/trunk
Commit: 61772d3d7b333071268675653ded650b59c36496
Parents: 2de0725
Author: Aleksey Yeschenko alek...@apache.org
Authored: Mon Jul 8 23:08:19 2013 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Mon Jul 8 23:08:19 2013 +0300

--
 CHANGES.txt| 2 +-
 pylib/cqlshlib/cql3handling.py | 6 +-
 2 files changed, 6 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/61772d3d/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 4b7dcc5..88683c2 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -72,7 +72,7 @@
  * Move resultset type information into prepare, not execute (CASSANDRA-5649)
  * Auto paging in binary protocol (CASSANDRA-4415, 5714)
  * Don't tie client side use of AbstractType to JDBC (CASSANDRA-4495)
- * Adds new TimestampType to replace DateType (CASSANDRA-5723)
+ * Adds new TimestampType to replace DateType (CASSANDRA-5723, CASSANDRA-5729)
 
 
 1.2.7

http://git-wip-us.apache.org/repos/asf/cassandra/blob/61772d3d/pylib/cqlshlib/cql3handling.py
--
diff --git a/pylib/cqlshlib/cql3handling.py b/pylib/cqlshlib/cql3handling.py
index 110fd6a..40d22c6 100644
--- a/pylib/cqlshlib/cql3handling.py
+++ b/pylib/cqlshlib/cql3handling.py
@@ -18,7 +18,7 @@ import re
 from warnings import warn
 from .cqlhandling import CqlParsingRuleSet, Hint
 from cql.cqltypes import (cql_types, lookup_casstype, CompositeType, UTF8Type,
-  ColumnToCollectionType, CounterColumnType)
+  ColumnToCollectionType, CounterColumnType, DateType)
 from . import helptopics
 
 simple_cql_types = set(cql_types)
@@ -31,6 +31,10 @@ try:
 except ImportError:
 import simplejson as json
 
+# temporarily have this here until a newer cassandra-dbapi2 is bundled with C*
+class TimestampType(DateType):
+pass
+
 class UnexpectedTableStructure(UserWarning):
 def __init__(self, msg):
 self.msg = msg



[jira] [Updated] (CASSANDRA-5520) Query tracing session info inconsistent with events info

2013-07-08 Thread Tyler Hobbs (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5520?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tyler Hobbs updated CASSANDRA-5520:
---

Description: 
Session info for a trace is showing that a query took  10 seconds (it timed 
out).

{noformat}
cqlsh:system_traces select session_id, duration, request from sessions where 
session_id = c7e36a30-af3a-11e2-9ec9-772ec39805fe;
session_id | duration | request

c7e36a30-af3a-11e2-9ec9-772ec39805fe | 1230 | multiget_slice
However, the event-level breakdown shows no such large duration:
cqlsh:system_traces select * from events where session_id = 
c7e36a30-af3a-11e2-9ec9-772ec39805fe;
session_id | event_id | activity | source | source_elapsed | thread
-+---
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e36a30-af3a-11e2-9480-e9d811e0fc18 | 
Message received from /xxx.xxx.90.147 | xxx.xxx.4.16 | 19 | Thread-57
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e36a31-af3a-11e2-9ec9-772ec39805fe | 
Sending message to /xxx.xxx.153.16 | xxx.xxx.90.147 | 246 | WRITE-/xxx.xxx.4.16
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39140-af3a-11e2-9480-e9d811e0fc18 | 
Message received from /xxx.xxx.90.147 | xxx.xxx.4.16 | 259 | Thread-57
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39140-af3a-11e2-9ec9-772ec39805fe | 
Sending message to /10.248.106.37 | xxx.xxx.90.147 | 253 | WRITE-/xxx.xxx.79.52
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39140-af3a-11e2-b8dc-a7032a583115 | 
Message received from /xxx.xxx.90.147 | xxx.xxx.213.136 | 25 | Thread-94
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39141-af3a-11e2-9480-e9d811e0fc18 | 
Executing single-partition query on CardHash | xxx.xxx.4.16 | 421 | 
ReadStage:5329
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39141-af3a-11e2-9ec9-772ec39805fe | 
Sending message to /xxx.xxx.151.214 | xxx.xxx.90.147 | 310 | 
WRITE-/xxx.xxx.213.136
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39141-af3a-11e2-b8dc-a7032a583115 | 
Message received from /xxx.xxx.90.147 | xxx.xxx.213.136 | 106 | Thread-94
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39142-af3a-11e2-9480-e9d811e0fc18 | 
Acquiring sstable references | xxx.xxx.4.16 | 444 | ReadStage:5329
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39142-af3a-11e2-9ec9-772ec39805fe | 
Sending message to /10.248.106.37 | xxx.xxx.90.147 | 352 | WRITE-/xxx.xxx.79.52
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39142-af3a-11e2-b8dc-a7032a583115 | 
Executing single-partition query on CardHash | xxx.xxx.213.136 | 144 | 
ReadStage:11
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39143-af3a-11e2-9480-e9d811e0fc18 | 
Merging memtable contents | xxx.xxx.4.16 | 472 | ReadStage:5329
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39143-af3a-11e2-9ec9-772ec39805fe | 
Sending message to /10.248.95.237 | xxx.xxx.90.147 | 362 | 
WRITE-/xxx.xxx.201.218
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39143-af3a-11e2-b8dc-a7032a583115 | 
Acquiring sstable references | xxx.xxx.213.136 | 164 | ReadStage:11
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39144-af3a-11e2-9480-e9d811e0fc18 | 
Merging data from memtables and 0 sstables | xxx.xxx.4.16 | 510 | ReadStage:5329
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39144-af3a-11e2-9ec9-772ec39805fe | 
Sending message to /xxx.xxx.151.214 | xxx.xxx.90.147 | 376 | 
WRITE-/xxx.xxx.213.136
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39144-af3a-11e2-b8dc-a7032a583115 | 
Merging memtable contents | xxx.xxx.213.136 | 195 | ReadStage:11
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39145-af3a-11e2-9480-e9d811e0fc18 | 
Read 0 live cells and 0 tombstoned | xxx.xxx.4.16 | 530 | ReadStage:5329
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39145-af3a-11e2-9ec9-772ec39805fe | 
Sending message to /10.248.95.237 | xxx.xxx.90.147 | 401 | 
WRITE-/xxx.xxx.201.218
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39145-af3a-11e2-b8dc-a7032a583115 | 
Executing single-partition query on CardHash | xxx.xxx.213.136 | 202 | 
ReadStage:41
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39146-af3a-11e2-9480-e9d811e0fc18 | 
Enqueuing response to /xxx.xxx.90.147 | xxx.xxx.4.16 | 572 | ReadStage:5329
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39146-af3a-11e2-9ec9-772ec39805fe | 
Sending message to /xxx.xxx.153.16 | xxx.xxx.90.147 | 489 | WRITE-/xxx.xxx.4.16
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39146-af3a-11e2-b8dc-a7032a583115 | 
Acquiring sstable references | xxx.xxx.213.136 | 215 | ReadStage:41
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39147-af3a-11e2-9480-e9d811e0fc18 | 
Executing single-partition query on CardHash | xxx.xxx.4.16 | 610 | 
ReadStage:5330
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39147-af3a-11e2-b8dc-a7032a583115 | 
Merging data from memtables and 0 sstables | xxx.xxx.213.136 | 239 | 
ReadStage:11
c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39148-af3a-11e2-9480-e9d811e0fc18 | 
Acquiring 

git commit: cqlsh: fix handling of semicolons inside BATCH queries

2013-07-08 Thread aleksey
Updated Branches:
  refs/heads/cassandra-1.2 909b2ed1a - c1d71213b


cqlsh: fix handling of semicolons inside BATCH queries

patch by Aleksey Yeschenko; reviewed by Brandon Williams for
CASSANDRA-5697


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

Branch: refs/heads/cassandra-1.2
Commit: c1d71213bdb6f5d326f5cc5a55e645a8edf2e589
Parents: 909b2ed
Author: Aleksey Yeschenko alek...@apache.org
Authored: Mon Jul 8 22:57:35 2013 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Mon Jul 8 22:57:35 2013 +0300

--
 CHANGES.txt|  1 +
 pylib/cqlshlib/cql3handling.py |  4 ++--
 pylib/cqlshlib/cqlhandling.py  | 10 --
 3 files changed, 7 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/c1d71213/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 7c16cd0..65dd404 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -9,6 +9,7 @@
  * Fix skipping range tombstones with reverse queries (CASSANDRA-5712)
  * Expire entries out of ThriftSessionManager (CASSANRDA-5719)
  * Don't keep ancestor information in memory (CASSANDRA-5342)
+ * cqlsh: fix handling of semicolons inside BATCH queries (CASSANDRA-5697)
 
 
 1.2.6

http://git-wip-us.apache.org/repos/asf/cassandra/blob/c1d71213/pylib/cqlshlib/cql3handling.py
--
diff --git a/pylib/cqlshlib/cql3handling.py b/pylib/cqlshlib/cql3handling.py
index 0e631ea..92701d6 100644
--- a/pylib/cqlshlib/cql3handling.py
+++ b/pylib/cqlshlib/cql3handling.py
@@ -986,8 +986,8 @@ syntax_rules += r'''
 batchStatement ::= BEGIN ( UNLOGGED | COUNTER )? BATCH
 ( USING [batchopt]=usingOption
   ( AND [batchopt]=usingOption )* )?
-[batchstmt]=batchStatementMember ;
-( [batchstmt]=batchStatementMember ; )*
+[batchstmt]=batchStatementMember ;?
+( [batchstmt]=batchStatementMember ;? )*
  APPLY BATCH
;
 batchStatementMember ::= insertStatement

http://git-wip-us.apache.org/repos/asf/cassandra/blob/c1d71213/pylib/cqlshlib/cqlhandling.py
--
diff --git a/pylib/cqlshlib/cqlhandling.py b/pylib/cqlshlib/cqlhandling.py
index 83e1dc2..7d36301 100644
--- a/pylib/cqlshlib/cqlhandling.py
+++ b/pylib/cqlshlib/cqlhandling.py
@@ -189,13 +189,11 @@ class CqlParsingRuleSet(pylexotron.ParsingRuleSet):
 output[-1].extend(stmt)
 else:
 output.append(stmt)
-if len(stmt)  1 \
-and stmt[0][0] == 'identifier' and stmt[1][0] == 'identifier' \
-and stmt[1][1].lower() == 'batch':
-if stmt[0][1].lower() == 'begin':
-in_batch = True
-elif stmt[0][1].lower() == 'apply':
+if len(stmt)  2:
+if stmt[-3][0] == 'K_APPLY':
 in_batch = False
+elif stmt[0][0] == 'K_BEGIN':
+in_batch = True
 return output, in_batch
 
 def cql_complete_single(self, text, partial, init_bindings={}, 
ignore_case=True,



[2/2] git commit: Merge branch '1.2' into trunk

2013-07-08 Thread eevans
Merge branch '1.2' into trunk

Conflicts:
bin/cassandra
bin/cassandra-cli
bin/json2sstable
bin/nodetool
bin/sstable2json
bin/sstablekeys
bin/sstableloader


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

Branch: refs/heads/trunk
Commit: a307c174997fabed46269375bab503c93a5e986a
Parents: 61772d3 909b2ed
Author: Eric Evans eev...@apache.org
Authored: Mon Jul 8 15:25:00 2013 -0500
Committer: Eric Evans eev...@apache.org
Committed: Mon Jul 8 15:25:00 2013 -0500

--
 bin/cassandra | 10 +-
 bin/cassandra-cli | 20 ++--
 bin/cassandra-shuffle | 24 
 bin/cassandra.in.sh   | 16 
 bin/debug-cql |  4 ++--
 bin/json2sstable  | 20 ++--
 bin/nodetool  | 30 +++---
 bin/sstable2json  | 20 ++--
 bin/sstablekeys   | 22 +++---
 bin/sstableloader | 20 ++--
 bin/sstablescrub  | 20 ++--
 11 files changed, 103 insertions(+), 103 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a307c174/bin/cassandra
--
diff --cc bin/cassandra
index e6b1220,1fbf047..78d0660
--- a/bin/cassandra
+++ b/bin/cassandra
@@@ -67,11 -67,11 +67,11 @@@
  # If an include wasn't specified in the environment, then search for one...
  if [ x$CASSANDRA_INCLUDE = x ]; then
  # Locations (in order) to use when searching for an include file.
- for include in `dirname $0`/cassandra.in.sh \
 -for include in /usr/share/cassandra/cassandra.in.sh \
 -   /usr/local/share/cassandra/cassandra.in.sh \
 -   /opt/cassandra/cassandra.in.sh \
++for include in `dirname $0`/cassandra.in.sh \
 $HOME/.cassandra.in.sh \
 -   `dirname $0`/cassandra.in.sh; do
 +   /usr/share/cassandra/cassandra.in.sh \
 +   /usr/local/share/cassandra/cassandra.in.sh \
 +   /opt/cassandra/cassandra.in.sh; do
  if [ -r $include ]; then
  . $include
  break

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a307c174/bin/cassandra-cli
--
diff --cc bin/cassandra-cli
index 23d7dbb,56c3095..ea52b8e
--- a/bin/cassandra-cli
+++ b/bin/cassandra-cli
@@@ -17,13 -17,13 +17,13 @@@
  # limitations under the License.
  
  if [ x$CASSANDRA_INCLUDE = x ]; then
- for include in `dirname $0`/cassandra.in.sh \
 -for include in /usr/share/cassandra/cassandra.in.sh \
++for include in `dirname $0`/cassandra.in.sh \
 +   $HOME/.cassandra.in.sh \
 +   /usr/share/cassandra/cassandra.in.sh \
 /usr/local/share/cassandra/cassandra.in.sh \
 -   /opt/cassandra/cassandra.in.sh \
 -   ~/.cassandra.in.sh \
 -   `dirname $0`/cassandra.in.sh; do
 +   /opt/cassandra/cassandra.in.sh; do
- if [ -r $include ]; then
- . $include
+ if [ -r $include ]; then
+ . $include
  break
  fi
  done

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a307c174/bin/json2sstable
--
diff --cc bin/json2sstable
index 29d2e46,f41afd3..8da7634
--- a/bin/json2sstable
+++ b/bin/json2sstable
@@@ -17,13 -17,13 +17,13 @@@
  # limitations under the License.
  
  if [ x$CASSANDRA_INCLUDE = x ]; then
- for include in `dirname $0`/cassandra.in.sh \
 -for include in /usr/share/cassandra/cassandra.in.sh \
++for include in `dirname $0`/cassandra.in.sh \
 +   $HOME/.cassandra.in.sh \
 +   /usr/share/cassandra/cassandra.in.sh \
 /usr/local/share/cassandra/cassandra.in.sh \
 -   /opt/cassandra/cassandra.in.sh \
 -   ~/.cassandra.in.sh \
 -   `dirname $0`/cassandra.in.sh; do
 +   /opt/cassandra/cassandra.in.sh; do
- if [ -r $include ]; then
- . $include
+ if [ -r $include ]; then
+ . $include
  break
  fi
  done

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a307c174/bin/nodetool
--
diff --cc bin/nodetool
index 54201f4,c602530..13f9178
--- a/bin/nodetool
+++ b/bin/nodetool
@@@ -22,13 -22,12 +22,13 @@@ if [ 

[1/2] git commit: scripts fail when paths contain whitespace

2013-07-08 Thread eevans
Updated Branches:
  refs/heads/trunk 61772d3d7 - a307c1749


scripts fail when paths contain whitespace

Patch by Amichai Rothman; Reviewed by eevans for CASSANDRA-5338


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

Branch: refs/heads/trunk
Commit: 909b2ed1a939048cd372bbf97918f0a69f80af92
Parents: f8c072e
Author: Eric Evans eev...@apache.org
Authored: Mon Jul 8 14:20:40 2013 -0500
Committer: Eric Evans eev...@apache.org
Committed: Mon Jul 8 14:20:40 2013 -0500

--
 bin/cassandra | 10 +-
 bin/cassandra-cli | 20 ++--
 bin/cassandra-shuffle | 24 
 bin/cassandra.in.sh   | 16 
 bin/debug-cql |  4 ++--
 bin/json2sstable  | 20 ++--
 bin/nodetool  | 30 +++---
 bin/sstable2json  | 20 ++--
 bin/sstablekeys   | 22 +++---
 bin/sstableloader | 20 ++--
 bin/sstablescrub  | 20 ++--
 11 files changed, 103 insertions(+), 103 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/909b2ed1/bin/cassandra
--
diff --git a/bin/cassandra b/bin/cassandra
index 25498aa..1fbf047 100755
--- a/bin/cassandra
+++ b/bin/cassandra
@@ -71,7 +71,7 @@ if [ x$CASSANDRA_INCLUDE = x ]; then
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
$HOME/.cassandra.in.sh \
-   `dirname $0`/cassandra.in.sh; do
+   `dirname $0`/cassandra.in.sh; do
 if [ -r $include ]; then
 . $include
 break
@@ -120,10 +120,10 @@ esac
 
 launch_service()
 {
-pidpath=$1
-foreground=$2
-props=$3
-class=$4
+pidpath=$1
+foreground=$2
+props=$3
+class=$4
 cassandra_parms=-Dlog4j.configuration=log4j-server.properties 
-Dlog4j.defaultInitOverride=true
 
 if [ x$pidpath != x ]; then

http://git-wip-us.apache.org/repos/asf/cassandra/blob/909b2ed1/bin/cassandra-cli
--
diff --git a/bin/cassandra-cli b/bin/cassandra-cli
index c5fe27b..56c3095 100755
--- a/bin/cassandra-cli
+++ b/bin/cassandra-cli
@@ -21,29 +21,29 @@ if [ x$CASSANDRA_INCLUDE = x ]; then
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
~/.cassandra.in.sh \
-   `dirname $0`/cassandra.in.sh; do
-if [ -r $include ]; then
-. $include
+   `dirname $0`/cassandra.in.sh; do
+if [ -r $include ]; then
+. $include
 break
 fi
 done
-elif [ -r $CASSANDRA_INCLUDE ]; then
-. $CASSANDRA_INCLUDE
+elif [ -r $CASSANDRA_INCLUDE ]; then
+. $CASSANDRA_INCLUDE
 fi
 
 # Use JAVA_HOME if set, otherwise look for java in PATH
-if [ -x $JAVA_HOME/bin/java ]; then
-JAVA=$JAVA_HOME/bin/java
+if [ -x $JAVA_HOME/bin/java ]; then
+JAVA=$JAVA_HOME/bin/java
 else
-JAVA=`which java`
+JAVA=`which java`
 fi
 
-if [ -z $CLASSPATH ]; then
+if [ -z $CLASSPATH ]; then
 echo You must set the CLASSPATH var 2
 exit 1
 fi
 
-$JAVA -ea -cp $CLASSPATH -Xmx256M \
+$JAVA -ea -cp $CLASSPATH -Xmx256M \
 -Dlog4j.configuration=log4j-tools.properties \
 org.apache.cassandra.cli.CliMain $@
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/909b2ed1/bin/cassandra-shuffle
--
diff --git a/bin/cassandra-shuffle b/bin/cassandra-shuffle
index d6dabfe..53636f7 100755
--- a/bin/cassandra-shuffle
+++ b/bin/cassandra-shuffle
@@ -19,24 +19,24 @@ if [ x$CASSANDRA_INCLUDE = x ]; then
 for include in /usr/share/cassandra/cassandra.in.sh \
/usr/local/share/cassandra/cassandra.in.sh \
/opt/cassandra/cassandra.in.sh \
-   `dirname $0`/cassandra.in.sh; do
-if [ -r $include ]; then
-. $include
+   `dirname $0`/cassandra.in.sh; do
+if [ -r $include ]; then
+. $include
 break
 fi
 done
-elif [ -r $CASSANDRA_INCLUDE ]; then
-. $CASSANDRA_INCLUDE
+elif [ -r $CASSANDRA_INCLUDE ]; then
+. $CASSANDRA_INCLUDE
 fi
 
 # Use JAVA_HOME if set, otherwise look for java in PATH
-if [ -x $JAVA_HOME/bin/java ]; then
-JAVA=$JAVA_HOME/bin/java
+if [ -x $JAVA_HOME/bin/java ]; then
+JAVA=$JAVA_HOME/bin/java
 else
-JAVA=`which java`
+

[1/2] git commit: cqlsh: fix handling of semicolons inside BATCH queries

2013-07-08 Thread aleksey
Updated Branches:
  refs/heads/trunk a307c1749 - 36a661394


cqlsh: fix handling of semicolons inside BATCH queries

patch by Aleksey Yeschenko; reviewed by Brandon Williams for
CASSANDRA-5697


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

Branch: refs/heads/trunk
Commit: c1d71213bdb6f5d326f5cc5a55e645a8edf2e589
Parents: 909b2ed
Author: Aleksey Yeschenko alek...@apache.org
Authored: Mon Jul 8 22:57:35 2013 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Mon Jul 8 22:57:35 2013 +0300

--
 CHANGES.txt|  1 +
 pylib/cqlshlib/cql3handling.py |  4 ++--
 pylib/cqlshlib/cqlhandling.py  | 10 --
 3 files changed, 7 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/c1d71213/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 7c16cd0..65dd404 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -9,6 +9,7 @@
  * Fix skipping range tombstones with reverse queries (CASSANDRA-5712)
  * Expire entries out of ThriftSessionManager (CASSANRDA-5719)
  * Don't keep ancestor information in memory (CASSANDRA-5342)
+ * cqlsh: fix handling of semicolons inside BATCH queries (CASSANDRA-5697)
 
 
 1.2.6

http://git-wip-us.apache.org/repos/asf/cassandra/blob/c1d71213/pylib/cqlshlib/cql3handling.py
--
diff --git a/pylib/cqlshlib/cql3handling.py b/pylib/cqlshlib/cql3handling.py
index 0e631ea..92701d6 100644
--- a/pylib/cqlshlib/cql3handling.py
+++ b/pylib/cqlshlib/cql3handling.py
@@ -986,8 +986,8 @@ syntax_rules += r'''
 batchStatement ::= BEGIN ( UNLOGGED | COUNTER )? BATCH
 ( USING [batchopt]=usingOption
   ( AND [batchopt]=usingOption )* )?
-[batchstmt]=batchStatementMember ;
-( [batchstmt]=batchStatementMember ; )*
+[batchstmt]=batchStatementMember ;?
+( [batchstmt]=batchStatementMember ;? )*
  APPLY BATCH
;
 batchStatementMember ::= insertStatement

http://git-wip-us.apache.org/repos/asf/cassandra/blob/c1d71213/pylib/cqlshlib/cqlhandling.py
--
diff --git a/pylib/cqlshlib/cqlhandling.py b/pylib/cqlshlib/cqlhandling.py
index 83e1dc2..7d36301 100644
--- a/pylib/cqlshlib/cqlhandling.py
+++ b/pylib/cqlshlib/cqlhandling.py
@@ -189,13 +189,11 @@ class CqlParsingRuleSet(pylexotron.ParsingRuleSet):
 output[-1].extend(stmt)
 else:
 output.append(stmt)
-if len(stmt)  1 \
-and stmt[0][0] == 'identifier' and stmt[1][0] == 'identifier' \
-and stmt[1][1].lower() == 'batch':
-if stmt[0][1].lower() == 'begin':
-in_batch = True
-elif stmt[0][1].lower() == 'apply':
+if len(stmt)  2:
+if stmt[-3][0] == 'K_APPLY':
 in_batch = False
+elif stmt[0][0] == 'K_BEGIN':
+in_batch = True
 return output, in_batch
 
 def cql_complete_single(self, text, partial, init_bindings={}, 
ignore_case=True,



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

2013-07-08 Thread aleksey
Merge branch 'cassandra-1.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/36a66139
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/36a66139
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/36a66139

Branch: refs/heads/trunk
Commit: 36a661394e738d7dbc459ffa56e188286f7d2c7e
Parents: a307c17 c1d7121
Author: Aleksey Yeschenko alek...@apache.org
Authored: Mon Jul 8 23:34:44 2013 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Mon Jul 8 23:34:44 2013 +0300

--
 CHANGES.txt|  1 +
 pylib/cqlshlib/cql3handling.py |  4 ++--
 pylib/cqlshlib/cqlhandling.py  | 10 --
 3 files changed, 7 insertions(+), 8 deletions(-)
--


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/36a66139/pylib/cqlshlib/cql3handling.py
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/36a66139/pylib/cqlshlib/cqlhandling.py
--



[jira] [Created] (CASSANDRA-5732) Can not query secondary index

2013-07-08 Thread Tony Anecito (JIRA)
Tony Anecito created CASSANDRA-5732:
---

 Summary: Can not query secondary index
 Key: CASSANDRA-5732
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5732
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.2.5
 Environment: Windows 8, Jre 1.6.0_45 16-bit
Reporter: Tony Anecito


Noticed after taking a column family that already existed and assigning to an 
IntegerType index_type:KEYS and the caching was already set to 'ALL' that the 
prepared statement do not return rows neither did it throw an exception. Here 
is the sequence.
1. Starting state query running with caching off for a Column Family with the 
query using the secondary index for te WHERE clause.
2, Set Column Family caching to ALL using Cassandra-CLI and update CQL. 
Cassandra-cli Describe shows column family caching set to ALL
3. Rerun query and it works.
4. Restart Cassandra and run query and no rows returned. Cassandra-cli Describe 
shows column family caching set to ALL
5. Set Column Family caching to NONE using Cassandra-cli and update CQL. Rerun 
query and no rows returned. Cassandra-cli Describe for column family shows 
caching set to NONE.
6. Restart Cassandra. Rerun query and it is working again. We are now back to 
the starting state.

Best Regards,
-Tony

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5520) Query tracing session info inconsistent with events info

2013-07-08 Thread Tyler Hobbs (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5520?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702467#comment-13702467
 ] 

Tyler Hobbs commented on CASSANDRA-5520:


bq. If we're going to gold-plate it, including the result in the trace (but not 
the debug call, we only want to construct it if requested, because creating 
Strings is expensive) is a good idea too.

Can you elaborate on what you mean by including the result in the trace?  Are 
you just referring to the exception details that Sylvain mentioned?

 Query tracing session info inconsistent with events info
 

 Key: CASSANDRA-5520
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5520
 Project: Cassandra
  Issue Type: Improvement
Affects Versions: 1.2.4
 Environment: Linux
Reporter: Ilya Kirnos
Assignee: Tyler Hobbs
Priority: Minor

 Session info for a trace is showing that a query took  10 seconds (it timed 
 out).
 {noformat}
 cqlsh:system_traces select session_id, duration, request from sessions where 
 session_id = c7e36a30-af3a-11e2-9ec9-772ec39805fe;
 session_id | duration | request
 
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | 1230 | multiget_slice
 However, the event-level breakdown shows no such large duration:
 cqlsh:system_traces select * from events where session_id = 
 c7e36a30-af3a-11e2-9ec9-772ec39805fe;
 session_id | event_id | activity | source | source_elapsed | thread
 -+---
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e36a30-af3a-11e2-9480-e9d811e0fc18 | 
 Message received from /xxx.xxx.90.147 | xxx.xxx.4.16 | 19 | Thread-57
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e36a31-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /xxx.xxx.153.16 | xxx.xxx.90.147 | 246 | 
 WRITE-/xxx.xxx.4.16
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39140-af3a-11e2-9480-e9d811e0fc18 | 
 Message received from /xxx.xxx.90.147 | xxx.xxx.4.16 | 259 | Thread-57
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39140-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /10.248.106.37 | xxx.xxx.90.147 | 253 | 
 WRITE-/xxx.xxx.79.52
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39140-af3a-11e2-b8dc-a7032a583115 | 
 Message received from /xxx.xxx.90.147 | xxx.xxx.213.136 | 25 | Thread-94
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39141-af3a-11e2-9480-e9d811e0fc18 | 
 Executing single-partition query on CardHash | xxx.xxx.4.16 | 421 | 
 ReadStage:5329
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39141-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /xxx.xxx.151.214 | xxx.xxx.90.147 | 310 | 
 WRITE-/xxx.xxx.213.136
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39141-af3a-11e2-b8dc-a7032a583115 | 
 Message received from /xxx.xxx.90.147 | xxx.xxx.213.136 | 106 | Thread-94
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39142-af3a-11e2-9480-e9d811e0fc18 | 
 Acquiring sstable references | xxx.xxx.4.16 | 444 | ReadStage:5329
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39142-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /10.248.106.37 | xxx.xxx.90.147 | 352 | 
 WRITE-/xxx.xxx.79.52
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39142-af3a-11e2-b8dc-a7032a583115 | 
 Executing single-partition query on CardHash | xxx.xxx.213.136 | 144 | 
 ReadStage:11
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39143-af3a-11e2-9480-e9d811e0fc18 | 
 Merging memtable contents | xxx.xxx.4.16 | 472 | ReadStage:5329
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39143-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /10.248.95.237 | xxx.xxx.90.147 | 362 | 
 WRITE-/xxx.xxx.201.218
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39143-af3a-11e2-b8dc-a7032a583115 | 
 Acquiring sstable references | xxx.xxx.213.136 | 164 | ReadStage:11
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39144-af3a-11e2-9480-e9d811e0fc18 | 
 Merging data from memtables and 0 sstables | xxx.xxx.4.16 | 510 | 
 ReadStage:5329
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39144-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /xxx.xxx.151.214 | xxx.xxx.90.147 | 376 | 
 WRITE-/xxx.xxx.213.136
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39144-af3a-11e2-b8dc-a7032a583115 | 
 Merging memtable contents | xxx.xxx.213.136 | 195 | ReadStage:11
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39145-af3a-11e2-9480-e9d811e0fc18 | 
 Read 0 live cells and 0 tombstoned | xxx.xxx.4.16 | 530 | ReadStage:5329
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39145-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /10.248.95.237 | xxx.xxx.90.147 | 401 | 
 WRITE-/xxx.xxx.201.218
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39145-af3a-11e2-b8dc-a7032a583115 | 
 Executing single-partition query on 

[jira] [Updated] (CASSANDRA-5732) Can not query secondary index

2013-07-08 Thread Tony Anecito (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tony Anecito updated CASSANDRA-5732:


Environment: Windows 8, Jre 1.6.0_45 32-bit  (was: Windows 8, Jre 1.6.0_45 
16-bit)

 Can not query secondary index
 -

 Key: CASSANDRA-5732
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5732
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.2.5
 Environment: Windows 8, Jre 1.6.0_45 32-bit
Reporter: Tony Anecito

 Noticed after taking a column family that already existed and assigning to an 
 IntegerType index_type:KEYS and the caching was already set to 'ALL' that the 
 prepared statement do not return rows neither did it throw an exception. Here 
 is the sequence.
 1. Starting state query running with caching off for a Column Family with the 
 query using the secondary index for te WHERE clause.
 2, Set Column Family caching to ALL using Cassandra-CLI and update CQL. 
 Cassandra-cli Describe shows column family caching set to ALL
 3. Rerun query and it works.
 4. Restart Cassandra and run query and no rows returned. Cassandra-cli 
 Describe shows column family caching set to ALL
 5. Set Column Family caching to NONE using Cassandra-cli and update CQL. 
 Rerun query and no rows returned. Cassandra-cli Describe for column family 
 shows caching set to NONE.
 6. Restart Cassandra. Rerun query and it is working again. We are now back to 
 the starting state.
 Best Regards,
 -Tony

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5520) Query tracing session info inconsistent with events info

2013-07-08 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5520?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702499#comment-13702499
 ] 

Jonathan Ellis commented on CASSANDRA-5520:
---

I think I meant the timeout details, because logging the request result in the 
timeout block doesn't make sense.


 Query tracing session info inconsistent with events info
 

 Key: CASSANDRA-5520
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5520
 Project: Cassandra
  Issue Type: Improvement
Affects Versions: 1.2.4
 Environment: Linux
Reporter: Ilya Kirnos
Assignee: Tyler Hobbs
Priority: Minor

 Session info for a trace is showing that a query took  10 seconds (it timed 
 out).
 {noformat}
 cqlsh:system_traces select session_id, duration, request from sessions where 
 session_id = c7e36a30-af3a-11e2-9ec9-772ec39805fe;
 session_id | duration | request
 
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | 1230 | multiget_slice
 However, the event-level breakdown shows no such large duration:
 cqlsh:system_traces select * from events where session_id = 
 c7e36a30-af3a-11e2-9ec9-772ec39805fe;
 session_id | event_id | activity | source | source_elapsed | thread
 -+---
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e36a30-af3a-11e2-9480-e9d811e0fc18 | 
 Message received from /xxx.xxx.90.147 | xxx.xxx.4.16 | 19 | Thread-57
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e36a31-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /xxx.xxx.153.16 | xxx.xxx.90.147 | 246 | 
 WRITE-/xxx.xxx.4.16
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39140-af3a-11e2-9480-e9d811e0fc18 | 
 Message received from /xxx.xxx.90.147 | xxx.xxx.4.16 | 259 | Thread-57
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39140-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /10.248.106.37 | xxx.xxx.90.147 | 253 | 
 WRITE-/xxx.xxx.79.52
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39140-af3a-11e2-b8dc-a7032a583115 | 
 Message received from /xxx.xxx.90.147 | xxx.xxx.213.136 | 25 | Thread-94
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39141-af3a-11e2-9480-e9d811e0fc18 | 
 Executing single-partition query on CardHash | xxx.xxx.4.16 | 421 | 
 ReadStage:5329
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39141-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /xxx.xxx.151.214 | xxx.xxx.90.147 | 310 | 
 WRITE-/xxx.xxx.213.136
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39141-af3a-11e2-b8dc-a7032a583115 | 
 Message received from /xxx.xxx.90.147 | xxx.xxx.213.136 | 106 | Thread-94
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39142-af3a-11e2-9480-e9d811e0fc18 | 
 Acquiring sstable references | xxx.xxx.4.16 | 444 | ReadStage:5329
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39142-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /10.248.106.37 | xxx.xxx.90.147 | 352 | 
 WRITE-/xxx.xxx.79.52
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39142-af3a-11e2-b8dc-a7032a583115 | 
 Executing single-partition query on CardHash | xxx.xxx.213.136 | 144 | 
 ReadStage:11
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39143-af3a-11e2-9480-e9d811e0fc18 | 
 Merging memtable contents | xxx.xxx.4.16 | 472 | ReadStage:5329
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39143-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /10.248.95.237 | xxx.xxx.90.147 | 362 | 
 WRITE-/xxx.xxx.201.218
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39143-af3a-11e2-b8dc-a7032a583115 | 
 Acquiring sstable references | xxx.xxx.213.136 | 164 | ReadStage:11
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39144-af3a-11e2-9480-e9d811e0fc18 | 
 Merging data from memtables and 0 sstables | xxx.xxx.4.16 | 510 | 
 ReadStage:5329
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39144-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /xxx.xxx.151.214 | xxx.xxx.90.147 | 376 | 
 WRITE-/xxx.xxx.213.136
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39144-af3a-11e2-b8dc-a7032a583115 | 
 Merging memtable contents | xxx.xxx.213.136 | 195 | ReadStage:11
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39145-af3a-11e2-9480-e9d811e0fc18 | 
 Read 0 live cells and 0 tombstoned | xxx.xxx.4.16 | 530 | ReadStage:5329
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39145-af3a-11e2-9ec9-772ec39805fe | 
 Sending message to /10.248.95.237 | xxx.xxx.90.147 | 401 | 
 WRITE-/xxx.xxx.201.218
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39145-af3a-11e2-b8dc-a7032a583115 | 
 Executing single-partition query on CardHash | xxx.xxx.213.136 | 202 | 
 ReadStage:41
 c7e36a30-af3a-11e2-9ec9-772ec39805fe | c7e39146-af3a-11e2-9480-e9d811e0fc18 | 
 Enqueuing response to /xxx.xxx.90.147 | xxx.xxx.4.16 | 572 | ReadStage:5329
 

[jira] [Created] (CASSANDRA-5733) json2sstable can not read from a pipe even if -n and -s are specified.

2013-07-08 Thread Steven Lowenthal (JIRA)
Steven Lowenthal created CASSANDRA-5733:
---

 Summary: json2sstable can not read from a pipe even if -n and -s 
are specified.
 Key: CASSANDRA-5733
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5733
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Affects Versions: 1.2.6
Reporter: Steven Lowenthal
Priority: Minor


SSTableImport.importSorted always opens the file twice even if the number of 
keys are specifed.  I changed this to only open the file a second time when -n 
is not specified.

I moved the second parser = getparser ...  call inside the if (keyCountToImport 
== null) block.

if (keyCountToImport == null)
{
keyCountToImport = 0;
System.out.println(Counting keys to import, please wait... (NOTE: 
to skip this use -n num_keys));

parser.nextToken(); // START_ARRAY
while (parser.nextToken() != null)
{
parser.skipChildren();
if (parser.getCurrentToken() == JsonToken.END_ARRAY)
break;

keyCountToImport++;
}
  parser = getParser(jsonFile); // renewing parser only if we read the 
file already - to support streaming.
}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5733) json2sstable can not read from a pipe even if -n and -s are specified.

2013-07-08 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702509#comment-13702509
 ] 

Jonathan Ellis commented on CASSANDRA-5733:
---

Can you attach a patch?  {{git diff  5733.txt}}

 json2sstable can not read from a pipe even if -n and -s are specified.
 --

 Key: CASSANDRA-5733
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5733
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Affects Versions: 1.2.6
Reporter: Steven Lowenthal
Priority: Minor

 SSTableImport.importSorted always opens the file twice even if the number of 
 keys are specifed.  I changed this to only open the file a second time when 
 -n is not specified.
 I moved the second parser = getparser ...  call inside the if 
 (keyCountToImport == null) block.
 if (keyCountToImport == null)
 {
 keyCountToImport = 0;
 System.out.println(Counting keys to import, please wait... 
 (NOTE: to skip this use -n num_keys));
 parser.nextToken(); // START_ARRAY
 while (parser.nextToken() != null)
 {
 parser.skipChildren();
 if (parser.getCurrentToken() == JsonToken.END_ARRAY)
 break;
 keyCountToImport++;
 }
   parser = getParser(jsonFile); // renewing parser only if we read 
 the file already - to support streaming.
 }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5669) Connection thrashing in multi-region ec2 during upgrade, due to messaging version

2013-07-08 Thread Jason Brown (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702549#comment-13702549
 ] 

Jason Brown commented on CASSANDRA-5669:


How does this patch break the 'use localIP addr when in the same DC (ec2 
region)'? Yes, it temporarily bypasses it during upgrades (due to insanity 
described in CASSANDRA-5660), but otherwise I believe it behaves as before. Is 
there a bug or subtlety that I'm not seeing?

 Connection thrashing in multi-region ec2 during upgrade, due to messaging 
 version
 -

 Key: CASSANDRA-5669
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5669
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.2.5
Reporter: Jason Brown
Assignee: Jason Brown
Priority: Minor
  Labels: ec2, ec2multiregionsnitch, gossip
 Fix For: 1.2.6, 2.0 beta 1

 Attachments: 5669-v1.diff, 5669-v2.diff


 While debugging the upgrading scenario described in CASSANDRA-5660, I 
 discovered the ITC.close() will reset the message protocol version of a peer 
 node that disconnects. CASSANDRA-5660 has a full description of the upgrade 
 path, but basically the Ec2MultiRegionSnitch will close connections on the 
 publicIP addr to reconnect on the privateIp, and this causes ITC to drop the 
 message protocol version of previously known nodes. I think we want to hang 
 onto that version so that when the newer node (re-)connects to the lower node 
 version, it passes the correct protocol version rather than the current 
 version (too high for the older node),the connection attempt getting dropped, 
 and going through the dance again.
 To clarify, the 'thrashing' is at a rather low volume, from what I observed. 
 Anecdotaly, perhaps one connection per second gets turned over.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5669) Connection thrashing in multi-region ec2 during upgrade, due to messaging version

2013-07-08 Thread Vijay (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702557#comment-13702557
 ] 

Vijay commented on CASSANDRA-5669:
--

Yes because now reconnect to local ip is not happening during upgrades (you 
will try to connect in a Non SSL port within a DC) 
Lets say Public IP address is not open between node A and B (which are in the 
local DC and they are not seeds) then node A cannot talk to B if you dont 
reconnect using private IP...

which is the case in 
https://issues.apache.org/jira/browse/CASSANDRA-5432?focusedCommentId=13637454page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13637454

 Connection thrashing in multi-region ec2 during upgrade, due to messaging 
 version
 -

 Key: CASSANDRA-5669
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5669
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.2.5
Reporter: Jason Brown
Assignee: Jason Brown
Priority: Minor
  Labels: ec2, ec2multiregionsnitch, gossip
 Fix For: 1.2.6, 2.0 beta 1

 Attachments: 5669-v1.diff, 5669-v2.diff


 While debugging the upgrading scenario described in CASSANDRA-5660, I 
 discovered the ITC.close() will reset the message protocol version of a peer 
 node that disconnects. CASSANDRA-5660 has a full description of the upgrade 
 path, but basically the Ec2MultiRegionSnitch will close connections on the 
 publicIP addr to reconnect on the privateIp, and this causes ITC to drop the 
 message protocol version of previously known nodes. I think we want to hang 
 onto that version so that when the newer node (re-)connects to the lower node 
 version, it passes the correct protocol version rather than the current 
 version (too high for the older node),the connection attempt getting dropped, 
 and going through the dance again.
 To clarify, the 'thrashing' is at a rather low volume, from what I observed. 
 Anecdotaly, perhaps one connection per second gets turned over.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5542) BulkLoader is broken in trunk

2013-07-08 Thread Yuki Morishita (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5542?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702583#comment-13702583
 ] 

Yuki Morishita commented on CASSANDRA-5542:
---

I added querying schema part to bulk loader and successfully opened SSTables, 
but now I'm stuck on the change in streaming.
New streaming now connects from both endpoints, so bulk loader also needs to 
listen on storage port to receive message from the loading nodes. I think we 
don't want to make bulk loader a fat client again...
[~slebresne] Any suggestion for fixing this issue?

 BulkLoader is broken in trunk
 -

 Key: CASSANDRA-5542
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5542
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 2.0 beta 1
Reporter: Yuki Morishita
Assignee: Yuki Morishita
 Fix For: 2.0

 Attachments: 5542-fix-NPE.txt, 5542.txt


 After CASSANDRA-5015 and CASSANDRA-5521, we need CFMetaData to open 
 SSTable(Reader), especially to get bloom_filter_fp_chance and index_interval.
 When using bulkloader, CFMetaData is not available, so we cannot open SSTable 
 to be streamed.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Created] (CASSANDRA-5734) Print usage when command is not specified in nodetool instead of connection failure

2013-07-08 Thread Manoj Mainali (JIRA)
Manoj Mainali created CASSANDRA-5734:


 Summary: Print usage when command is not specified in nodetool 
instead of connection failure
 Key: CASSANDRA-5734
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5734
 Project: Cassandra
  Issue Type: Improvement
Affects Versions: 1.2.6
Reporter: Manoj Mainali
Priority: Minor


nodetool command tries to establish connection to the cassandra node before 
ensuring that the command is valid. Therefore, when no command is specified it 
will print

{noformat}
$ bin/nodetool
Failed to connect to '127.0.0.1:7199': Connection refused
{noformat}

That means we need to have a running instance of C* to check the available 
commands. But this is a syntax error and usage can be displayed (which is the 
result even if a C* is running) even without a C* instance. Probably, it would 
be better to make sure that the command sytnax is valid and print usage if not. 
By doing this, we can easily check the available commands.

Additionally, same should apply for the help command. Since, help will not be 
connecting to the C* instance, we should not have a dependency on a running C*.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (CASSANDRA-5734) Print usage when command is not specified in nodetool instead of connection failure

2013-07-08 Thread Manoj Mainali (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5734?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Manoj Mainali updated CASSANDRA-5734:
-

Attachment: trunk-CASSANDRA-5734.patch

 Print usage when command is not specified in nodetool instead of connection 
 failure
 ---

 Key: CASSANDRA-5734
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5734
 Project: Cassandra
  Issue Type: Improvement
Affects Versions: 1.2.6
Reporter: Manoj Mainali
Priority: Minor
 Attachments: trunk-CASSANDRA-5734.patch


 nodetool command tries to establish connection to the cassandra node before 
 ensuring that the command is valid. Therefore, when no command is specified 
 it will print
 {noformat}
 $ bin/nodetool
 Failed to connect to '127.0.0.1:7199': Connection refused
 {noformat}
 That means we need to have a running instance of C* to check the available 
 commands. But this is a syntax error and usage can be displayed (which is the 
 result even if a C* is running) even without a C* instance. Probably, it 
 would be better to make sure that the command sytnax is valid and print usage 
 if not. By doing this, we can easily check the available commands.
 Additionally, same should apply for the help command. Since, help will not be 
 connecting to the C* instance, we should not have a dependency on a running 
 C*.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Created] (CASSANDRA-5735) Add binary server status to the node information

2013-07-08 Thread Manoj Mainali (JIRA)
Manoj Mainali created CASSANDRA-5735:


 Summary: Add binary server status to the node information
 Key: CASSANDRA-5735
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5735
 Project: Cassandra
  Issue Type: Improvement
Affects Versions: 1.2.6
Reporter: Manoj Mainali
Priority: Minor


nodetool info gives the gossip and thrift active status. Now, since there is a 
binary server it is nice to have the binary status too.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (CASSANDRA-5735) Add binary server status to the node information

2013-07-08 Thread Manoj Mainali (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Manoj Mainali updated CASSANDRA-5735:
-

Attachment: trunk-CASSANDRA-5735.patch

 Add binary server status to the node information
 

 Key: CASSANDRA-5735
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5735
 Project: Cassandra
  Issue Type: Improvement
Affects Versions: 1.2.6
Reporter: Manoj Mainali
Priority: Minor
 Attachments: trunk-CASSANDRA-5735.patch


 nodetool info gives the gossip and thrift active status. Now, since there is 
 a binary server it is nice to have the binary status too.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Updated] (CASSANDRA-5734) Print usage when command is not specified in nodetool instead of connection failure

2013-07-08 Thread Manoj Mainali (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5734?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Manoj Mainali updated CASSANDRA-5734:
-

Description: 
nodetool command tries to establish connection to the cassandra node before 
ensuring that the command is valid. Therefore, when no command is specified it 
will print (in the case when C* is not running)

{noformat}
$ bin/nodetool
Failed to connect to '127.0.0.1:7199': Connection refused
{noformat}

That means we need to have a running instance of C* to check the available 
commands. But this is a syntax error and usage can be displayed (which is the 
result even if a C* is running) even without a C* instance. Probably, it would 
be better to make sure that the command sytnax is valid and print usage if not. 
By doing this, we can easily check the available commands.

Additionally, same should apply for the help command. Since, help will not be 
connecting to the C* instance, we should not have a dependency on a running C*.

  was:
nodetool command tries to establish connection to the cassandra node before 
ensuring that the command is valid. Therefore, when no command is specified it 
will print

{noformat}
$ bin/nodetool
Failed to connect to '127.0.0.1:7199': Connection refused
{noformat}

That means we need to have a running instance of C* to check the available 
commands. But this is a syntax error and usage can be displayed (which is the 
result even if a C* is running) even without a C* instance. Probably, it would 
be better to make sure that the command sytnax is valid and print usage if not. 
By doing this, we can easily check the available commands.

Additionally, same should apply for the help command. Since, help will not be 
connecting to the C* instance, we should not have a dependency on a running C*.


 Print usage when command is not specified in nodetool instead of connection 
 failure
 ---

 Key: CASSANDRA-5734
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5734
 Project: Cassandra
  Issue Type: Improvement
Affects Versions: 1.2.6
Reporter: Manoj Mainali
Priority: Minor
 Attachments: trunk-CASSANDRA-5734.patch


 nodetool command tries to establish connection to the cassandra node before 
 ensuring that the command is valid. Therefore, when no command is specified 
 it will print (in the case when C* is not running)
 {noformat}
 $ bin/nodetool
 Failed to connect to '127.0.0.1:7199': Connection refused
 {noformat}
 That means we need to have a running instance of C* to check the available 
 commands. But this is a syntax error and usage can be displayed (which is the 
 result even if a C* is running) even without a C* instance. Probably, it 
 would be better to make sure that the command sytnax is valid and print usage 
 if not. By doing this, we can easily check the available commands.
 Additionally, same should apply for the help command. Since, help will not be 
 connecting to the C* instance, we should not have a dependency on a running 
 C*.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-5732) Can not query secondary index

2013-07-08 Thread Tony Anecito (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-5732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13702913#comment-13702913
 ] 

Tony Anecito commented on CASSANDRA-5732:
-

Hi,

I tried the same set of tables, data, java code in Windows 7 jre 1.7.0_05 
64-bit and it seems to not have the issue so far. Will try other environment 
using 1.7.0_x 32 then 64-bit to see if that solves the issue.

Regards,
-Tony

 Can not query secondary index
 -

 Key: CASSANDRA-5732
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5732
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.2.5
 Environment: Windows 8, Jre 1.6.0_45 32-bit
Reporter: Tony Anecito

 Noticed after taking a column family that already existed and assigning to an 
 IntegerType index_type:KEYS and the caching was already set to 'ALL' that the 
 prepared statement do not return rows neither did it throw an exception. Here 
 is the sequence.
 1. Starting state query running with caching off for a Column Family with the 
 query using the secondary index for te WHERE clause.
 2, Set Column Family caching to ALL using Cassandra-CLI and update CQL. 
 Cassandra-cli Describe shows column family caching set to ALL
 3. Rerun query and it works.
 4. Restart Cassandra and run query and no rows returned. Cassandra-cli 
 Describe shows column family caching set to ALL
 5. Set Column Family caching to NONE using Cassandra-cli and update CQL. 
 Rerun query and no rows returned. Cassandra-cli Describe for column family 
 shows caching set to NONE.
 6. Restart Cassandra. Rerun query and it is working again. We are now back to 
 the starting state.
 Best Regards,
 -Tony

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira