[jira] [Commented] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin lock that allocates memory

2014-07-15 Thread graham sanderson (JIRA)

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

graham sanderson commented on CASSANDRA-7546:
-

I tried on 2.1 with pretty similar results (note I used a fresh HeapPool for 
each iteration, since it got stuck with the default Native stuff)

{code}
[junit] --
[junit] 1 THREAD; ELEMENT SIZE 64
[junit] 
[junit] Threads = 1 elements = 10 (of size 64) partitions = 1
[junit]  original code:
[junit]   Duration = 562ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 11 ms for 1 collections
[junit]   Approx allocation = 238MB vs 8MB; ratio to raw data size = 
29.79389619047619
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 480ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 10 ms for 1 collections
[junit]   Approx allocation = 239MB vs 8MB; ratio to raw data size = 
29.95105523809524
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit] 
[junit] Threads = 1 elements = 10 (of size 64) partitions = 16
[junit]  original code:
[junit]   Duration = 376ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 11 ms for 1 collections
[junit]   Approx allocation = 219MB vs 8MB; ratio to raw data size = 
27.37058095238095
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 349ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 12 ms for 1 collections
[junit]   Approx allocation = 219MB vs 8MB; ratio to raw data size = 
27.40619619047619
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit] 
[junit] Threads = 1 elements = 10 (of size 64) partitions = 256
[junit]  original code:
[junit]   Duration = 268ms maxConcurrency = 1
[junit]   Approx allocation = 198MB vs 8MB; ratio to raw data size = 
24.8206867
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 277ms maxConcurrency = 1
[junit]   Approx allocation = 198MB vs 8MB; ratio to raw data size = 
24.82146285714286
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit] 
[junit] Threads = 1 elements = 10 (of size 64) partitions = 1024
[junit]  original code:
[junit]   Duration = 258ms maxConcurrency = 1
[junit]   Approx allocation = 190MB vs 8MB; ratio to raw data size = 
23.770030476190477
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 234ms maxConcurrency = 1
[junit]   Approx allocation = 190MB vs 8MB; ratio to raw data size = 
23.769555238095236
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit] 
[junit] --
[junit] 100 THREADS; ELEMENT SIZE 64
[junit] 
[junit] Threads = 100 elements = 10 (of size 64) partitions = 1
[junit]  original code:
[junit]   Duration = 3908ms maxConcurrency = 100
[junit]   GC for PS Scavenge: 36 ms for 10 collections
[junit]   Approx allocation = 2481MB vs 8MB; ratio to raw data size = 
309.730900952381
[junit]   loopRatio (closest to 1 best) 16.04825 raw 10/1604825 counted 
0/0 sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 697ms maxConcurrency = 100
[junit]   GC for PS Scavenge: 12 ms for 1 collections
[junit]   Approx allocation = 241MB vs 8MB; ratio to raw data size = 
30.141012380952382
[junit]   loopRatio (closest to 1 best) 1.4 raw 287/289 counted 2/2 
sync 99712/99713 up 1 down 1
[junit] 
[junit] 
[junit] Threads = 100 elements = 10 (of size 64) partitions = 16
[junit]  original code:
[junit]   Duration = 867ms maxConcurrency = 99
[junit]   GC for PS Scavenge: 10 ms for 1 collections
[junit]   Approx allocation = 378MB vs 8MB; ratio to raw data size = 
47.22428
[junit]   loopRatio (closest to 1 best) 2.03201 raw 10/203201 counted 
0/0 sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 797ms maxConcurrency = 99
[junit]   GC for PS Scavenge: 13 ms for 1 collections
[junit]   Approx allocation = 252MB vs 8MB; ratio to raw data size = 
31.476938095238093
[junit]   loopRatio (closest to 1 best) 1.17123 raw 22254/30788 counted 

[jira] [Commented] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin lock that allocates memory

2014-07-15 Thread graham sanderson (JIRA)

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

graham sanderson commented on CASSANDRA-7546:
-

Note that given we are fine with allocating an object (i.e. ColumnUpdater in 
2.1) there is no reason we can't encapsulate the common  loop logic inside of 
an instance, to avoid code duplication - leaving the 3 loops may still be 
clearer if we decide to stick with this route

 AtomicSortedColumns.addAllWithSizeDelta has a spin lock that allocates memory
 -

 Key: CASSANDRA-7546
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7546
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: graham sanderson
Assignee: graham sanderson
 Attachments: suggestion1.txt


 In order to preserve atomicity, this code attempts to read, clone/update, 
 then CAS the state of the partition.
 Under heavy contention for updating a single partition this can cause some 
 fairly staggering memory growth (the more cores on your machine the worst it 
 gets).
 Whilst many usage patterns don't do highly concurrent updates to the same 
 partition, hinting today, does, and in this case wild (order(s) of magnitude 
 more than expected) memory allocation rates can be seen (especially when the 
 updates being hinted are small updates to different partitions which can 
 happen very fast on their own) - see CASSANDRA-7545
 It would be best to eliminate/reduce/limit the spinning memory allocation 
 whilst not slowing down the very common un-contended case.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin lock that allocates memory

2014-07-15 Thread graham sanderson (JIRA)

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

graham sanderson edited comment on CASSANDRA-7546 at 7/15/14 6:30 AM:
--

I tried on 2.1 with pretty similar results (note I used a fresh HeapPool for 
each iteration, since it got stuck with the default Native stuff) - although 
the 2.1 BTree is much cheaper than the SnapTreeMap

{code}
[junit] --
[junit] 1 THREAD; ELEMENT SIZE 64
[junit] 
[junit] Threads = 1 elements = 10 (of size 64) partitions = 1
[junit]  original code:
[junit]   Duration = 562ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 11 ms for 1 collections
[junit]   Approx allocation = 238MB vs 8MB; ratio to raw data size = 
29.79389619047619
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 480ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 10 ms for 1 collections
[junit]   Approx allocation = 239MB vs 8MB; ratio to raw data size = 
29.95105523809524
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit] 
[junit] Threads = 1 elements = 10 (of size 64) partitions = 16
[junit]  original code:
[junit]   Duration = 376ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 11 ms for 1 collections
[junit]   Approx allocation = 219MB vs 8MB; ratio to raw data size = 
27.37058095238095
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 349ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 12 ms for 1 collections
[junit]   Approx allocation = 219MB vs 8MB; ratio to raw data size = 
27.40619619047619
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit] 
[junit] Threads = 1 elements = 10 (of size 64) partitions = 256
[junit]  original code:
[junit]   Duration = 268ms maxConcurrency = 1
[junit]   Approx allocation = 198MB vs 8MB; ratio to raw data size = 
24.8206867
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 277ms maxConcurrency = 1
[junit]   Approx allocation = 198MB vs 8MB; ratio to raw data size = 
24.82146285714286
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit] 
[junit] Threads = 1 elements = 10 (of size 64) partitions = 1024
[junit]  original code:
[junit]   Duration = 258ms maxConcurrency = 1
[junit]   Approx allocation = 190MB vs 8MB; ratio to raw data size = 
23.770030476190477
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 234ms maxConcurrency = 1
[junit]   Approx allocation = 190MB vs 8MB; ratio to raw data size = 
23.769555238095236
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit] 
[junit] --
[junit] 100 THREADS; ELEMENT SIZE 64
[junit] 
[junit] Threads = 100 elements = 10 (of size 64) partitions = 1
[junit]  original code:
[junit]   Duration = 3908ms maxConcurrency = 100
[junit]   GC for PS Scavenge: 36 ms for 10 collections
[junit]   Approx allocation = 2481MB vs 8MB; ratio to raw data size = 
309.730900952381
[junit]   loopRatio (closest to 1 best) 16.04825 raw 10/1604825 counted 
0/0 sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 697ms maxConcurrency = 100
[junit]   GC for PS Scavenge: 12 ms for 1 collections
[junit]   Approx allocation = 241MB vs 8MB; ratio to raw data size = 
30.141012380952382
[junit]   loopRatio (closest to 1 best) 1.4 raw 287/289 counted 2/2 
sync 99712/99713 up 1 down 1
[junit] 
[junit] 
[junit] Threads = 100 elements = 10 (of size 64) partitions = 16
[junit]  original code:
[junit]   Duration = 867ms maxConcurrency = 99
[junit]   GC for PS Scavenge: 10 ms for 1 collections
[junit]   Approx allocation = 378MB vs 8MB; ratio to raw data size = 
47.22428
[junit]   loopRatio (closest to 1 best) 2.03201 raw 10/203201 counted 
0/0 sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 797ms maxConcurrency = 99
[junit]   GC for PS Scavenge: 13 ms for 1 collections
[junit]   Approx allocation = 252MB vs 8MB; ratio to 

[jira] [Updated] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin lock that allocates memory

2014-07-15 Thread graham sanderson (JIRA)

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

graham sanderson updated CASSANDRA-7546:


Attachment: suggestion1_21.txt

Added version of suggestion1 for 2.1 branch

 AtomicSortedColumns.addAllWithSizeDelta has a spin lock that allocates memory
 -

 Key: CASSANDRA-7546
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7546
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: graham sanderson
Assignee: graham sanderson
 Attachments: suggestion1.txt, suggestion1_21.txt


 In order to preserve atomicity, this code attempts to read, clone/update, 
 then CAS the state of the partition.
 Under heavy contention for updating a single partition this can cause some 
 fairly staggering memory growth (the more cores on your machine the worst it 
 gets).
 Whilst many usage patterns don't do highly concurrent updates to the same 
 partition, hinting today, does, and in this case wild (order(s) of magnitude 
 more than expected) memory allocation rates can be seen (especially when the 
 updates being hinted are small updates to different partitions which can 
 happen very fast on their own) - see CASSANDRA-7545
 It would be best to eliminate/reduce/limit the spinning memory allocation 
 whilst not slowing down the very common un-contended case.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7541) Windows: IOException when repairing a range of tokens

2014-07-15 Thread Chienyu Chen (JIRA)

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

Chienyu Chen commented on CASSANDRA-7541:
-

Thanks, I've re-run the repair to test. It has fixed the issue for me.

 Windows: IOException when repairing a range of tokens
 -

 Key: CASSANDRA-7541
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7541
 Project: Cassandra
  Issue Type: Bug
Reporter: Joshua McKenzie
Assignee: Joshua McKenzie
Priority: Minor
  Labels: Windows
 Fix For: 2.0.10

 Attachments: 7541_2.1_v1.txt, 7541_v1.txt


 Looks like we missed this in CASSANDRA-6907 - range-based repair still 
 default to snapshot-based on Windows.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (CASSANDRA-7547) EC2 seed provider using Datastax Reflector

2014-07-15 Thread Pekka Enberg (JIRA)
Pekka Enberg created CASSANDRA-7547:
---

 Summary: EC2 seed provider using Datastax Reflector
 Key: CASSANDRA-7547
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7547
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Pekka Enberg
Priority: Minor


This is a request for comments. I am using this to build our EC2 AMIs but I 
thought I'd ask if this makes sense as a generic feature for Cassandra.

Cassandra cluster auto-configuration on EC2 uses the Datastax reflector service 
for discovering seed nodes. Instead of relying on external scripts, this patch 
implements EC2 seed provider that uses the Datastax reflector service.

This is particularly useful for EC2 AMIs that don't include a complete 
userspace (such as those built with OSv) where we ideally want to push as much 
configuration to the application itself.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7547) EC2 seed provider using Datastax Reflector

2014-07-15 Thread Pekka Enberg (JIRA)

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

Pekka Enberg updated CASSANDRA-7547:


Attachment: 0001-EC2-seed-provider.patch

 EC2 seed provider using Datastax Reflector
 --

 Key: CASSANDRA-7547
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7547
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Pekka Enberg
Priority: Minor
 Attachments: 0001-EC2-seed-provider.patch


 This is a request for comments. I am using this to build our EC2 AMIs but I 
 thought I'd ask if this makes sense as a generic feature for Cassandra.
 Cassandra cluster auto-configuration on EC2 uses the Datastax reflector 
 service for discovering seed nodes. Instead of relying on external scripts, 
 this patch implements EC2 seed provider that uses the Datastax reflector 
 service.
 This is particularly useful for EC2 AMIs that don't include a complete 
 userspace (such as those built with OSv) where we ideally want to push as 
 much configuration to the application itself.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7477) JSON to SSTable import failing

2014-07-15 Thread Mikhail Stepura (JIRA)

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

Mikhail Stepura commented on CASSANDRA-7477:


[~kishkaru] is it possible to share {{json_tools_test.py}}? Or is there any 
other way to reproduce the problem?

 JSON to SSTable import failing
 --

 Key: CASSANDRA-7477
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7477
 Project: Cassandra
  Issue Type: Bug
 Environment: Linux Mint 17 64-bit | 16GiB | C* 2.1
Reporter: Kishan Karunaratne
Assignee: Mikhail Stepura
 Fix For: 2.1.0

 Attachments: log2.log


 Issue affects C* version = 2.1. Commit found by using git bisect. The 
 previous commit to this one also fails, but due to other reasons (CCM server 
 won't start). This commit is the one that give the same error as 2.1 HEAD:
 {noformat}
 02d1e7497a9930120fac367ce82a3b22940acafb is the first bad commit
 commit 02d1e7497a9930120fac367ce82a3b22940acafb
 Author: Brandon Williams brandonwilli...@apache.org
 Date:   Mon Apr 21 14:42:29 2014 -0500
 Default flush dir to data dir.
 Patch by brandonwilliams, reviewed by yukim for CASSANDRA-7064
 :04 04 c50a123f305b73583ccbfa9c455efc4e4cee228f 
 507a90290dccb8a929afadf1f833d926049c46ad Mconf
 {noformat}
 {noformat}
 $ PRINT_DEBUG=true nosetests -x -s -v json_tools_test.py 
 json_tools_test (json_tools_test.TestJson) ... cluster ccm directory: 
 /tmp/dtest-8WVBq9
 Starting cluster...
 Version: 2.1.0
 Getting CQLSH...
 Inserting data...
 Flushing and stopping cluster...
 Exporting to JSON file...
 -- test-users-ka-1-Data.db -
 Deleting cluster and creating new...
 Inserting data...
 Importing JSON file...
 Counting keys to import, please wait... (NOTE: to skip this use -n num_keys)
 Importing 2 keys...
 java.lang.ClassCastException: 
 org.apache.cassandra.db.composites.Composites$EmptyComposite cannot be cast 
 to org.apache.cassandra.db.composites.CellName
   at 
 org.apache.cassandra.db.composites.AbstractCellNameType.cellFromByteBuffer(AbstractCellNameType.java:168)
   at 
 org.apache.cassandra.tools.SSTableImport$JsonColumn.init(SSTableImport.java:165)
   at 
 org.apache.cassandra.tools.SSTableImport.addColumnsToCF(SSTableImport.java:242)
   at 
 org.apache.cassandra.tools.SSTableImport.addToStandardCF(SSTableImport.java:225)
   at 
 org.apache.cassandra.tools.SSTableImport.importSorted(SSTableImport.java:464)
   at 
 org.apache.cassandra.tools.SSTableImport.importJson(SSTableImport.java:351)
   at org.apache.cassandra.tools.SSTableImport.main(SSTableImport.java:575)
 ERROR: org.apache.cassandra.db.composites.Composites$EmptyComposite cannot be 
 cast to org.apache.cassandra.db.composites.CellName
 Verifying import...
 data: [[u'gandalf', 1955, u'male', u'p@$$', u'WA']]
 FAIL
 removing ccm cluster test at: /tmp/dtest-8WVBq9
 ERROR
 ==
 ERROR: json_tools_test (json_tools_test.TestJson)
 --
 Traceback (most recent call last):
   File /home/kishan/git/cstar/cassandra-dtest/dtest.py, line 214, in 
 tearDown
 raise AssertionError('Unexpected error in %s node log: %s' % (node.name, 
 errors))
 AssertionError: Unexpected error in node1 node log: ['ERROR 
 [SSTableBatchOpen:1] 2014-06-30 13:56:01,032 CassandraDaemon.java:166 - 
 Exception in thread Thread[SSTableBatchOpen:1,5,main]\n']
   begin captured logging  
 dtest: DEBUG: cluster ccm directory: /tmp/dtest-8WVBq9
 dtest: DEBUG: Starting cluster...
 dtest: DEBUG: Version: 2.1.0
 dtest: DEBUG: Getting CQLSH...
 dtest: DEBUG: Inserting data...
 dtest: DEBUG: Flushing and stopping cluster...
 dtest: DEBUG: Exporting to JSON file...
 dtest: DEBUG: Deleting cluster and creating new...
 dtest: DEBUG: Inserting data...
 dtest: DEBUG: Importing JSON file...
 dtest: DEBUG: Verifying import...
 dtest: DEBUG: data: [[u'gandalf', 1955, u'male', u'p@$$', u'WA']]
 dtest: DEBUG: removing ccm cluster test at: /tmp/dtest-8WVBq9
 -  end captured logging  -
 ==
 FAIL: json_tools_test (json_tools_test.TestJson)
 --
 Traceback (most recent call last):
   File /home/kishan/git/cstar/cassandra-dtest/json_tools_test.py, line 91, 
 in json_tools_test
 [u'gandalf', 1955, u'male', u'p@$$', u'WA'] ] )
 AssertionError: Element counts were not equal:
 First has 0, Second has 1:  [u'frodo', 1985, u'male', u'pass@', u'CA']
 First has 0, Second has 1:  [u'sam', 1980, u'male', u'@pass', u'NY']
   begin captured logging  

[jira] [Commented] (CASSANDRA-7477) JSON to SSTable import failing

2014-07-15 Thread Mikhail Stepura (JIRA)

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

Mikhail Stepura commented on CASSANDRA-7477:


[~kishkaru] I've found that at 
https://github.com/riptano/cassandra-dtest/tree/json_tools. But it gives me a 
different error (I'm using the latest {ccm} from git, and latest changes from 
2.1.0 branch
{code}
mstepura-mac:cassandra-dtest mikhail$ PRINT_DEBUG=true nosetests -x -s -v 
json_tools_test.py
json_tools_test (json_tools_test.TestJson) ... cluster ccm directory: 
/var/folders/xl/w12639217y3041zwnjstr3lcgn/T/dtest-yrqnIG
Starting cluster...
[node1 ERROR] objc[52456]: Class JavaLaunchHelper is implemented in both 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java and 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libinstrument.dylib.
 One of the two will be used. Which one is undefined.
Version: 2.1.0
Getting CQLSH...
Inserting data...
Flushing and stopping cluster...
objc[52474]: Class JavaLaunchHelper is implemented in both 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java and 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libinstrument.dylib.
 One of the two will be used. Which one is undefined.
Exporting to JSON file...
-- test-users-ka-1-Data.db -
objc[52476]: Class JavaLaunchHelper is implemented in both 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java and 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libinstrument.dylib.
 One of the two will be used. Which one is undefined.

Deleting cluster and creating new...
Inserting data...
objc[52510]: Class JavaLaunchHelper is implemented in both 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java and 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libinstrument.dylib.
 One of the two will be used. Which one is undefined.
Importing JSON file...
objc[52512]: Class JavaLaunchHelper is implemented in both 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java and 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libinstrument.dylib.
 One of the two will be used. Which one is undefined.
WARN  08:35:00 JNA link failure, one or more native method will be unavailable.
Counting keys to import, please wait... (NOTE: to skip this use -n num_keys)
org.codehaus.jackson.JsonParseException: Unexpected character ('W' (code 87)): 
expected a valid value (number, String, array, object, 'true', 'false' or 
'null')
 at [Source: 
/var/folders/xl/w12639217y3041zwnjstr3lcgn/T/tmppUlYbe.schema.json; line: 
1, column: 2]
at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1432)
at 
org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:385)
at 
org.codehaus.jackson.impl.JsonParserMinimalBase._reportUnexpectedChar(JsonParserMinimalBase.java:306)
at 
org.codehaus.jackson.impl.Utf8StreamParser._handleUnexpectedValue(Utf8StreamParser.java:2084)
at 
org.codehaus.jackson.impl.Utf8StreamParser._nextTokenNotInObject(Utf8StreamParser.java:600)
at 
org.codehaus.jackson.impl.Utf8StreamParser.nextToken(Utf8StreamParser.java:486)
at 
org.apache.cassandra.tools.SSTableImport.importSorted(SSTableImport.java:360)
at 
org.apache.cassandra.tools.SSTableImport.importJson(SSTableImport.java:282)
at org.apache.cassandra.tools.SSTableImport.main(SSTableImport.java:494)
ERROR: Unexpected character ('W' (code 87)): expected a valid value (number, 
String, array, object, 'true', 'false' or 'null')
 at [Source: 
/var/folders/xl/w12639217y3041zwnjstr3lcgn/T/tmppUlYbe.schema.json; line: 
1, column: 2]
Verifying import...
data: [[u'gandalf', 1955, u'male', u'p@$$', u'WA']]
FAIL
removing ccm cluster test at: 
/var/folders/xl/w12639217y3041zwnjstr3lcgn/T/dtest-yrqnIG

==
FAIL: json_tools_test (json_tools_test.TestJson)
--
Traceback (most recent call last):
  File /Users/mikhail/Documents/workspace/cassandra-dtest/json_tools_test.py, 
line 91, in json_tools_test
[u'gandalf', 1955, u'male', u'p@$$', u'WA'] ] )
AssertionError: Element counts were not equal:
First has 0, Second has 1:  [u'frodo', 1985, u'male', u'pass@', u'CA']
First has 0, Second has 1:  [u'sam', 1980, u'male', u'@pass', u'NY']
  begin captured logging  
dtest: DEBUG: cluster ccm directory: 
/var/folders/xl/w12639217y3041zwnjstr3lcgn/T/dtest-yrqnIG
dtest: DEBUG: Starting cluster...
dtest: DEBUG: Version: 2.1.0
dtest: DEBUG: Getting CQLSH...
dtest: DEBUG: Inserting data...
dtest: DEBUG: Flushing and stopping cluster...
dtest: 

[jira] [Comment Edited] (CASSANDRA-7477) JSON to SSTable import failing

2014-07-15 Thread Mikhail Stepura (JIRA)

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

Mikhail Stepura edited comment on CASSANDRA-7477 at 7/15/14 8:46 AM:
-

[~kishkaru] I've found that at 
https://github.com/riptano/cassandra-dtest/tree/json_tools. But it gives me a 
different error (I'm using the latest {{ccm}} from git, and latest changes from 
2.1.0 branch
{code}
mstepura-mac:cassandra-dtest mikhail$ PRINT_DEBUG=true nosetests -x -s -v 
json_tools_test.py
json_tools_test (json_tools_test.TestJson) ... cluster ccm directory: 
/var/folders/xl/w12639217y3041zwnjstr3lcgn/T/dtest-yrqnIG
Starting cluster...
[node1 ERROR] objc[52456]: Class JavaLaunchHelper is implemented in both 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java and 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libinstrument.dylib.
 One of the two will be used. Which one is undefined.
Version: 2.1.0
Getting CQLSH...
Inserting data...
Flushing and stopping cluster...
objc[52474]: Class JavaLaunchHelper is implemented in both 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java and 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libinstrument.dylib.
 One of the two will be used. Which one is undefined.
Exporting to JSON file...
-- test-users-ka-1-Data.db -
objc[52476]: Class JavaLaunchHelper is implemented in both 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java and 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libinstrument.dylib.
 One of the two will be used. Which one is undefined.

Deleting cluster and creating new...
Inserting data...
objc[52510]: Class JavaLaunchHelper is implemented in both 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java and 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libinstrument.dylib.
 One of the two will be used. Which one is undefined.
Importing JSON file...
objc[52512]: Class JavaLaunchHelper is implemented in both 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java and 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libinstrument.dylib.
 One of the two will be used. Which one is undefined.
WARN  08:35:00 JNA link failure, one or more native method will be unavailable.
Counting keys to import, please wait... (NOTE: to skip this use -n num_keys)
org.codehaus.jackson.JsonParseException: Unexpected character ('W' (code 87)): 
expected a valid value (number, String, array, object, 'true', 'false' or 
'null')
 at [Source: 
/var/folders/xl/w12639217y3041zwnjstr3lcgn/T/tmppUlYbe.schema.json; line: 
1, column: 2]
at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1432)
at 
org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:385)
at 
org.codehaus.jackson.impl.JsonParserMinimalBase._reportUnexpectedChar(JsonParserMinimalBase.java:306)
at 
org.codehaus.jackson.impl.Utf8StreamParser._handleUnexpectedValue(Utf8StreamParser.java:2084)
at 
org.codehaus.jackson.impl.Utf8StreamParser._nextTokenNotInObject(Utf8StreamParser.java:600)
at 
org.codehaus.jackson.impl.Utf8StreamParser.nextToken(Utf8StreamParser.java:486)
at 
org.apache.cassandra.tools.SSTableImport.importSorted(SSTableImport.java:360)
at 
org.apache.cassandra.tools.SSTableImport.importJson(SSTableImport.java:282)
at org.apache.cassandra.tools.SSTableImport.main(SSTableImport.java:494)
ERROR: Unexpected character ('W' (code 87)): expected a valid value (number, 
String, array, object, 'true', 'false' or 'null')
 at [Source: 
/var/folders/xl/w12639217y3041zwnjstr3lcgn/T/tmppUlYbe.schema.json; line: 
1, column: 2]
Verifying import...
data: [[u'gandalf', 1955, u'male', u'p@$$', u'WA']]
FAIL
removing ccm cluster test at: 
/var/folders/xl/w12639217y3041zwnjstr3lcgn/T/dtest-yrqnIG

==
FAIL: json_tools_test (json_tools_test.TestJson)
--
Traceback (most recent call last):
  File /Users/mikhail/Documents/workspace/cassandra-dtest/json_tools_test.py, 
line 91, in json_tools_test
[u'gandalf', 1955, u'male', u'p@$$', u'WA'] ] )
AssertionError: Element counts were not equal:
First has 0, Second has 1:  [u'frodo', 1985, u'male', u'pass@', u'CA']
First has 0, Second has 1:  [u'sam', 1980, u'male', u'@pass', u'NY']
  begin captured logging  
dtest: DEBUG: cluster ccm directory: 
/var/folders/xl/w12639217y3041zwnjstr3lcgn/T/dtest-yrqnIG
dtest: DEBUG: Starting cluster...
dtest: DEBUG: Version: 2.1.0
dtest: DEBUG: Getting CQLSH...
dtest: DEBUG: Inserting data...

[jira] [Created] (CASSANDRA-7548) Disk I/O priority control for Compaction and Flusher

2014-07-15 Thread Hanson (JIRA)
Hanson created CASSANDRA-7548:
-

 Summary: Disk I/O priority control for Compaction and Flusher
 Key: CASSANDRA-7548
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7548
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Hanson


Disk I/O priority: Memtables Flusher shall have higher priority than Compaction.
This is to avoid DB Insert/Update hung (spikes) during SSTables Compaction. The 
Compaction shall be able to detect the in-progress of Memtables flushing, and 
slow down itself for disk I/O.




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (CASSANDRA-7549) Heavy Disk Read I/O

2014-07-15 Thread Hanson (JIRA)
Hanson created CASSANDRA-7549:
-

 Summary: Heavy Disk Read I/O
 Key: CASSANDRA-7549
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7549
 Project: Cassandra
  Issue Type: Improvement
 Environment: Cassandra 2.0.6
Reporter: Hanson


We observed heavy disk Read I/O, sometimes almost ~100% disk I/O %util. The 
block size for Disk Read seems too small per “iostat”: 
- DB Query: ~40KB per read
- SSTables Compaction : ~120KB per read

Could it use larger block size for Disk Read? (from Cassandra or OS disk driver 
tuning)




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (CASSANDRA-7550) Reduce tombstones

2014-07-15 Thread Hanson (JIRA)
Hanson created CASSANDRA-7550:
-

 Summary: Reduce tombstones
 Key: CASSANDRA-7550
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7550
 Project: Cassandra
  Issue Type: Improvement
Reporter: Hanson


If a record is still in Memtable, the Delete to that record shall be done in 
memory (Make Compaction in memory), instead of placing a tombstone. This way it 
can save disk I/O and space a lot for records with short lifecycle.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (CASSANDRA-7550) Reduce tombstones

2014-07-15 Thread Aleksey Yeschenko (JIRA)

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

Aleksey Yeschenko resolved CASSANDRA-7550.
--

Resolution: Invalid

Unfortunately, it's not that easy. You can only do it if you are sure that 
there is nothing covered by the tombstone in any of the sstables on this, or 
any other node in the cluster.

 Reduce tombstones
 -

 Key: CASSANDRA-7550
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7550
 Project: Cassandra
  Issue Type: Improvement
Reporter: Hanson

 If a record is still in Memtable, the Delete to that record shall be done in 
 memory (Make Compaction in memory), instead of placing a tombstone. This way 
 it can save disk I/O and space a lot for records with short lifecycle.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7547) EC2 seed provider using DataStax Reflector

2014-07-15 Thread Pekka Enberg (JIRA)

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

Pekka Enberg updated CASSANDRA-7547:


Summary: EC2 seed provider using DataStax Reflector  (was: EC2 seed 
provider using Datastax Reflector)

 EC2 seed provider using DataStax Reflector
 --

 Key: CASSANDRA-7547
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7547
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Pekka Enberg
Priority: Minor
 Attachments: 0001-EC2-seed-provider.patch


 This is a request for comments. I am using this to build our EC2 AMIs but I 
 thought I'd ask if this makes sense as a generic feature for Cassandra.
 Cassandra cluster auto-configuration on EC2 uses the Datastax reflector 
 service for discovering seed nodes. Instead of relying on external scripts, 
 this patch implements EC2 seed provider that uses the Datastax reflector 
 service.
 This is particularly useful for EC2 AMIs that don't include a complete 
 userspace (such as those built with OSv) where we ideally want to push as 
 much configuration to the application itself.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7232) Enable live replay of commit logs

2014-07-15 Thread Lyuben Todorov (JIRA)

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

Lyuben Todorov commented on CASSANDRA-7232:
---

So we want the nodetool command to accept a list of commit logs and the 
point-in-time to recover to? Something along the lines of: nodetool 
replaycommitlogs ks cf point-in-time list-of-commitlogs
eg:

{{nodetool replaycommitogs demodb usertable  -point-in-time  1404777106690 
C*_DIR/data/commitlogs/CommitLog-4-1404777106690.log 
C*_DIR/data/commitlogs/CommitLog-4-1404777106696.log 
C*_DIR/data/commitlogs/CommitLog-4-1404777106698.log}}

 Enable live replay of commit logs
 -

 Key: CASSANDRA-7232
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7232
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Patrick McFadin
Assignee: Lyuben Todorov
Priority: Minor
 Fix For: 2.0.10

 Attachments: 
 0001-Expose-CommitLog-recover-to-JMX-add-nodetool-cmd-for.patch, 
 0001-TRUNK-JMX-and-nodetool-cmd-for-commitlog-replay.patch


 Replaying commit logs takes a restart but restoring sstables can be an online 
 operation with refresh. In order to restore a point-in-time without a 
 restart, the node needs to live replay the commit logs from JMX and a 
 nodetool command.
 nodetool refreshcommitlogs keyspace table



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7232) Enable live replay of commit logs

2014-07-15 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-7232:
-

That looks a bit error prone: it should at least take a list of directories. 
However I'm a little uncomfortable passing node-local paths remotely over 
nodetool in general, especially when we have very little to help ensure we got 
it right (we should at least print a list of restored log files when done). In 
general, I think it would be safer to specify the commit log restore/archive 
location at startup, but not automatically restore them if specified (have a 
separate option); then the nodetool command always uses that path, and only 
accepts a point-in-time option.

This is ripe for some bikeshedding, though. [~jbellis] [~thobbs] [~pmcfadin]?

 Enable live replay of commit logs
 -

 Key: CASSANDRA-7232
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7232
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Patrick McFadin
Assignee: Lyuben Todorov
Priority: Minor
 Fix For: 2.0.10

 Attachments: 
 0001-Expose-CommitLog-recover-to-JMX-add-nodetool-cmd-for.patch, 
 0001-TRUNK-JMX-and-nodetool-cmd-for-commitlog-replay.patch


 Replaying commit logs takes a restart but restoring sstables can be an online 
 operation with refresh. In order to restore a point-in-time without a 
 restart, the node needs to live replay the commit logs from JMX and a 
 nodetool command.
 nodetool refreshcommitlogs keyspace table



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7550) Reduce tombstones

2014-07-15 Thread Hanson (JIRA)

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

Hanson commented on CASSANDRA-7550:
---

I mean that record is newly inserted and has not been flushed into SSTable yet, 
only existed in memory at the moment to be deleted. So it shall be safety to do 
the Delete in memory without putting a tombstone.
In our use case, the records only stay in DB for hours (random duration) and 
will then be deleted.


 Reduce tombstones
 -

 Key: CASSANDRA-7550
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7550
 Project: Cassandra
  Issue Type: Improvement
Reporter: Hanson

 If a record is still in Memtable, the Delete to that record shall be done in 
 memory (Make Compaction in memory), instead of placing a tombstone. This way 
 it can save disk I/O and space a lot for records with short lifecycle.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7550) Reduce tombstones

2014-07-15 Thread Aleksey Yeschenko (JIRA)

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

Aleksey Yeschenko commented on CASSANDRA-7550:
--

You can't (generally) know for a fact that a partition with the same key/a cell 
with the same name doesn't exist elsewhere on disk or on another node.

 Reduce tombstones
 -

 Key: CASSANDRA-7550
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7550
 Project: Cassandra
  Issue Type: Improvement
Reporter: Hanson

 If a record is still in Memtable, the Delete to that record shall be done in 
 memory (Make Compaction in memory), instead of placing a tombstone. This way 
 it can save disk I/O and space a lot for records with short lifecycle.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7549) Heavy Disk Read I/O

2014-07-15 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-7549:
-

Can you clarify what this ticket is hoping to achieve? Too small compared to 
what? The default Cassandra block size is 64Kb, and since currently reading 
data in a block requires a sequential scan of data preceding the target record, 
reading ~40Kb is about correct for reading a very small row with an 8Kb read 
ahead, and zero page cache utilisation (i.e. completely random reads for a 
substantially larger than memory dataset). Increasing block size is likely to 
reduce performance for this kind of workload, not improve it.

 Heavy Disk Read I/O
 ---

 Key: CASSANDRA-7549
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7549
 Project: Cassandra
  Issue Type: Improvement
 Environment: Cassandra 2.0.6
Reporter: Hanson

 We observed heavy disk Read I/O, sometimes almost ~100% disk I/O %util. The 
 block size for Disk Read seems too small per “iostat”: 
   - DB Query: ~40KB per read
   - SSTables Compaction : ~120KB per read
 Could it use larger block size for Disk Read? (from Cassandra or OS disk 
 driver tuning)



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Assigned] (CASSANDRA-7542) Reduce CAS contention

2014-07-15 Thread Brandon Williams (JIRA)

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

Brandon Williams reassigned CASSANDRA-7542:
---

Assignee: Benedict

I think Benedict had some ideas here.

 Reduce CAS contention
 -

 Key: CASSANDRA-7542
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7542
 Project: Cassandra
  Issue Type: Improvement
Reporter: sankalp kohli
Assignee: Benedict

 CAS updates on same CQL partition can lead to heavy contention inside C*. I 
 am looking for simple ways(no algorithmic changes) to reduce contention as 
 the penalty of it is high in terms of latency, specially for reads. 
 We can put some sort of synchronization on CQL partition at StorageProxy 
 level. This will reduce contention at least for all requests landing on one 
 box for same partition. 
 Here is an example of why it will help:
 1) Say 1 write and 2 read CAS requests for the same partition key is send to 
 C* in parallel. 
 2) Since client is token-aware, it sends these 3 request to the same C* 
 instance A. (Lets assume that all 3 requests goto same instance A) 
 3) In this C* instance A, all 3 CAS requests will contend with each other in 
 Paxos. (This is bad)
 To improve contention in 3), what I am proposing is to add a lock on 
 partition key similar to what we do in PaxosState.java to serialize these 3 
 requests. This will remove the contention and improve performance as these 3 
 requests will not collide with each other.
 Another improvement we can do in client is to pick a deterministic live 
 replica for a given partition doing CAS.  



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7544) Allow storage port to be configurable per node

2014-07-15 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-7544:


 Reviewer: Brandon Williams
Fix Version/s: 3.0

 Allow storage port to be configurable per node
 --

 Key: CASSANDRA-7544
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7544
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Sam Overton
Assignee: Sam Overton
 Fix For: 3.0


 Currently storage_port must be configured identically on all nodes in a 
 cluster and it is assumed that this is the case when connecting to a remote 
 node.
 This prevents running in any environment that requires multiple nodes to be 
 able to bind to the same network interface, such as with many automatic 
 provisioning/deployment frameworks.
 The current solutions seems to be
 * use a separate network interface for each node deployed to the same box. 
 This puts a big requirement on IP allocation at large scale.
 * allow multiple clusters to be provisioned from the same resource pool, but 
 restrict allocation to a maximum of one node per host from each cluster, 
 assuming each cluster is running on a different storage port.
 It would make operations much simpler in these kind of environments if the 
 environment provisioning the resources could assign the ports to be used when 
 bringing up a new node on shared hardware.
 The changes required would be at least the following:
 1. configure seeds as IP:port instead of just IP
 2. gossip the storage port as part of a node's ApplicationState
 3. refer internally to nodes by hostID instead of IP, since there will be 
 multiple nodes with the same IP
 (1)  (2) are mostly trivial and I already have a patch for these. The bulk 
 of the work to enable this is (3), and I would structure this as a separate 
 pre-requisite patch. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Assigned] (CASSANDRA-7543) Assertion error when compacting large row with map//list field or range tombstone

2014-07-15 Thread Brandon Williams (JIRA)

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

Brandon Williams reassigned CASSANDRA-7543:
---

Assignee: Yuki Morishita

 Assertion error when compacting large row with map//list field or range 
 tombstone
 -

 Key: CASSANDRA-7543
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7543
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: linux
Reporter: Matt Byrd
Assignee: Yuki Morishita
  Labels: compaction, map

 Hi,
 So in a couple of clusters we're hitting this problem when compacting large 
 rows with a schema which contains the map data-type.
 Here is an example of the error:
 {code}
 java.lang.AssertionError: incorrect row data size 87776427 written to 
 /cassandra/X/Y/X-Y-tmp-ic-2381-Data.db; correct is 87845952
 org.apache.cassandra.io.sstable.SSTableWriter.append(SSTableWriter.java:162)
 org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:163)
 org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
 org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
 org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:58)
  
 org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:60)
  
 org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:208)
 {code}
 I have a python script which reproduces the problem, by just writing lots of 
 data to a single partition key with a schema that contains the map data-type.
 I added some debug logging and found that the difference in bytes seen in the 
 reproduction (255) was due to the following pieces of data being written:
 {code}
 DEBUG [CompactionExecutor:3] 2014-07-13 00:38:42,891 ColumnIndex.java (line 
 168) DATASIZE writeOpenedMarker columnIndex: 
 org.apache.cassandra.db.ColumnIndex$Builder@6678a9d0 firstColumn: 
 [java.nio.HeapByteBuffer[pos=0 lim=34 cap=34], java.nio.HeapByteBuffer[pos=0 
 lim=34 cap=34]](deletedAt=1405237116014999, localDeletion=1405237116) 
 startPosition: 262476 endPosition: 262561 diff: 85 
 DEBUG [CompactionExecutor:3] 2014-07-13 00:38:43,007 ColumnIndex.java (line 
 168) DATASIZE writeOpenedMarker columnIndex: 
 org.apache.cassandra.db.ColumnIndex$Builder@6678a9d0 firstColumn: 
 org.apache.cassandra.db.Column@3e5b5939 startPosition: 328157 endPosition: 
 328242 diff: 85 
 DEBUG [CompactionExecutor:3] 2014-07-13 00:38:44,159 ColumnIndex.java (line 
 168) DATASIZE writeOpenedMarker columnIndex: 
 org.apache.cassandra.db.ColumnIndex$Builder@6678a9d0 firstColumn: 
 org.apache.cassandra.db.Column@fc3299b startPosition: 984105 endPosition: 
 984190 diff: 85
 {code}
 So looking at the code you can see that there are extra range tombstones 
 written on the column index border (in ColumnIndex where 
 tombstoneTracker.writeOpenedMarker is called) which aren't accounted for in 
 LazilyCompactedRow.columnSerializedSize.
 This is where the difference comes from in the assertion error, so the 
 solution is just to account for this data.
 I have a patch which does just this, by keeping track of the extra data 
 written out via tombstoneTracker.writeOpenedMarker in ColumnIndex and adding 
 it back to the dataSize in LazilyCompactedRow.java, where it serialises out 
 the row size.
 After applying the patch the reproduction stops producing the AssertionError.
 I know this is not a problem in 2.0 + because of singe pass compaction, 
 however there are lots of 1.2 clusters out there still which might run into 
 this.
 Please let me know if you've any questions.
 Thanks,
 Matt



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7547) EC2 seed provider using DataStax Reflector

2014-07-15 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-7547:
--

Reviewer: Brandon Williams

[~brandon.williams] to review

 EC2 seed provider using DataStax Reflector
 --

 Key: CASSANDRA-7547
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7547
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Pekka Enberg
Priority: Minor
 Attachments: 0001-EC2-seed-provider.patch


 This is a request for comments. I am using this to build our EC2 AMIs but I 
 thought I'd ask if this makes sense as a generic feature for Cassandra.
 Cassandra cluster auto-configuration on EC2 uses the Datastax reflector 
 service for discovering seed nodes. Instead of relying on external scripts, 
 this patch implements EC2 seed provider that uses the Datastax reflector 
 service.
 This is particularly useful for EC2 AMIs that don't include a complete 
 userspace (such as those built with OSv) where we ideally want to push as 
 much configuration to the application itself.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7547) EC2 seed provider using DataStax Reflector

2014-07-15 Thread Brandon Williams (JIRA)

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

Brandon Williams commented on CASSANDRA-7547:
-

I have to say I'm pretty -1 on something that connects to a datastax.com host 
and relies on php.

 EC2 seed provider using DataStax Reflector
 --

 Key: CASSANDRA-7547
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7547
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Pekka Enberg
Priority: Minor
 Attachments: 0001-EC2-seed-provider.patch


 This is a request for comments. I am using this to build our EC2 AMIs but I 
 thought I'd ask if this makes sense as a generic feature for Cassandra.
 Cassandra cluster auto-configuration on EC2 uses the Datastax reflector 
 service for discovering seed nodes. Instead of relying on external scripts, 
 this patch implements EC2 seed provider that uses the Datastax reflector 
 service.
 This is particularly useful for EC2 AMIs that don't include a complete 
 userspace (such as those built with OSv) where we ideally want to push as 
 much configuration to the application itself.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[06/10] git commit: merge from 2.0

2014-07-15 Thread jbellis
merge from 2.0


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

Branch: refs/heads/cassandra-2.1.0
Commit: 04017616e8cfb7952fcc909d69aa644f6cb981f3
Parents: 9460503 1630ebf
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 09:57:21 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 09:57:21 2014 -0500

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 5 +
 2 files changed, 6 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/04017616/CHANGES.txt
--
diff --cc CHANGES.txt
index d3390f9,d339309..193cff8
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,32 -1,7 +1,33 @@@
 -2.0.10
 +2.1.0-final
 + * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
 + * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
 +Merged from 2.0:
+  * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
   * Fix range merging when DES scores are zero (CASSANDRA-7535)
   * Warn when SSL certificates have expired (CASSANDRA-7528)
 + * Fix error when doing reversed queries with static columns (CASSANDRA-7490)
 +Merged from 1.2:
 + * Set correct stream ID on responses when non-Exception Throwables
 +   are thrown while handling native protocol messages (CASSANDRA-7470)
 +
 +
 +2.1.0-rc3
 + * Consider expiry when reconciling otherwise equal cells (CASSANDRA-7403)
 + * Introduce CQL support for stress tool (CASSANDRA-6146)
 + * Fix ClassCastException processing expired messages (CASSANDRA-7496)
 + * Fix prepared marker for collections inside UDT (CASSANDRA-7472)
 + * Remove left-over populate_io_cache_on_flush and replicate_on_write
 +   uses (CASSANDRA-7493)
 + * (Windows) handle spaces in path names (CASSANDRA-7451)
 + * Ensure writes have completed after dropping a table, before recycling
 +   commit log segments (CASSANDRA-7437)
 + * Remove left-over rows_per_partition_to_cache (CASSANDRA-7493)
 + * Fix error when CONTAINS is used with a bind marker (CASSANDRA-7502)
 + * Properly reject unknown UDT field (CASSANDRA-7484)
 +Merged from 2.0:
 + * Fix CC#collectTimeOrderedData() tombstone optimisations (CASSANDRA-7394)
 + * Support DISTINCT for static columns and fix behaviour when DISTINC is
 +   not use (CASSANDRA-7305).
   * Workaround JVM NPE on JMX bind failure (CASSANDRA-7254)
   * Fix race in FileCacheService RemovalListener (CASSANDRA-7278)
   * Fix inconsistent use of consistencyForCommit that allowed LOCAL_QUORUM

http://git-wip-us.apache.org/repos/asf/cassandra/blob/04017616/src/java/org/apache/cassandra/service/StorageService.java
--
diff --cc src/java/org/apache/cassandra/service/StorageService.java
index 3fd3781,c6f4ec9..8ace958
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@@ -2570,10 -2504,10 +2570,15 @@@ public class StorageService extends Not
  if (Keyspace.SYSTEM_KS.equals(keyspace) || ranges.isEmpty())
  return 0;
  
 -final int cmd = nextRepairCommand.incrementAndGet();
 +int cmd = nextRepairCommand.incrementAndGet();
  if (ranges.size()  0)
  {
 -new Thread(createRepairTask(cmd, keyspace, ranges, isSequential, 
dataCenters, hosts, columnFamilies)).start();
++if (!FBUtilities.isUnix()  isSequential)
++{
++logger.warn(Snapshot-based repair is not yet supported on 
Windows.  Reverting to parallel repair.);
++isSequential = false;
++}
 +new Thread(createRepairTask(cmd, keyspace, ranges, isSequential, 
dataCenters, hosts, fullRepair, columnFamilies)).start();
  }
  return cmd;
  }



[02/10] git commit: (Windows) force range-based repair to non-sequential mode patch by Josh McKenzie; reviewed by jbellis for CASSANDRA-7541

2014-07-15 Thread jbellis
(Windows) force range-based repair to non-sequential mode
patch by Josh McKenzie; reviewed by jbellis for CASSANDRA-7541


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

Branch: refs/heads/cassandra-2.1.0
Commit: 1630ebf6afa6c3ceb4751dfd9bb3e444b99211e2
Parents: a454461
Author: Jonathan Ellis jbel...@apache.org
Authored: Mon Jul 14 11:11:07 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Mon Jul 14 11:11:07 2014 -0500

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 6 ++
 2 files changed, 7 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1630ebf6/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e1c8922..d339309 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.10
+ * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
  * Fix range merging when DES scores are zero (CASSANDRA-7535)
  * Warn when SSL certificates have expired (CASSANDRA-7528)
  * Workaround JVM NPE on JMX bind failure (CASSANDRA-7254)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1630ebf6/src/java/org/apache/cassandra/service/StorageService.java
--
diff --git a/src/java/org/apache/cassandra/service/StorageService.java 
b/src/java/org/apache/cassandra/service/StorageService.java
index 77ad4f0..c6f4ec9 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2544,6 +2544,12 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
 
 logger.info(starting user-requested repair of range {} for keyspace 
{} and column families {},
 repairingRange, keyspaceName, columnFamilies);
+
+if (!FBUtilities.isUnix()  isSequential)
+{
+logger.warn(Snapshot-based repair is not yet supported on 
Windows.  Reverting to parallel repair.);
+isSequential = false;
+}
 return forceRepairAsync(keyspaceName, isSequential, dataCenters, 
hosts, repairingRange, columnFamilies);
 }
 



[10/10] git commit: Merge branch 'cassandra-2.1' into trunk

2014-07-15 Thread jbellis
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 3966935b43d4007123869e18d93bab4808e0efbe
Parents: 8243b6a 52c6dfb
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 09:57:34 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 09:57:34 2014 -0500

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 5 +
 2 files changed, 6 insertions(+)
--


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3966935b/src/java/org/apache/cassandra/service/StorageService.java
--



[04/10] git commit: (Windows) force range-based repair to non-sequential mode patch by Josh McKenzie; reviewed by jbellis for CASSANDRA-7541

2014-07-15 Thread jbellis
(Windows) force range-based repair to non-sequential mode
patch by Josh McKenzie; reviewed by jbellis for CASSANDRA-7541


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

Branch: refs/heads/trunk
Commit: 1630ebf6afa6c3ceb4751dfd9bb3e444b99211e2
Parents: a454461
Author: Jonathan Ellis jbel...@apache.org
Authored: Mon Jul 14 11:11:07 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Mon Jul 14 11:11:07 2014 -0500

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 6 ++
 2 files changed, 7 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1630ebf6/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e1c8922..d339309 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.10
+ * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
  * Fix range merging when DES scores are zero (CASSANDRA-7535)
  * Warn when SSL certificates have expired (CASSANDRA-7528)
  * Workaround JVM NPE on JMX bind failure (CASSANDRA-7254)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1630ebf6/src/java/org/apache/cassandra/service/StorageService.java
--
diff --git a/src/java/org/apache/cassandra/service/StorageService.java 
b/src/java/org/apache/cassandra/service/StorageService.java
index 77ad4f0..c6f4ec9 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2544,6 +2544,12 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
 
 logger.info(starting user-requested repair of range {} for keyspace 
{} and column families {},
 repairingRange, keyspaceName, columnFamilies);
+
+if (!FBUtilities.isUnix()  isSequential)
+{
+logger.warn(Snapshot-based repair is not yet supported on 
Windows.  Reverting to parallel repair.);
+isSequential = false;
+}
 return forceRepairAsync(keyspaceName, isSequential, dataCenters, 
hosts, repairingRange, columnFamilies);
 }
 



[08/10] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-07-15 Thread jbellis
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: 52c6dfb8f56b7bbf43fd1f8eac0052a1c8f24d12
Parents: f45a4e3 0401761
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 09:57:27 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 09:57:27 2014 -0500

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 5 +
 2 files changed, 6 insertions(+)
--


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



[jira] [Commented] (CASSANDRA-7541) Windows: IOException when repairing a range of tokens

2014-07-15 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-7541:
---

committed

 Windows: IOException when repairing a range of tokens
 -

 Key: CASSANDRA-7541
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7541
 Project: Cassandra
  Issue Type: Bug
Reporter: Joshua McKenzie
Assignee: Joshua McKenzie
Priority: Minor
  Labels: Windows
 Fix For: 2.0.10, 2.1.0

 Attachments: 7541_2.1_v1.txt, 7541_v1.txt


 Looks like we missed this in CASSANDRA-6907 - range-based repair still 
 default to snapshot-based on Windows.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[07/10] git commit: merge from 2.0

2014-07-15 Thread jbellis
merge from 2.0


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

Branch: refs/heads/trunk
Commit: 04017616e8cfb7952fcc909d69aa644f6cb981f3
Parents: 9460503 1630ebf
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 09:57:21 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 09:57:21 2014 -0500

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 5 +
 2 files changed, 6 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/04017616/CHANGES.txt
--
diff --cc CHANGES.txt
index d3390f9,d339309..193cff8
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,32 -1,7 +1,33 @@@
 -2.0.10
 +2.1.0-final
 + * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
 + * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
 +Merged from 2.0:
+  * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
   * Fix range merging when DES scores are zero (CASSANDRA-7535)
   * Warn when SSL certificates have expired (CASSANDRA-7528)
 + * Fix error when doing reversed queries with static columns (CASSANDRA-7490)
 +Merged from 1.2:
 + * Set correct stream ID on responses when non-Exception Throwables
 +   are thrown while handling native protocol messages (CASSANDRA-7470)
 +
 +
 +2.1.0-rc3
 + * Consider expiry when reconciling otherwise equal cells (CASSANDRA-7403)
 + * Introduce CQL support for stress tool (CASSANDRA-6146)
 + * Fix ClassCastException processing expired messages (CASSANDRA-7496)
 + * Fix prepared marker for collections inside UDT (CASSANDRA-7472)
 + * Remove left-over populate_io_cache_on_flush and replicate_on_write
 +   uses (CASSANDRA-7493)
 + * (Windows) handle spaces in path names (CASSANDRA-7451)
 + * Ensure writes have completed after dropping a table, before recycling
 +   commit log segments (CASSANDRA-7437)
 + * Remove left-over rows_per_partition_to_cache (CASSANDRA-7493)
 + * Fix error when CONTAINS is used with a bind marker (CASSANDRA-7502)
 + * Properly reject unknown UDT field (CASSANDRA-7484)
 +Merged from 2.0:
 + * Fix CC#collectTimeOrderedData() tombstone optimisations (CASSANDRA-7394)
 + * Support DISTINCT for static columns and fix behaviour when DISTINC is
 +   not use (CASSANDRA-7305).
   * Workaround JVM NPE on JMX bind failure (CASSANDRA-7254)
   * Fix race in FileCacheService RemovalListener (CASSANDRA-7278)
   * Fix inconsistent use of consistencyForCommit that allowed LOCAL_QUORUM

http://git-wip-us.apache.org/repos/asf/cassandra/blob/04017616/src/java/org/apache/cassandra/service/StorageService.java
--
diff --cc src/java/org/apache/cassandra/service/StorageService.java
index 3fd3781,c6f4ec9..8ace958
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@@ -2570,10 -2504,10 +2570,15 @@@ public class StorageService extends Not
  if (Keyspace.SYSTEM_KS.equals(keyspace) || ranges.isEmpty())
  return 0;
  
 -final int cmd = nextRepairCommand.incrementAndGet();
 +int cmd = nextRepairCommand.incrementAndGet();
  if (ranges.size()  0)
  {
 -new Thread(createRepairTask(cmd, keyspace, ranges, isSequential, 
dataCenters, hosts, columnFamilies)).start();
++if (!FBUtilities.isUnix()  isSequential)
++{
++logger.warn(Snapshot-based repair is not yet supported on 
Windows.  Reverting to parallel repair.);
++isSequential = false;
++}
 +new Thread(createRepairTask(cmd, keyspace, ranges, isSequential, 
dataCenters, hosts, fullRepair, columnFamilies)).start();
  }
  return cmd;
  }



[03/10] git commit: (Windows) force range-based repair to non-sequential mode patch by Josh McKenzie; reviewed by jbellis for CASSANDRA-7541

2014-07-15 Thread jbellis
(Windows) force range-based repair to non-sequential mode
patch by Josh McKenzie; reviewed by jbellis for CASSANDRA-7541


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

Branch: refs/heads/cassandra-2.1
Commit: 1630ebf6afa6c3ceb4751dfd9bb3e444b99211e2
Parents: a454461
Author: Jonathan Ellis jbel...@apache.org
Authored: Mon Jul 14 11:11:07 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Mon Jul 14 11:11:07 2014 -0500

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 6 ++
 2 files changed, 7 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1630ebf6/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e1c8922..d339309 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.10
+ * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
  * Fix range merging when DES scores are zero (CASSANDRA-7535)
  * Warn when SSL certificates have expired (CASSANDRA-7528)
  * Workaround JVM NPE on JMX bind failure (CASSANDRA-7254)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1630ebf6/src/java/org/apache/cassandra/service/StorageService.java
--
diff --git a/src/java/org/apache/cassandra/service/StorageService.java 
b/src/java/org/apache/cassandra/service/StorageService.java
index 77ad4f0..c6f4ec9 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2544,6 +2544,12 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
 
 logger.info(starting user-requested repair of range {} for keyspace 
{} and column families {},
 repairingRange, keyspaceName, columnFamilies);
+
+if (!FBUtilities.isUnix()  isSequential)
+{
+logger.warn(Snapshot-based repair is not yet supported on 
Windows.  Reverting to parallel repair.);
+isSequential = false;
+}
 return forceRepairAsync(keyspaceName, isSequential, dataCenters, 
hosts, repairingRange, columnFamilies);
 }
 



[01/10] git commit: (Windows) force range-based repair to non-sequential mode patch by Josh McKenzie; reviewed by jbellis for CASSANDRA-7541

2014-07-15 Thread jbellis
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 a4544615d - 1630ebf6a
  refs/heads/cassandra-2.1 f45a4e3a1 - 52c6dfb8f
  refs/heads/cassandra-2.1.0 946050371 - 04017616e
  refs/heads/trunk 8243b6ad0 - 3966935b4


(Windows) force range-based repair to non-sequential mode
patch by Josh McKenzie; reviewed by jbellis for CASSANDRA-7541


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

Branch: refs/heads/cassandra-2.0
Commit: 1630ebf6afa6c3ceb4751dfd9bb3e444b99211e2
Parents: a454461
Author: Jonathan Ellis jbel...@apache.org
Authored: Mon Jul 14 11:11:07 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Mon Jul 14 11:11:07 2014 -0500

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 6 ++
 2 files changed, 7 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1630ebf6/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e1c8922..d339309 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.10
+ * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
  * Fix range merging when DES scores are zero (CASSANDRA-7535)
  * Warn when SSL certificates have expired (CASSANDRA-7528)
  * Workaround JVM NPE on JMX bind failure (CASSANDRA-7254)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1630ebf6/src/java/org/apache/cassandra/service/StorageService.java
--
diff --git a/src/java/org/apache/cassandra/service/StorageService.java 
b/src/java/org/apache/cassandra/service/StorageService.java
index 77ad4f0..c6f4ec9 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -2544,6 +2544,12 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
 
 logger.info(starting user-requested repair of range {} for keyspace 
{} and column families {},
 repairingRange, keyspaceName, columnFamilies);
+
+if (!FBUtilities.isUnix()  isSequential)
+{
+logger.warn(Snapshot-based repair is not yet supported on 
Windows.  Reverting to parallel repair.);
+isSequential = false;
+}
 return forceRepairAsync(keyspaceName, isSequential, dataCenters, 
hosts, repairingRange, columnFamilies);
 }
 



[09/10] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-07-15 Thread jbellis
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: 52c6dfb8f56b7bbf43fd1f8eac0052a1c8f24d12
Parents: f45a4e3 0401761
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 09:57:27 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 09:57:27 2014 -0500

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 5 +
 2 files changed, 6 insertions(+)
--


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



[05/10] git commit: merge from 2.0

2014-07-15 Thread jbellis
merge from 2.0


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

Branch: refs/heads/cassandra-2.1
Commit: 04017616e8cfb7952fcc909d69aa644f6cb981f3
Parents: 9460503 1630ebf
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 09:57:21 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 09:57:21 2014 -0500

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 5 +
 2 files changed, 6 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/04017616/CHANGES.txt
--
diff --cc CHANGES.txt
index d3390f9,d339309..193cff8
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,32 -1,7 +1,33 @@@
 -2.0.10
 +2.1.0-final
 + * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
 + * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
 +Merged from 2.0:
+  * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
   * Fix range merging when DES scores are zero (CASSANDRA-7535)
   * Warn when SSL certificates have expired (CASSANDRA-7528)
 + * Fix error when doing reversed queries with static columns (CASSANDRA-7490)
 +Merged from 1.2:
 + * Set correct stream ID on responses when non-Exception Throwables
 +   are thrown while handling native protocol messages (CASSANDRA-7470)
 +
 +
 +2.1.0-rc3
 + * Consider expiry when reconciling otherwise equal cells (CASSANDRA-7403)
 + * Introduce CQL support for stress tool (CASSANDRA-6146)
 + * Fix ClassCastException processing expired messages (CASSANDRA-7496)
 + * Fix prepared marker for collections inside UDT (CASSANDRA-7472)
 + * Remove left-over populate_io_cache_on_flush and replicate_on_write
 +   uses (CASSANDRA-7493)
 + * (Windows) handle spaces in path names (CASSANDRA-7451)
 + * Ensure writes have completed after dropping a table, before recycling
 +   commit log segments (CASSANDRA-7437)
 + * Remove left-over rows_per_partition_to_cache (CASSANDRA-7493)
 + * Fix error when CONTAINS is used with a bind marker (CASSANDRA-7502)
 + * Properly reject unknown UDT field (CASSANDRA-7484)
 +Merged from 2.0:
 + * Fix CC#collectTimeOrderedData() tombstone optimisations (CASSANDRA-7394)
 + * Support DISTINCT for static columns and fix behaviour when DISTINC is
 +   not use (CASSANDRA-7305).
   * Workaround JVM NPE on JMX bind failure (CASSANDRA-7254)
   * Fix race in FileCacheService RemovalListener (CASSANDRA-7278)
   * Fix inconsistent use of consistencyForCommit that allowed LOCAL_QUORUM

http://git-wip-us.apache.org/repos/asf/cassandra/blob/04017616/src/java/org/apache/cassandra/service/StorageService.java
--
diff --cc src/java/org/apache/cassandra/service/StorageService.java
index 3fd3781,c6f4ec9..8ace958
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@@ -2570,10 -2504,10 +2570,15 @@@ public class StorageService extends Not
  if (Keyspace.SYSTEM_KS.equals(keyspace) || ranges.isEmpty())
  return 0;
  
 -final int cmd = nextRepairCommand.incrementAndGet();
 +int cmd = nextRepairCommand.incrementAndGet();
  if (ranges.size()  0)
  {
 -new Thread(createRepairTask(cmd, keyspace, ranges, isSequential, 
dataCenters, hosts, columnFamilies)).start();
++if (!FBUtilities.isUnix()  isSequential)
++{
++logger.warn(Snapshot-based repair is not yet supported on 
Windows.  Reverting to parallel repair.);
++isSequential = false;
++}
 +new Thread(createRepairTask(cmd, keyspace, ranges, isSequential, 
dataCenters, hosts, fullRepair, columnFamilies)).start();
  }
  return cmd;
  }



[jira] [Commented] (CASSANDRA-7547) EC2 seed provider using DataStax Reflector

2014-07-15 Thread Pekka Enberg (JIRA)

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

Pekka Enberg commented on CASSANDRA-7547:
-

Would the patch be more palatable without the default?

The infrastructure is open source so you can set up your own Reflector service 
as well:

https://github.com/riptano/ComboAMI

 EC2 seed provider using DataStax Reflector
 --

 Key: CASSANDRA-7547
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7547
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Pekka Enberg
Priority: Minor
 Attachments: 0001-EC2-seed-provider.patch


 This is a request for comments. I am using this to build our EC2 AMIs but I 
 thought I'd ask if this makes sense as a generic feature for Cassandra.
 Cassandra cluster auto-configuration on EC2 uses the Datastax reflector 
 service for discovering seed nodes. Instead of relying on external scripts, 
 this patch implements EC2 seed provider that uses the Datastax reflector 
 service.
 This is particularly useful for EC2 AMIs that don't include a complete 
 userspace (such as those built with OSv) where we ideally want to push as 
 much configuration to the application itself.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7551) improve 2.1 flush defaults

2014-07-15 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-7551:
--

Attachment: 7551.txt

Patch to adapt to multiple disks, same logic as concurrent_compactors.

 improve 2.1 flush defaults
 --

 Key: CASSANDRA-7551
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7551
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Jonathan Ellis
Assignee: Jonathan Ellis
 Fix For: 2.1.0

 Attachments: 7551.txt


 Default of mfw=2 and mct=0.4 does a poor job saturating multi-disk systems.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (CASSANDRA-7551) improve 2.1 flush defaults

2014-07-15 Thread Jonathan Ellis (JIRA)
Jonathan Ellis created CASSANDRA-7551:
-

 Summary: improve 2.1 flush defaults
 Key: CASSANDRA-7551
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7551
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Jonathan Ellis
Assignee: Jonathan Ellis
 Fix For: 2.1.0


Default of mfw=2 and mct=0.4 does a poor job saturating multi-disk systems.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7547) EC2 seed provider using DataStax Reflector

2014-07-15 Thread Pekka Enberg (JIRA)

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

Pekka Enberg commented on CASSANDRA-7547:
-

OK, any suggestions how to package that in a way that makes it possible for 
Cassandra to pick it up?

 EC2 seed provider using DataStax Reflector
 --

 Key: CASSANDRA-7547
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7547
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Pekka Enberg
Priority: Minor
 Attachments: 0001-EC2-seed-provider.patch


 This is a request for comments. I am using this to build our EC2 AMIs but I 
 thought I'd ask if this makes sense as a generic feature for Cassandra.
 Cassandra cluster auto-configuration on EC2 uses the Datastax reflector 
 service for discovering seed nodes. Instead of relying on external scripts, 
 this patch implements EC2 seed provider that uses the Datastax reflector 
 service.
 This is particularly useful for EC2 AMIs that don't include a complete 
 userspace (such as those built with OSv) where we ideally want to push as 
 much configuration to the application itself.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


buildbot success in ASF Buildbot on cassandra-2.0

2014-07-15 Thread buildbot
The Buildbot has detected a restored build on builder cassandra-2.0 while 
building cassandra.
Full details are available at:
 http://ci.apache.org/builders/cassandra-2.0/builds/117

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: portunus_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch cassandra-2.0] 
1630ebf6afa6c3ceb4751dfd9bb3e444b99211e2
Blamelist: Jonathan Ellis jbel...@apache.org

Build succeeded!

sincerely,
 -The Buildbot





[jira] [Commented] (CASSANDRA-4718) More-efficient ExecutorService for improved throughput

2014-07-15 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-4718:
---

To summarize for those browsing, the primary result here was the introduction 
of SharedExecutorPool: 
https://github.com/apache/cassandra/blob/cassandra-2.1.0/src/java/org/apache/cassandra/concurrent/SharedExecutorPool.java

 More-efficient ExecutorService for improved throughput
 --

 Key: CASSANDRA-4718
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4718
 Project: Cassandra
  Issue Type: Improvement
Reporter: Jonathan Ellis
Assignee: Benedict
Priority: Minor
  Labels: performance
 Fix For: 2.1 rc1

 Attachments: 4718-v1.patch, E100M_summary_key_s.svg, 
 E10M_summary_key_s.svg, E600M_summary_key_s.svg, PerThreadQueue.java, 
 austin_diskbound_read.svg, aws.svg, aws_read.svg, 
 backpressure-stress.out.txt, baq vs trunk.png, 
 belliotsmith_branches-stress.out.txt, jason_read.svg, jason_read_latency.svg, 
 jason_run1.svg, jason_run2.svg, jason_run3.svg, jason_write.svg, op costs of 
 various queues.ods, stress op rate with various queues.ods, 
 stress_2014May15.txt, stress_2014May16.txt, v1-stress.out


 Currently all our execution stages dequeue tasks one at a time.  This can 
 result in contention between producers and consumers (although we do our best 
 to minimize this by using LinkedBlockingQueue).
 One approach to mitigating this would be to make consumer threads do more 
 work in bulk instead of just one task per dequeue.  (Producer threads tend 
 to be single-task oriented by nature, so I don't see an equivalent 
 opportunity there.)
 BlockingQueue has a drainTo(collection, int) method that would be perfect for 
 this.  However, no ExecutorService in the jdk supports using drainTo, nor 
 could I google one.
 What I would like to do here is create just such a beast and wire it into (at 
 least) the write and read stages.  (Other possible candidates for such an 
 optimization, such as the CommitLog and OutboundTCPConnection, are not 
 ExecutorService-based and will need to be one-offs.)
 AbstractExecutorService may be useful.  The implementations of 
 ICommitLogExecutorService may also be useful. (Despite the name these are not 
 actual ExecutorServices, although they share the most important properties of 
 one.)



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7547) EC2 seed provider using DataStax Reflector

2014-07-15 Thread Joaquin Casares (JIRA)

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

Joaquin Casares commented on CASSANDRA-7547:


Before we go any further with the using the DataStax reflector, you should 
consider its initial purpose was to find a simple way for individual nodes to 
cluster together on startup without initially knowing anything about each other.

The current reflector is built with a short-term memory of about 10 minutes to 
get the list of seeds. If a node is slow to boot and comes in on the 11th 
minute, it will never know of its peers. If a pre-chosen seed node is slow to 
boot, the nodes may never properly cluster together.

This is important because the seed provider is pinged multiple times during the 
lifetime of the cluster, mainly during periods of topological changes: removal, 
bootstrap, replace, etc. If these happen outside of a window of 10 minutes for 
all nodes, you'll get an empty or incomplete list of seeds.

Taking the concept of using a reflector may be worth doing, but keep these 
things in mind:
* ensure you use a private service with long-term memory,
* you should rely on a reflector for assistance in configuring the seed list, 
not the seed-provider directly,
* always assume the service can and will go down so write to disk 
appropriately, perhaps conf/seed-list.txt,
* you must account for topological changes that will occur in long running 
clusters,
* and all seed lists on each node should be identical.

The last point is probably the hardest. I'm not sure if this infrastructure 
fits best inside of Cassandra or as external tools.

I hope this helps you build what you have in mind. Cheers!

 EC2 seed provider using DataStax Reflector
 --

 Key: CASSANDRA-7547
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7547
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Pekka Enberg
Priority: Minor
 Attachments: 0001-EC2-seed-provider.patch


 This is a request for comments. I am using this to build our EC2 AMIs but I 
 thought I'd ask if this makes sense as a generic feature for Cassandra.
 Cassandra cluster auto-configuration on EC2 uses the Datastax reflector 
 service for discovering seed nodes. Instead of relying on external scripts, 
 this patch implements EC2 seed provider that uses the Datastax reflector 
 service.
 This is particularly useful for EC2 AMIs that don't include a complete 
 userspace (such as those built with OSv) where we ideally want to push as 
 much configuration to the application itself.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7542) Reduce CAS contention

2014-07-15 Thread sankalp kohli (JIRA)

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

sankalp kohli updated CASSANDRA-7542:
-

Fix Version/s: 2.0.10

 Reduce CAS contention
 -

 Key: CASSANDRA-7542
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7542
 Project: Cassandra
  Issue Type: Improvement
Reporter: sankalp kohli
Assignee: Benedict
 Fix For: 2.0.10


 CAS updates on same CQL partition can lead to heavy contention inside C*. I 
 am looking for simple ways(no algorithmic changes) to reduce contention as 
 the penalty of it is high in terms of latency, specially for reads. 
 We can put some sort of synchronization on CQL partition at StorageProxy 
 level. This will reduce contention at least for all requests landing on one 
 box for same partition. 
 Here is an example of why it will help:
 1) Say 1 write and 2 read CAS requests for the same partition key is send to 
 C* in parallel. 
 2) Since client is token-aware, it sends these 3 request to the same C* 
 instance A. (Lets assume that all 3 requests goto same instance A) 
 3) In this C* instance A, all 3 CAS requests will contend with each other in 
 Paxos. (This is bad)
 To improve contention in 3), what I am proposing is to add a lock on 
 partition key similar to what we do in PaxosState.java to serialize these 3 
 requests. This will remove the contention and improve performance as these 3 
 requests will not collide with each other.
 Another improvement we can do in client is to pick a deterministic live 
 replica for a given partition doing CAS.  



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7551) improve 2.1 flush defaults

2014-07-15 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-7551:
-

LGTM.

 improve 2.1 flush defaults
 --

 Key: CASSANDRA-7551
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7551
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Jonathan Ellis
Assignee: Jonathan Ellis
 Fix For: 2.1.0

 Attachments: 7551.txt


 Default of mfw=2 and mct=0.4 does a poor job saturating multi-disk systems.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (CASSANDRA-7547) EC2 seed provider using DataStax Reflector

2014-07-15 Thread Joaquin Casares (JIRA)

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

Joaquin Casares edited comment on CASSANDRA-7547 at 7/15/14 4:21 PM:
-

Before we go any further with the using the DataStax reflector, you should 
consider its initial purpose was to find a simple way for individual nodes to 
cluster together on startup without initially knowing anything about each other.

The current reflector is built with a short-term memory of about 10 minutes to 
get the list of seeds. If a node is slow to boot and comes in on the 11th 
minute, it will never know of its peers. If a pre-chosen seed node is slow to 
boot, the nodes may never properly cluster together.

This is important because the seed provider is pinged multiple times during the 
lifetime of the cluster, mainly during periods of topological changes: removal, 
bootstrap, replace, etc. If these happen outside of a window of 10 minutes for 
all nodes, you'll get an empty or incomplete list of seeds.

Taking the concept of using a reflector may be worth doing, but keep these 
things in mind:
* ensure you use a private service with long-term memory,
* you should rely on a reflector for assistance in configuring the seed list, 
not the seed-provider directly,
* always assume the service can and will go down so write to disk 
appropriately, perhaps conf/seed-list.txt,
* you must account for topological changes that will occur in long running 
clusters,
* and all seed lists on each node should be identical.

The last point is probably the hardest. I'm not sure if this infrastructure 
fits best inside of Cassandra or as external tools. However, in order to have 
more control of when seed lists get updated, instead of waiting for Cassandra 
services to kick in, external tools will probably be your best option.

I hope this helps you build what you have in mind. Cheers!


was (Author: j.casares):
Before we go any further with the using the DataStax reflector, you should 
consider its initial purpose was to find a simple way for individual nodes to 
cluster together on startup without initially knowing anything about each other.

The current reflector is built with a short-term memory of about 10 minutes to 
get the list of seeds. If a node is slow to boot and comes in on the 11th 
minute, it will never know of its peers. If a pre-chosen seed node is slow to 
boot, the nodes may never properly cluster together.

This is important because the seed provider is pinged multiple times during the 
lifetime of the cluster, mainly during periods of topological changes: removal, 
bootstrap, replace, etc. If these happen outside of a window of 10 minutes for 
all nodes, you'll get an empty or incomplete list of seeds.

Taking the concept of using a reflector may be worth doing, but keep these 
things in mind:
* ensure you use a private service with long-term memory,
* you should rely on a reflector for assistance in configuring the seed list, 
not the seed-provider directly,
* always assume the service can and will go down so write to disk 
appropriately, perhaps conf/seed-list.txt,
* you must account for topological changes that will occur in long running 
clusters,
* and all seed lists on each node should be identical.

The last point is probably the hardest. I'm not sure if this infrastructure 
fits best inside of Cassandra or as external tools.

I hope this helps you build what you have in mind. Cheers!

 EC2 seed provider using DataStax Reflector
 --

 Key: CASSANDRA-7547
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7547
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Pekka Enberg
Priority: Minor
 Attachments: 0001-EC2-seed-provider.patch


 This is a request for comments. I am using this to build our EC2 AMIs but I 
 thought I'd ask if this makes sense as a generic feature for Cassandra.
 Cassandra cluster auto-configuration on EC2 uses the Datastax reflector 
 service for discovering seed nodes. Instead of relying on external scripts, 
 this patch implements EC2 seed provider that uses the Datastax reflector 
 service.
 This is particularly useful for EC2 AMIs that don't include a complete 
 userspace (such as those built with OSv) where we ideally want to push as 
 much configuration to the application itself.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7542) Reduce CAS contention

2014-07-15 Thread sankalp kohli (JIRA)

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

sankalp kohli commented on CASSANDRA-7542:
--

Thanks Brandon. I have updated the fix version as 2.0.10 for this. 

 Reduce CAS contention
 -

 Key: CASSANDRA-7542
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7542
 Project: Cassandra
  Issue Type: Improvement
Reporter: sankalp kohli
Assignee: Benedict
 Fix For: 2.0.10


 CAS updates on same CQL partition can lead to heavy contention inside C*. I 
 am looking for simple ways(no algorithmic changes) to reduce contention as 
 the penalty of it is high in terms of latency, specially for reads. 
 We can put some sort of synchronization on CQL partition at StorageProxy 
 level. This will reduce contention at least for all requests landing on one 
 box for same partition. 
 Here is an example of why it will help:
 1) Say 1 write and 2 read CAS requests for the same partition key is send to 
 C* in parallel. 
 2) Since client is token-aware, it sends these 3 request to the same C* 
 instance A. (Lets assume that all 3 requests goto same instance A) 
 3) In this C* instance A, all 3 CAS requests will contend with each other in 
 Paxos. (This is bad)
 To improve contention in 3), what I am proposing is to add a lock on 
 partition key similar to what we do in PaxosState.java to serialize these 3 
 requests. This will remove the contention and improve performance as these 3 
 requests will not collide with each other.
 Another improvement we can do in client is to pick a deterministic live 
 replica for a given partition doing CAS.  



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7551) improve 2.1 flush defaults

2014-07-15 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-7551:
-

Just to confirm this should only be applied to 2.1, not trunk, as trunk is 
expecting other changes that would make this a negative rather than positive 
change

 improve 2.1 flush defaults
 --

 Key: CASSANDRA-7551
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7551
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Jonathan Ellis
Assignee: Jonathan Ellis
 Fix For: 2.1.0

 Attachments: 7551.txt


 Default of mfw=2 and mct=0.4 does a poor job saturating multi-disk systems.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7509) conditional updates don't work from cqlsh

2014-07-15 Thread Tyler Hobbs (JIRA)

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

Tyler Hobbs commented on CASSANDRA-7509:


Version 2.0.2 of the python driver doesn't handle tuple types.  Last week I 
released version 2.1.0b1 of the driver, which adds native support for UDTs and 
tuples.  Upgrading to that would also allow us to remove the cqlsh patches for 
CASSANDRA-7399, CASSANDRA-7267, CASSANDRA-7261, and 
[PYTHON-90|https://datastax-oss.atlassian.net/browse/PYTHON-90], and would 
include the [PYTHON-84|https://datastax-oss.atlassian.net/browse/PYTHON-84] fix 
for {{dclocal_read_repair_chance}}.

 conditional updates don't work from cqlsh
 -

 Key: CASSANDRA-7509
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7509
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Jeremiah Jordan
Assignee: Mikhail Stepura
Priority: Blocker
 Fix For: 2.1.0

 Attachments: CASSANDRA-2.1.0-7509.patch


 {noformat}
 apache-cassandra-2.1.0-rc2/bin $ ./cqlsh
 Connected to Test Cluster at 127.0.0.1:9042.
 [cqlsh 5.0.1 | Cassandra 2.1.0-rc2 | CQL spec 3.1.7 | Native protocol v3]
 Use HELP for help.
 cqlsh use ks1;
 cqlsh:ks1 create table users(
... userID uuid,
... fname text,
... lname text,
... email text,
... address text,
... zip int,
... state text,
... PRIMARY KEY ((userID, fname), state)
... );
 cqlsh:ks1 insert into users (userID, fname, state, email) VALUES 
 (cfd66ccc-d857-4e90-b1e5-df98a3d40cd6, 'laura', 'ca', 'lau...@gmail.com') if 
 not exists;
 code=2200 [Invalid query] message=Conditional updates are not supported by 
 the protocol version in use. You need to upgrade to a driver using the native 
 protocol v2.
 cqlsh:ks1
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


git commit: Include snippet of query in SyntaxError messages

2014-07-15 Thread tylerhobbs
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 52c6dfb8f - 8a2d8a138


Include snippet of query in SyntaxError messages

Patch by Benjamin Lerer; reviewed by Tyler Hobbs for CASSANDRA-7111


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

Branch: refs/heads/cassandra-2.1
Commit: 8a2d8a138d5ac1fc38b24bc7fd7513f6dbe86b24
Parents: 52c6dfb
Author: blerer b_le...@hotmail.com
Authored: Tue Jul 15 12:05:47 2014 -0500
Committer: Tyler Hobbs ty...@datastax.com
Committed: Tue Jul 15 12:05:47 2014 -0500

--
 CHANGES.txt |   1 +
 src/java/org/apache/cassandra/cql3/Cql.g|  41 ++--
 .../apache/cassandra/cql3/ErrorCollector.java   | 242 +++
 .../apache/cassandra/cql3/ErrorListener.java|  44 
 .../apache/cassandra/cql3/QueryProcessor.java   |  11 +-
 .../apache/cassandra/cql3/CqlParserTest.java|  90 +++
 .../cassandra/cql3/ErrorCollectorTest.java  | 218 +
 7 files changed, 621 insertions(+), 26 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a2d8a13/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 1781ef3..89f9b7c 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -6,6 +6,7 @@
  * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
  * Optimise NativeCell comparisons (CASSANDRA-6755)
  * Configurable client timeout for cqlsh (CASSANDRA-7516)
+ * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 
 
 2.1.0-final

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a2d8a13/src/java/org/apache/cassandra/cql3/Cql.g
--
diff --git a/src/java/org/apache/cassandra/cql3/Cql.g 
b/src/java/org/apache/cassandra/cql3/Cql.g
index 948cd5e..9dcc268 100644
--- a/src/java/org/apache/cassandra/cql3/Cql.g
+++ b/src/java/org/apache/cassandra/cql3/Cql.g
@@ -51,7 +51,7 @@ options {
 }
 
 @members {
-private final ListString recognitionErrors = new ArrayListString();
+private final ListErrorListener listeners = new 
ArrayListErrorListener();
 private final ListColumnIdentifier bindVariables = new 
ArrayListColumnIdentifier();
 
 public static final SetString reservedTypeNames = new HashSetString()
@@ -94,27 +94,26 @@ options {
 return marker;
 }
 
-public void displayRecognitionError(String[] tokenNames, 
RecognitionException e)
+public void addErrorListener(ErrorListener listener)
 {
-String hdr = getErrorHeader(e);
-String msg = getErrorMessage(e, tokenNames);
-recognitionErrors.add(hdr +   + msg);
+this.listeners.add(listener);
 }
 
-public void addRecognitionError(String msg)
+public void removeErrorListener(ErrorListener listener)
 {
-recognitionErrors.add(msg);
+this.listeners.remove(listener);
 }
 
-public ListString getRecognitionErrors()
+public void displayRecognitionError(String[] tokenNames, 
RecognitionException e)
 {
-return recognitionErrors;
+for (int i = 0, m = listeners.size(); i  m; i++)
+listeners.get(i).syntaxError(this, tokenNames, e);
 }
 
-public void throwLastRecognitionError() throws SyntaxException
+private void addRecognitionError(String msg)
 {
-if (recognitionErrors.size()  0)
-throw new 
SyntaxException(recognitionErrors.get((recognitionErrors.size()-1)));
+for (int i = 0, m = listeners.size(); i  m; i++)
+listeners.get(i).syntaxError(this, msg);
 }
 
 public MapString, String convertPropertyMap(Maps.Literal map)
@@ -189,24 +188,22 @@ options {
 return tokens.remove(0);
 }
 
-private ListString recognitionErrors = new ArrayListString();
+private final ListErrorListener listeners = new 
ArrayListErrorListener();
 
-public void displayRecognitionError(String[] tokenNames, 
RecognitionException e)
+public void addErrorListener(ErrorListener listener)
 {
-String hdr = getErrorHeader(e);
-String msg = getErrorMessage(e, tokenNames);
-recognitionErrors.add(hdr +   + msg);
+this.listeners.add(listener);
 }
 
-public ListString getRecognitionErrors()
+public void removeErrorListener(ErrorListener listener)
 {
-return recognitionErrors;
+this.listeners.remove(listener);
 }
 
-public void throwLastRecognitionError() throws SyntaxException
+public void displayRecognitionError(String[] tokenNames, 
RecognitionException e)
 {
- 

[jira] [Updated] (CASSANDRA-6276) CQL: Map can not be created with the same name as a previously dropped list

2014-07-15 Thread Aleksey Yeschenko (JIRA)

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

Aleksey Yeschenko updated CASSANDRA-6276:
-

Fix Version/s: (was: 2.1.0)
   2.1.1

 CQL: Map can not be created with the same name as a previously dropped list
 ---

 Key: CASSANDRA-6276
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6276
 Project: Cassandra
  Issue Type: Bug
 Environment:  Cassandra 2.0.2 | CQL spec 3.1.0
 centos 64 bit
 Java(TM) SE Runtime Environment (build 1.7.0-b147)
Reporter: Oli Schacher
Assignee: Benjamin Lerer
Priority: Minor
  Labels: cql
 Fix For: 2.1.1

 Attachments: CASSANDRA-6276.txt


 If create a list, drop it and create a map with the same name, i get Bad 
 Request: comparators do not match or are not compatible.
 {quote}
 cqlsh:os_test1 create table thetable(id timeuuid primary key, somevalue 
 text);
 cqlsh:os_test1 alter table thetable add mycollection listtext;  
 cqlsh:os_test1 alter table thetable drop mycollection;
 cqlsh:os_test1 alter table thetable add mycollection maptext,text;  
 Bad Request: comparators do not match or are not compatible.
 {quote}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


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

2014-07-15 Thread tylerhobbs
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 8a5a82b8a87314d1e740d94cd40a190bd2681a42
Parents: 3966935 8a2d8a1
Author: Tyler Hobbs ty...@datastax.com
Authored: Tue Jul 15 12:06:51 2014 -0500
Committer: Tyler Hobbs ty...@datastax.com
Committed: Tue Jul 15 12:06:51 2014 -0500

--
 CHANGES.txt |   1 +
 src/java/org/apache/cassandra/cql3/Cql.g|  41 ++--
 .../apache/cassandra/cql3/ErrorCollector.java   | 242 +++
 .../apache/cassandra/cql3/ErrorListener.java|  44 
 .../apache/cassandra/cql3/QueryProcessor.java   |  11 +-
 .../apache/cassandra/cql3/CqlParserTest.java|  90 +++
 .../cassandra/cql3/ErrorCollectorTest.java  | 218 +
 7 files changed, 621 insertions(+), 26 deletions(-)
--


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a5a82b8/src/java/org/apache/cassandra/cql3/Cql.g
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a5a82b8/src/java/org/apache/cassandra/cql3/QueryProcessor.java
--



[1/2] git commit: Include snippet of query in SyntaxError messages

2014-07-15 Thread tylerhobbs
Repository: cassandra
Updated Branches:
  refs/heads/trunk 3966935b4 - 8a5a82b8a


Include snippet of query in SyntaxError messages

Patch by Benjamin Lerer; reviewed by Tyler Hobbs for CASSANDRA-7111


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

Branch: refs/heads/trunk
Commit: 8a2d8a138d5ac1fc38b24bc7fd7513f6dbe86b24
Parents: 52c6dfb
Author: blerer b_le...@hotmail.com
Authored: Tue Jul 15 12:05:47 2014 -0500
Committer: Tyler Hobbs ty...@datastax.com
Committed: Tue Jul 15 12:05:47 2014 -0500

--
 CHANGES.txt |   1 +
 src/java/org/apache/cassandra/cql3/Cql.g|  41 ++--
 .../apache/cassandra/cql3/ErrorCollector.java   | 242 +++
 .../apache/cassandra/cql3/ErrorListener.java|  44 
 .../apache/cassandra/cql3/QueryProcessor.java   |  11 +-
 .../apache/cassandra/cql3/CqlParserTest.java|  90 +++
 .../cassandra/cql3/ErrorCollectorTest.java  | 218 +
 7 files changed, 621 insertions(+), 26 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a2d8a13/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 1781ef3..89f9b7c 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -6,6 +6,7 @@
  * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
  * Optimise NativeCell comparisons (CASSANDRA-6755)
  * Configurable client timeout for cqlsh (CASSANDRA-7516)
+ * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 
 
 2.1.0-final

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8a2d8a13/src/java/org/apache/cassandra/cql3/Cql.g
--
diff --git a/src/java/org/apache/cassandra/cql3/Cql.g 
b/src/java/org/apache/cassandra/cql3/Cql.g
index 948cd5e..9dcc268 100644
--- a/src/java/org/apache/cassandra/cql3/Cql.g
+++ b/src/java/org/apache/cassandra/cql3/Cql.g
@@ -51,7 +51,7 @@ options {
 }
 
 @members {
-private final ListString recognitionErrors = new ArrayListString();
+private final ListErrorListener listeners = new 
ArrayListErrorListener();
 private final ListColumnIdentifier bindVariables = new 
ArrayListColumnIdentifier();
 
 public static final SetString reservedTypeNames = new HashSetString()
@@ -94,27 +94,26 @@ options {
 return marker;
 }
 
-public void displayRecognitionError(String[] tokenNames, 
RecognitionException e)
+public void addErrorListener(ErrorListener listener)
 {
-String hdr = getErrorHeader(e);
-String msg = getErrorMessage(e, tokenNames);
-recognitionErrors.add(hdr +   + msg);
+this.listeners.add(listener);
 }
 
-public void addRecognitionError(String msg)
+public void removeErrorListener(ErrorListener listener)
 {
-recognitionErrors.add(msg);
+this.listeners.remove(listener);
 }
 
-public ListString getRecognitionErrors()
+public void displayRecognitionError(String[] tokenNames, 
RecognitionException e)
 {
-return recognitionErrors;
+for (int i = 0, m = listeners.size(); i  m; i++)
+listeners.get(i).syntaxError(this, tokenNames, e);
 }
 
-public void throwLastRecognitionError() throws SyntaxException
+private void addRecognitionError(String msg)
 {
-if (recognitionErrors.size()  0)
-throw new 
SyntaxException(recognitionErrors.get((recognitionErrors.size()-1)));
+for (int i = 0, m = listeners.size(); i  m; i++)
+listeners.get(i).syntaxError(this, msg);
 }
 
 public MapString, String convertPropertyMap(Maps.Literal map)
@@ -189,24 +188,22 @@ options {
 return tokens.remove(0);
 }
 
-private ListString recognitionErrors = new ArrayListString();
+private final ListErrorListener listeners = new 
ArrayListErrorListener();
 
-public void displayRecognitionError(String[] tokenNames, 
RecognitionException e)
+public void addErrorListener(ErrorListener listener)
 {
-String hdr = getErrorHeader(e);
-String msg = getErrorMessage(e, tokenNames);
-recognitionErrors.add(hdr +   + msg);
+this.listeners.add(listener);
 }
 
-public ListString getRecognitionErrors()
+public void removeErrorListener(ErrorListener listener)
 {
-return recognitionErrors;
+this.listeners.remove(listener);
 }
 
-public void throwLastRecognitionError() throws SyntaxException
+public void displayRecognitionError(String[] tokenNames, 
RecognitionException e)
 {
-if 

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

2014-07-15 Thread benedict
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 1c4768a8889122b40f57be10f8af8e2522a09ec8
Parents: 8a5a82b e66896b
Author: Benedict Elliott Smith bened...@apache.org
Authored: Tue Jul 15 18:21:10 2014 +0100
Committer: Benedict Elliott Smith bened...@apache.org
Committed: Tue Jul 15 18:21:10 2014 +0100

--
 .../cassandra/concurrent/SharedExecutorPool.java | 19 ---
 1 file changed, 12 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1c4768a8/src/java/org/apache/cassandra/concurrent/SharedExecutorPool.java
--



git commit: Add missing table name to DROP INDEX responses

2014-07-15 Thread tylerhobbs
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1.0 04017616e - bd0eafd58


Add missing table name to DROP INDEX responses

Patch and review by Tyler Hobbs and Aleksey Yeschenko for CASSANDRA-7539


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

Branch: refs/heads/cassandra-2.1.0
Commit: bd0eafd5853a446b0db79547231a0a9653a74293
Parents: 0401761
Author: Tyler Hobbs ty...@datastax.com
Authored: Tue Jul 15 12:23:06 2014 -0500
Committer: Tyler Hobbs ty...@datastax.com
Committed: Tue Jul 15 12:23:06 2014 -0500

--
 CHANGES.txt  |  1 +
 .../cassandra/cql3/statements/DropIndexStatement.java| 11 +++
 src/java/org/apache/cassandra/transport/Event.java   |  2 ++
 3 files changed, 14 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/bd0eafd5/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 193cff8..e6ded2a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,6 +1,7 @@
 2.1.0-final
  * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
  * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
+ * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)
 Merged from 2.0:
  * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
  * Fix range merging when DES scores are zero (CASSANDRA-7535)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bd0eafd5/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
index b8a4c9a..0562cc6 100644
--- a/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
@@ -33,6 +33,9 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
 public final String indexName;
 public final boolean ifExists;
 
+// initialized in announceMigration()
+private String indexedCF;
+
 public DropIndexStatement(IndexName indexName, boolean ifExists)
 {
 super(indexName.getCfName());
@@ -67,6 +70,7 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
 return;
 
 CFMetaData updatedCfm = updateCFMetadata(cfm);
+indexedCF = updatedCfm.cfName;
 MigrationManager.announceColumnFamilyUpdate(updatedCfm, false, 
isLocalOnly);
 }
 
@@ -106,4 +110,11 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
 }
 return null;
 }
+
+@Override
+public String columnFamily()
+{
+assert indexedCF != null;
+return indexedCF;
+}
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bd0eafd5/src/java/org/apache/cassandra/transport/Event.java
--
diff --git a/src/java/org/apache/cassandra/transport/Event.java 
b/src/java/org/apache/cassandra/transport/Event.java
index 3fa2733..1b7e487 100644
--- a/src/java/org/apache/cassandra/transport/Event.java
+++ b/src/java/org/apache/cassandra/transport/Event.java
@@ -218,6 +218,8 @@ public abstract class Event
 this.target = target;
 this.keyspace = keyspace;
 this.tableOrType = tableOrType;
+if (target != Target.KEYSPACE)
+assert this.tableOrType != null : Table or type should be set 
for non-keyspace schema change events;
 }
 
 public SchemaChange(Change change, String keyspace)



[1/2] git commit: Add missing table name to DROP INDEX responses

2014-07-15 Thread tylerhobbs
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 8a2d8a138 - 0b7377fed


Add missing table name to DROP INDEX responses

Patch and review by Tyler Hobbs and Aleksey Yeschenko for CASSANDRA-7539


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

Branch: refs/heads/cassandra-2.1
Commit: bd0eafd5853a446b0db79547231a0a9653a74293
Parents: 0401761
Author: Tyler Hobbs ty...@datastax.com
Authored: Tue Jul 15 12:23:06 2014 -0500
Committer: Tyler Hobbs ty...@datastax.com
Committed: Tue Jul 15 12:23:06 2014 -0500

--
 CHANGES.txt  |  1 +
 .../cassandra/cql3/statements/DropIndexStatement.java| 11 +++
 src/java/org/apache/cassandra/transport/Event.java   |  2 ++
 3 files changed, 14 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/bd0eafd5/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 193cff8..e6ded2a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,6 +1,7 @@
 2.1.0-final
  * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
  * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
+ * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)
 Merged from 2.0:
  * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
  * Fix range merging when DES scores are zero (CASSANDRA-7535)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bd0eafd5/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
index b8a4c9a..0562cc6 100644
--- a/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
@@ -33,6 +33,9 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
 public final String indexName;
 public final boolean ifExists;
 
+// initialized in announceMigration()
+private String indexedCF;
+
 public DropIndexStatement(IndexName indexName, boolean ifExists)
 {
 super(indexName.getCfName());
@@ -67,6 +70,7 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
 return;
 
 CFMetaData updatedCfm = updateCFMetadata(cfm);
+indexedCF = updatedCfm.cfName;
 MigrationManager.announceColumnFamilyUpdate(updatedCfm, false, 
isLocalOnly);
 }
 
@@ -106,4 +110,11 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
 }
 return null;
 }
+
+@Override
+public String columnFamily()
+{
+assert indexedCF != null;
+return indexedCF;
+}
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bd0eafd5/src/java/org/apache/cassandra/transport/Event.java
--
diff --git a/src/java/org/apache/cassandra/transport/Event.java 
b/src/java/org/apache/cassandra/transport/Event.java
index 3fa2733..1b7e487 100644
--- a/src/java/org/apache/cassandra/transport/Event.java
+++ b/src/java/org/apache/cassandra/transport/Event.java
@@ -218,6 +218,8 @@ public abstract class Event
 this.target = target;
 this.keyspace = keyspace;
 this.tableOrType = tableOrType;
+if (target != Target.KEYSPACE)
+assert this.tableOrType != null : Table or type should be set 
for non-keyspace schema change events;
 }
 
 public SchemaChange(Change change, String keyspace)



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

2014-07-15 Thread tylerhobbs
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: 0b7377fed597eb41bc23224c80747130561165cf
Parents: 8a2d8a1 bd0eafd
Author: Tyler Hobbs ty...@datastax.com
Authored: Tue Jul 15 12:24:12 2014 -0500
Committer: Tyler Hobbs ty...@datastax.com
Committed: Tue Jul 15 12:24:12 2014 -0500

--
 CHANGES.txt  |  1 +
 .../cassandra/cql3/statements/DropIndexStatement.java| 11 +++
 src/java/org/apache/cassandra/transport/Event.java   |  2 ++
 3 files changed, 14 insertions(+)
--


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



git commit: Add missing table name to DROP INDEX responses

2014-07-15 Thread tylerhobbs
Repository: cassandra
Updated Branches:
  refs/heads/trunk 1c4768a88 - ae25812e3


Add missing table name to DROP INDEX responses

Patch and review by Tyler Hobbs and Aleksey Yeschenko for CASSANDRA-7539


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

Branch: refs/heads/trunk
Commit: ae25812e39cb29c6ad0d0625eec9268e55c2fb38
Parents: 1c4768a
Author: Tyler Hobbs ty...@datastax.com
Authored: Tue Jul 15 12:23:06 2014 -0500
Committer: Tyler Hobbs ty...@datastax.com
Committed: Tue Jul 15 12:25:05 2014 -0500

--
 CHANGES.txt  |  1 +
 .../cassandra/cql3/statements/DropIndexStatement.java| 11 +++
 src/java/org/apache/cassandra/transport/Event.java   |  2 ++
 3 files changed, 14 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ae25812e/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 27aa624..8895bf4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -28,6 +28,7 @@
 2.1.0-final
  * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
  * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
+ * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)
 Merged from 2.0:
  * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
  * Fix range merging when DES scores are zero (CASSANDRA-7535)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ae25812e/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
index b8a4c9a..0562cc6 100644
--- a/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
@@ -33,6 +33,9 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
 public final String indexName;
 public final boolean ifExists;
 
+// initialized in announceMigration()
+private String indexedCF;
+
 public DropIndexStatement(IndexName indexName, boolean ifExists)
 {
 super(indexName.getCfName());
@@ -67,6 +70,7 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
 return;
 
 CFMetaData updatedCfm = updateCFMetadata(cfm);
+indexedCF = updatedCfm.cfName;
 MigrationManager.announceColumnFamilyUpdate(updatedCfm, false, 
isLocalOnly);
 }
 
@@ -106,4 +110,11 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
 }
 return null;
 }
+
+@Override
+public String columnFamily()
+{
+assert indexedCF != null;
+return indexedCF;
+}
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ae25812e/src/java/org/apache/cassandra/transport/Event.java
--
diff --git a/src/java/org/apache/cassandra/transport/Event.java 
b/src/java/org/apache/cassandra/transport/Event.java
index 3fa2733..1b7e487 100644
--- a/src/java/org/apache/cassandra/transport/Event.java
+++ b/src/java/org/apache/cassandra/transport/Event.java
@@ -218,6 +218,8 @@ public abstract class Event
 this.target = target;
 this.keyspace = keyspace;
 this.tableOrType = tableOrType;
+if (target != Target.KEYSPACE)
+assert this.tableOrType != null : Table or type should be set 
for non-keyspace schema change events;
 }
 
 public SchemaChange(Change change, String keyspace)



buildbot failure in ASF Buildbot on cassandra-trunk

2014-07-15 Thread buildbot
The Buildbot has detected a new failure on builder cassandra-trunk while 
building cassandra.
Full details are available at:
 http://ci.apache.org/builders/cassandra-trunk/builds/454

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: portunus_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch trunk] 8a5a82b8a87314d1e740d94cd40a190bd2681a42
Blamelist: Tyler Hobbs ty...@datastax.com,blerer b_le...@hotmail.com

BUILD FAILED: failed shell

sincerely,
 -The Buildbot





[1/3] git commit: ninja fix comments in SharedExecutorPool

2014-07-15 Thread benedict
Repository: cassandra
Updated Branches:
  refs/heads/trunk 8a5a82b8a - 1c4768a88


ninja fix comments in SharedExecutorPool


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

Branch: refs/heads/trunk
Commit: ca431888efd91bb8a7900c0219bd821744153686
Parents: 0401761
Author: Benedict Elliott Smith bened...@apache.org
Authored: Tue Jul 15 18:20:48 2014 +0100
Committer: Benedict Elliott Smith bened...@apache.org
Committed: Tue Jul 15 18:20:48 2014 +0100

--
 .../cassandra/concurrent/SharedExecutorPool.java | 19 ---
 1 file changed, 12 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ca431888/src/java/org/apache/cassandra/concurrent/SharedExecutorPool.java
--
diff --git a/src/java/org/apache/cassandra/concurrent/SharedExecutorPool.java 
b/src/java/org/apache/cassandra/concurrent/SharedExecutorPool.java
index e03ec57..161b326 100644
--- a/src/java/org/apache/cassandra/concurrent/SharedExecutorPool.java
+++ b/src/java/org/apache/cassandra/concurrent/SharedExecutorPool.java
@@ -35,17 +35,22 @@ import static 
org.apache.cassandra.concurrent.SEPWorker.Work;
  * To keep producers from incurring unnecessary delays, once an executor is 
spun up (i.e. is processing tasks at a steady
  * rate), adding tasks to the executor often involves only placing the task on 
the work queue and updating the
  * task permits (which imposes our max queue length constraints). Only when it 
cannot be guaranteed the task will be serviced
- * promptly does the producer have to signal a thread itself to perform the 
work.
+ * promptly, and the maximum concurrency has not been reached, does the 
producer have to schedule a thread itself to perform 
+ * the work ('promptly' in this context means we already have a worker 
spinning for work, as described next).
  *
- * We do this by scheduling only if
- *
- * The worker threads schedule themselves as far as possible: when they are 
assigned a task, they will attempt to spawn
+ * Otherwise the worker threads schedule themselves: when they are assigned a 
task, they will attempt to spawn
  * a partner worker to service any other work outstanding on the queue (if 
any); once they have finished the task they
  * will either take another (if any remaining) and repeat this, or they will 
attempt to assign themselves to another executor
  * that does have tasks remaining. If both fail, it will enter a 
non-busy-spinning phase, where it will sleep for a short
  * random interval (based upon the number of threads in this mode, so that the 
total amount of non-sleeping time remains
- * approximately fixed regardless of the number of spinning threads), and upon 
waking up will again try to assign themselves
- * an executor with outstanding tasks to perform.
+ * approximately fixed regardless of the number of spinning threads), and upon 
waking will again try to assign itself to
+ * an executor with outstanding tasks to perform. As a result of always 
scheduling a partner before committing to performing
+ * any work, with a steady state of task arrival we should generally have 
either one spinning worker ready to promptly respond 
+ * to incoming work, or all possible workers actively committed to tasks.
+ * 
+ * In order to prevent this executor pool acting like a noisy neighbour to 
other processes on the system, workers also deschedule
+ * themselves when it is detected that there are too many for the current rate 
of operation arrival. This is decided as a function 
+ * of the total time spent spinning by all workers in an interval; as more 
workers spin, workers are descheduled more rapidly.
  */
 public class SharedExecutorPool
 {
@@ -96,4 +101,4 @@ public class SharedExecutorPool
 if (current == 0  spinningCount.compareAndSet(0, 1))
 schedule(Work.SPINNING);
 }
-}
\ No newline at end of file
+}



[jira] [Commented] (CASSANDRA-7111) Include snippet of CQL query near error in SyntaxError messages

2014-07-15 Thread Tyler Hobbs (JIRA)

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

Tyler Hobbs commented on CASSANDRA-7111:


Thanks, committed to cassandra-2.1 and trunk.

However, I noticed that a couple of the new unit tests are failing in trunk:

{noformat}
[junit] Testsuite: org.apache.cassandra.cql3.CqlParserTest
[junit] Tests run: 2, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 
0.161 sec
[junit] 
[junit] Testcase: 
testRemoveErrorListener(org.apache.cassandra.cql3.CqlParserTest): FAILED
[junit] expected:1 but was:2
[junit] junit.framework.AssertionFailedError: expected:1 but was:2
[junit] at 
org.apache.cassandra.cql3.CqlParserTest.testRemoveErrorListener(CqlParserTest.java:70)
[junit] 
[junit] 
[junit] Testcase: 
testAddErrorListener(org.apache.cassandra.cql3.CqlParserTest):FAILED
[junit] expected:1 but was:2
[junit] junit.framework.AssertionFailedError: expected:1 but was:2
[junit] at 
org.apache.cassandra.cql3.CqlParserTest.testAddErrorListener(CqlParserTest.java:49)
[junit] 
[junit] 
[junit] Test org.apache.cassandra.cql3.CqlParserTest FAILED
{noformat}

Can you post a second patch to fix the tests on trunk?

 Include snippet of CQL query near error in SyntaxError messages
 ---

 Key: CASSANDRA-7111
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7111
 Project: Cassandra
  Issue Type: Improvement
  Components: API, Tools
Reporter: Tyler Hobbs
Assignee: Benjamin Lerer
  Labels: cql
 Fix For: 2.1.1

 Attachments: CASSANDRA-7111-V2.txt, CASSANDRA-7111-V3.txt, 
 CASSANDRA-7111.txt


 When a SyntaxError is returned, including a snippet of the query close to the 
 error would make a lot of error messages easier to understand.  For example, 
 if you did this with the python driver:
 {code}
 session.execute(SELECT * FROM users WHERE username='%s', ['Joe Smith'])
 {code}
 you would wind up with an extra set of single quotes (the driver 
 automatically escapes and quotes input).  If a snippet like {{...WHERE 
 username=''Joe Smith''}} were included in the error message, this would be 
 pretty easy to spot.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


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

2014-07-15 Thread benedict
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: e66896b1d326c49ee8b7b20ef343490370ba968f
Parents: 8a2d8a1 ca43188
Author: Benedict Elliott Smith bened...@apache.org
Authored: Tue Jul 15 18:21:01 2014 +0100
Committer: Benedict Elliott Smith bened...@apache.org
Committed: Tue Jul 15 18:21:01 2014 +0100

--
 .../cassandra/concurrent/SharedExecutorPool.java | 19 ---
 1 file changed, 12 insertions(+), 7 deletions(-)
--




[jira] [Updated] (CASSANDRA-7527) Bump CQL version and update doc for 2.1

2014-07-15 Thread Tyler Hobbs (JIRA)

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

Tyler Hobbs updated CASSANDRA-7527:
---

Attachment: 7527-v2.txt

v2 patch adds CASSANDRA-7314 to the 3.2.0 changes and the {{DROP INDEX}} 
statement itself.

 Bump CQL version and update doc for 2.1
 ---

 Key: CASSANDRA-7527
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7527
 Project: Cassandra
  Issue Type: Bug
Reporter: Sylvain Lebresne
Assignee: Tyler Hobbs
 Fix For: 2.1.0

 Attachments: 7527-v2.txt, 7527.txt


 It appears we forgot to bump the CQL version for new 2.1 features (UDT, tuple 
 type, collection indexing), nor did we update the textile doc



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7508) nodetool prints error if dirs don't exist.

2014-07-15 Thread Tyler Hobbs (JIRA)

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

Tyler Hobbs updated CASSANDRA-7508:
---

Attachment: 7508.txt

7508.txt (and [branch|https://github.com/thobbs/cassandra/tree/CASSANDRA-7508]) 
uses the actual token/endpoint map to determine if vnodes are enabled instead 
of using the conf, which nodetool shouldn't have been doing anyway.

 nodetool prints error if dirs don't exist.
 --

 Key: CASSANDRA-7508
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7508
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Jeremiah Jordan
Assignee: Tyler Hobbs
Priority: Minor
 Fix For: 2.1.0

 Attachments: 7508.txt


 The new directory stuff blows up nodetool if its not there.  Like if I run 
 nodetool from an different untar of the rc2 tar.gz.
 {noformat}
 apache-cassandra-2.1.0-rc2/bin $ ./nodetool ring
 Note: Ownership information does not include topology; for complete 
 information, specify a keyspace
 Datacenter: Analytics
 ==
 AddressRackStatus State   LoadOwns
 Token
 127.0.0.1  rack1   Up Normal  57.88 KB100.00% 
 3647214374146654083
 ERROR 21:59:30 Fatal configuration error
 org.apache.cassandra.exceptions.ConfigurationException: commitlog_directory 
 is missing and -Dcassandra.storagedir is not set
   at 
 org.apache.cassandra.config.DatabaseDescriptor.applyConfig(DatabaseDescriptor.java:461)
  ~[apache-cassandra-2.1.0-rc2.jar:2.1.0-rc2]
   at 
 org.apache.cassandra.config.DatabaseDescriptor.clinit(DatabaseDescriptor.java:129)
  ~[apache-cassandra-2.1.0-rc2.jar:2.1.0-rc2]
   at org.apache.cassandra.tools.NodeTool$Ring.execute(NodeTool.java:464) 
 [apache-cassandra-2.1.0-rc2.jar:2.1.0-rc2]
   at 
 org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:245) 
 [apache-cassandra-2.1.0-rc2.jar:2.1.0-rc2]
   at org.apache.cassandra.tools.NodeTool.main(NodeTool.java:159) 
 [apache-cassandra-2.1.0-rc2.jar:2.1.0-rc2]
 commitlog_directory is missing and -Dcassandra.storagedir is not set
 Fatal configuration error; unable to start. See log for stack trace.
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7232) Enable live replay of commit logs

2014-07-15 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-7232:
---

I think [~nickmbailey] was asking for this.  Thoughts?

 Enable live replay of commit logs
 -

 Key: CASSANDRA-7232
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7232
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Patrick McFadin
Assignee: Lyuben Todorov
Priority: Minor
 Fix For: 2.0.10

 Attachments: 
 0001-Expose-CommitLog-recover-to-JMX-add-nodetool-cmd-for.patch, 
 0001-TRUNK-JMX-and-nodetool-cmd-for-commitlog-replay.patch


 Replaying commit logs takes a restart but restoring sstables can be an online 
 operation with refresh. In order to restore a point-in-time without a 
 restart, the node needs to live replay the commit logs from JMX and a 
 nodetool command.
 nodetool refreshcommitlogs keyspace table



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[8/8] git commit: Merge branch 'cassandra-2.1' into trunk

2014-07-15 Thread jbellis
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: da650f3c62bad24a3761e90b939cf98fcd1e04e5
Parents: ae25812 9a4cc22
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 15:15:16 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 15:15:16 2014 -0500

--
 CHANGES.txt |  2 ++
 conf/cassandra.yaml | 23 +++-
 .../org/apache/cassandra/config/Config.java |  6 ++---
 .../cassandra/config/DatabaseDescriptor.java|  6 +
 4 files changed, 28 insertions(+), 9 deletions(-)
--


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

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



[4/8] git commit: memtable_cleanup_threshold and memtable_flush_writers defaults patch by jbellis; reviewed by bes for CASSANDRA-7551

2014-07-15 Thread jbellis
memtable_cleanup_threshold and memtable_flush_writers defaults
patch by jbellis; reviewed by bes for CASSANDRA-7551


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

Branch: refs/heads/trunk
Commit: 3adf59486a4e55f409fcc62a4c942a070b98dd8f
Parents: bd0eafd
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 15:14:50 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 15:14:56 2014 -0500

--
 CHANGES.txt |  2 ++
 conf/cassandra.yaml | 23 +++-
 .../org/apache/cassandra/config/Config.java |  6 ++---
 .../cassandra/config/DatabaseDescriptor.java|  6 +
 4 files changed, 28 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3adf5948/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e6ded2a..b20c465 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
 2.1.0-final
+ * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
+   (CASSANDRA-7551)
  * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
  * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
  * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3adf5948/conf/cassandra.yaml
--
diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml
index f1e5576..4ce69fe 100644
--- a/conf/cassandra.yaml
+++ b/conf/cassandra.yaml
@@ -282,8 +282,13 @@ concurrent_counter_writes: 32
 # memtable_total_space_in_mb: 2048
 
 # Ratio of occupied non-flushing memtable size to total permitted size
-# that will trigger a flush of the largest memtable.
-memtable_cleanup_threshold: 0.4
+# that will trigger a flush of the largest memtable.  Lager mct will
+# mean larger flushes and hence less compaction, but also less concurrent
+# flush activity which can make it difficult to keep your disks fed
+# under heavy write load.
+#
+# memtable_cleanup_threshold defaults to 1 / (memtable_flush_writers + 1)
+#memtable_cleanup_threshold: 0.11
 
 # Specify the way Cassandra allocates and manages memtable memory.
 # Options are:
@@ -304,9 +309,14 @@ memtable_allocation_type: heap_buffers
 
 # This sets the amount of memtable flush writer threads.  These will
 # be blocked by disk io, and each one will hold a memtable in memory
-# while blocked. If your flush directory is backed by SSD, you may
-# want to increase this.
-memtable_flush_writers: 2
+# while blocked. 
+#
+# memtable_flush_writers defaults to the smaller of (number of disks,
+# number of cores), with a minimum of 2 and a maximum of 8.
+# 
+# If your data directories are backed by SSD, you should increase this
+# to the number of cores.
+#memtable_flush_writers: 8
 
 # A fixed memory pool size in MB for for SSTable index summaries. If left
 # empty, this will default to 5% of the heap size. If the memory usage of
@@ -503,6 +513,9 @@ batch_size_warn_threshold_in_kb: 5
 #
 # concurrent_compactors defaults to the smaller of (number of disks,
 # number of cores), with a minimum of 2 and a maximum of 8.
+# 
+# If your data directories are backed by SSD, you should increase this
+# to the number of cores.
 #concurrent_compactors: 1
 
 # Throttles compaction to the given total throughput across the entire

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3adf5948/src/java/org/apache/cassandra/config/Config.java
--
diff --git a/src/java/org/apache/cassandra/config/Config.java 
b/src/java/org/apache/cassandra/config/Config.java
index 4d4a95b..2438e09 100644
--- a/src/java/org/apache/cassandra/config/Config.java
+++ b/src/java/org/apache/cassandra/config/Config.java
@@ -90,12 +90,10 @@ public class Config
 @Deprecated
 public Integer concurrent_replicates = null;
 
-// we don't want a lot of contention, but we also don't want to starve all 
other tables
-// if a big one flushes. OS buffering should be able to minimize 
contention with 2 threads.
-public int memtable_flush_writers = 2;
+public Integer memtable_flush_writers = null;
 public Integer memtable_heap_space_in_mb;
 public Integer memtable_offheap_space_in_mb;
-public float memtable_cleanup_threshold = 0.4f;
+public Double memtable_cleanup_threshold = null;
 
 public Integer storage_port = 7000;
 public Integer ssl_storage_port = 7001;


[3/8] git commit: memtable_cleanup_threshold and memtable_flush_writers defaults patch by jbellis; reviewed by bes for CASSANDRA-7551

2014-07-15 Thread jbellis
memtable_cleanup_threshold and memtable_flush_writers defaults
patch by jbellis; reviewed by bes for CASSANDRA-7551


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

Branch: refs/heads/cassandra-2.1
Commit: 3adf59486a4e55f409fcc62a4c942a070b98dd8f
Parents: bd0eafd
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 15:14:50 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 15:14:56 2014 -0500

--
 CHANGES.txt |  2 ++
 conf/cassandra.yaml | 23 +++-
 .../org/apache/cassandra/config/Config.java |  6 ++---
 .../cassandra/config/DatabaseDescriptor.java|  6 +
 4 files changed, 28 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3adf5948/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e6ded2a..b20c465 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
 2.1.0-final
+ * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
+   (CASSANDRA-7551)
  * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
  * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
  * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3adf5948/conf/cassandra.yaml
--
diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml
index f1e5576..4ce69fe 100644
--- a/conf/cassandra.yaml
+++ b/conf/cassandra.yaml
@@ -282,8 +282,13 @@ concurrent_counter_writes: 32
 # memtable_total_space_in_mb: 2048
 
 # Ratio of occupied non-flushing memtable size to total permitted size
-# that will trigger a flush of the largest memtable.
-memtable_cleanup_threshold: 0.4
+# that will trigger a flush of the largest memtable.  Lager mct will
+# mean larger flushes and hence less compaction, but also less concurrent
+# flush activity which can make it difficult to keep your disks fed
+# under heavy write load.
+#
+# memtable_cleanup_threshold defaults to 1 / (memtable_flush_writers + 1)
+#memtable_cleanup_threshold: 0.11
 
 # Specify the way Cassandra allocates and manages memtable memory.
 # Options are:
@@ -304,9 +309,14 @@ memtable_allocation_type: heap_buffers
 
 # This sets the amount of memtable flush writer threads.  These will
 # be blocked by disk io, and each one will hold a memtable in memory
-# while blocked. If your flush directory is backed by SSD, you may
-# want to increase this.
-memtable_flush_writers: 2
+# while blocked. 
+#
+# memtable_flush_writers defaults to the smaller of (number of disks,
+# number of cores), with a minimum of 2 and a maximum of 8.
+# 
+# If your data directories are backed by SSD, you should increase this
+# to the number of cores.
+#memtable_flush_writers: 8
 
 # A fixed memory pool size in MB for for SSTable index summaries. If left
 # empty, this will default to 5% of the heap size. If the memory usage of
@@ -503,6 +513,9 @@ batch_size_warn_threshold_in_kb: 5
 #
 # concurrent_compactors defaults to the smaller of (number of disks,
 # number of cores), with a minimum of 2 and a maximum of 8.
+# 
+# If your data directories are backed by SSD, you should increase this
+# to the number of cores.
 #concurrent_compactors: 1
 
 # Throttles compaction to the given total throughput across the entire

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3adf5948/src/java/org/apache/cassandra/config/Config.java
--
diff --git a/src/java/org/apache/cassandra/config/Config.java 
b/src/java/org/apache/cassandra/config/Config.java
index 4d4a95b..2438e09 100644
--- a/src/java/org/apache/cassandra/config/Config.java
+++ b/src/java/org/apache/cassandra/config/Config.java
@@ -90,12 +90,10 @@ public class Config
 @Deprecated
 public Integer concurrent_replicates = null;
 
-// we don't want a lot of contention, but we also don't want to starve all 
other tables
-// if a big one flushes. OS buffering should be able to minimize 
contention with 2 threads.
-public int memtable_flush_writers = 2;
+public Integer memtable_flush_writers = null;
 public Integer memtable_heap_space_in_mb;
 public Integer memtable_offheap_space_in_mb;
-public float memtable_cleanup_threshold = 0.4f;
+public Double memtable_cleanup_threshold = null;
 
 public Integer storage_port = 7000;
 public Integer ssl_storage_port = 7001;


[6/8] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-07-15 Thread jbellis
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: 9a4cc22a3ebf54a52bcb7e361837ed9f51fbc58b
Parents: 0b7377f 3adf594
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 15:15:05 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 15:15:05 2014 -0500

--
 CHANGES.txt |  2 ++
 conf/cassandra.yaml | 23 +++-
 .../org/apache/cassandra/config/Config.java |  6 ++---
 .../cassandra/config/DatabaseDescriptor.java|  6 +
 4 files changed, 28 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9a4cc22a/CHANGES.txt
--
diff --cc CHANGES.txt
index fc6d4eb,b20c465..65763dc
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,15 -1,6 +1,17 @@@
 +2.1.1
 + * Add listen_interface and rpc_interface options (CASSANDRA-7417)
 + * Fail to start if commit log replay detects a problem (CASSANDRA-7125)
 + * Improve schema merge performance (CASSANDRA-7444)
 + * Fix NPE when unknown prepared statement ID is used (CASSANDRA-7454)
 + * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
 + * Optimise NativeCell comparisons (CASSANDRA-6755)
 + * Configurable client timeout for cqlsh (CASSANDRA-7516)
 + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 +
 +
  2.1.0-final
+  * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
+(CASSANDRA-7551)
   * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
   * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
   * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9a4cc22a/conf/cassandra.yaml
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9a4cc22a/src/java/org/apache/cassandra/config/Config.java
--

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



[5/8] git commit: memtable_cleanup_threshold and memtable_flush_writers defaults patch by jbellis; reviewed by bes for CASSANDRA-7551

2014-07-15 Thread jbellis
memtable_cleanup_threshold and memtable_flush_writers defaults
patch by jbellis; reviewed by bes for CASSANDRA-7551


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

Branch: refs/heads/cassandra-2.1.0
Commit: 3adf59486a4e55f409fcc62a4c942a070b98dd8f
Parents: bd0eafd
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 15:14:50 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 15:14:56 2014 -0500

--
 CHANGES.txt |  2 ++
 conf/cassandra.yaml | 23 +++-
 .../org/apache/cassandra/config/Config.java |  6 ++---
 .../cassandra/config/DatabaseDescriptor.java|  6 +
 4 files changed, 28 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3adf5948/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e6ded2a..b20c465 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
 2.1.0-final
+ * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
+   (CASSANDRA-7551)
  * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
  * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
  * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3adf5948/conf/cassandra.yaml
--
diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml
index f1e5576..4ce69fe 100644
--- a/conf/cassandra.yaml
+++ b/conf/cassandra.yaml
@@ -282,8 +282,13 @@ concurrent_counter_writes: 32
 # memtable_total_space_in_mb: 2048
 
 # Ratio of occupied non-flushing memtable size to total permitted size
-# that will trigger a flush of the largest memtable.
-memtable_cleanup_threshold: 0.4
+# that will trigger a flush of the largest memtable.  Lager mct will
+# mean larger flushes and hence less compaction, but also less concurrent
+# flush activity which can make it difficult to keep your disks fed
+# under heavy write load.
+#
+# memtable_cleanup_threshold defaults to 1 / (memtable_flush_writers + 1)
+#memtable_cleanup_threshold: 0.11
 
 # Specify the way Cassandra allocates and manages memtable memory.
 # Options are:
@@ -304,9 +309,14 @@ memtable_allocation_type: heap_buffers
 
 # This sets the amount of memtable flush writer threads.  These will
 # be blocked by disk io, and each one will hold a memtable in memory
-# while blocked. If your flush directory is backed by SSD, you may
-# want to increase this.
-memtable_flush_writers: 2
+# while blocked. 
+#
+# memtable_flush_writers defaults to the smaller of (number of disks,
+# number of cores), with a minimum of 2 and a maximum of 8.
+# 
+# If your data directories are backed by SSD, you should increase this
+# to the number of cores.
+#memtable_flush_writers: 8
 
 # A fixed memory pool size in MB for for SSTable index summaries. If left
 # empty, this will default to 5% of the heap size. If the memory usage of
@@ -503,6 +513,9 @@ batch_size_warn_threshold_in_kb: 5
 #
 # concurrent_compactors defaults to the smaller of (number of disks,
 # number of cores), with a minimum of 2 and a maximum of 8.
+# 
+# If your data directories are backed by SSD, you should increase this
+# to the number of cores.
 #concurrent_compactors: 1
 
 # Throttles compaction to the given total throughput across the entire

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3adf5948/src/java/org/apache/cassandra/config/Config.java
--
diff --git a/src/java/org/apache/cassandra/config/Config.java 
b/src/java/org/apache/cassandra/config/Config.java
index 4d4a95b..2438e09 100644
--- a/src/java/org/apache/cassandra/config/Config.java
+++ b/src/java/org/apache/cassandra/config/Config.java
@@ -90,12 +90,10 @@ public class Config
 @Deprecated
 public Integer concurrent_replicates = null;
 
-// we don't want a lot of contention, but we also don't want to starve all 
other tables
-// if a big one flushes. OS buffering should be able to minimize 
contention with 2 threads.
-public int memtable_flush_writers = 2;
+public Integer memtable_flush_writers = null;
 public Integer memtable_heap_space_in_mb;
 public Integer memtable_offheap_space_in_mb;
-public float memtable_cleanup_threshold = 0.4f;
+public Double memtable_cleanup_threshold = null;
 
 public Integer storage_port = 7000;
 public Integer ssl_storage_port = 7001;


[jira] [Commented] (CASSANDRA-7527) Bump CQL version and update doc for 2.1

2014-07-15 Thread Aleksey Yeschenko (JIRA)

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

Aleksey Yeschenko commented on CASSANDRA-7527:
--

v2 LGTM, +1

 Bump CQL version and update doc for 2.1
 ---

 Key: CASSANDRA-7527
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7527
 Project: Cassandra
  Issue Type: Bug
Reporter: Sylvain Lebresne
Assignee: Tyler Hobbs
 Fix For: 2.1.0

 Attachments: 7527-v2.txt, 7527.txt


 It appears we forgot to bump the CQL version for new 2.1 features (UDT, tuple 
 type, collection indexing), nor did we update the textile doc



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[1/8] git commit: Add missing table name to DROP INDEX responses

2014-07-15 Thread jbellis
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 0b7377fed - 9a4cc22a3
  refs/heads/cassandra-2.1.0 bd0eafd58 - 3adf59486
  refs/heads/trunk ae25812e3 - da650f3c6


Add missing table name to DROP INDEX responses

Patch and review by Tyler Hobbs and Aleksey Yeschenko for CASSANDRA-7539


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

Branch: refs/heads/trunk
Commit: bd0eafd5853a446b0db79547231a0a9653a74293
Parents: 0401761
Author: Tyler Hobbs ty...@datastax.com
Authored: Tue Jul 15 12:23:06 2014 -0500
Committer: Tyler Hobbs ty...@datastax.com
Committed: Tue Jul 15 12:23:06 2014 -0500

--
 CHANGES.txt  |  1 +
 .../cassandra/cql3/statements/DropIndexStatement.java| 11 +++
 src/java/org/apache/cassandra/transport/Event.java   |  2 ++
 3 files changed, 14 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/bd0eafd5/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 193cff8..e6ded2a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,6 +1,7 @@
 2.1.0-final
  * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
  * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
+ * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)
 Merged from 2.0:
  * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
  * Fix range merging when DES scores are zero (CASSANDRA-7535)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bd0eafd5/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
index b8a4c9a..0562cc6 100644
--- a/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
@@ -33,6 +33,9 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
 public final String indexName;
 public final boolean ifExists;
 
+// initialized in announceMigration()
+private String indexedCF;
+
 public DropIndexStatement(IndexName indexName, boolean ifExists)
 {
 super(indexName.getCfName());
@@ -67,6 +70,7 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
 return;
 
 CFMetaData updatedCfm = updateCFMetadata(cfm);
+indexedCF = updatedCfm.cfName;
 MigrationManager.announceColumnFamilyUpdate(updatedCfm, false, 
isLocalOnly);
 }
 
@@ -106,4 +110,11 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
 }
 return null;
 }
+
+@Override
+public String columnFamily()
+{
+assert indexedCF != null;
+return indexedCF;
+}
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bd0eafd5/src/java/org/apache/cassandra/transport/Event.java
--
diff --git a/src/java/org/apache/cassandra/transport/Event.java 
b/src/java/org/apache/cassandra/transport/Event.java
index 3fa2733..1b7e487 100644
--- a/src/java/org/apache/cassandra/transport/Event.java
+++ b/src/java/org/apache/cassandra/transport/Event.java
@@ -218,6 +218,8 @@ public abstract class Event
 this.target = target;
 this.keyspace = keyspace;
 this.tableOrType = tableOrType;
+if (target != Target.KEYSPACE)
+assert this.tableOrType != null : Table or type should be set 
for non-keyspace schema change events;
 }
 
 public SchemaChange(Change change, String keyspace)



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

2014-07-15 Thread jbellis
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: 0b7377fed597eb41bc23224c80747130561165cf
Parents: 8a2d8a1 bd0eafd
Author: Tyler Hobbs ty...@datastax.com
Authored: Tue Jul 15 12:24:12 2014 -0500
Committer: Tyler Hobbs ty...@datastax.com
Committed: Tue Jul 15 12:24:12 2014 -0500

--
 CHANGES.txt  |  1 +
 .../cassandra/cql3/statements/DropIndexStatement.java| 11 +++
 src/java/org/apache/cassandra/transport/Event.java   |  2 ++
 3 files changed, 14 insertions(+)
--


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



[7/8] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-07-15 Thread jbellis
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: 9a4cc22a3ebf54a52bcb7e361837ed9f51fbc58b
Parents: 0b7377f 3adf594
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 15:15:05 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 15:15:05 2014 -0500

--
 CHANGES.txt |  2 ++
 conf/cassandra.yaml | 23 +++-
 .../org/apache/cassandra/config/Config.java |  6 ++---
 .../cassandra/config/DatabaseDescriptor.java|  6 +
 4 files changed, 28 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9a4cc22a/CHANGES.txt
--
diff --cc CHANGES.txt
index fc6d4eb,b20c465..65763dc
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,15 -1,6 +1,17 @@@
 +2.1.1
 + * Add listen_interface and rpc_interface options (CASSANDRA-7417)
 + * Fail to start if commit log replay detects a problem (CASSANDRA-7125)
 + * Improve schema merge performance (CASSANDRA-7444)
 + * Fix NPE when unknown prepared statement ID is used (CASSANDRA-7454)
 + * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
 + * Optimise NativeCell comparisons (CASSANDRA-6755)
 + * Configurable client timeout for cqlsh (CASSANDRA-7516)
 + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 +
 +
  2.1.0-final
+  * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
+(CASSANDRA-7551)
   * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
   * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
   * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9a4cc22a/conf/cassandra.yaml
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9a4cc22a/src/java/org/apache/cassandra/config/Config.java
--

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



[jira] [Assigned] (CASSANDRA-7525) Querying by multiple secondary indexes gives java.lang.IllegalArgumentException on some cases

2014-07-15 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis reassigned CASSANDRA-7525:
-

Assignee: Sam Tunnicliffe  (was: Tyler Hobbs)

 Querying by multiple secondary indexes gives 
 java.lang.IllegalArgumentException on some cases
 -

 Key: CASSANDRA-7525
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7525
 Project: Cassandra
  Issue Type: Bug
Reporter: Tuukka Mustonen
Assignee: Sam Tunnicliffe
 Fix For: 2.1.0


 Querying by:
 * non-primary key column with secondary index + collection with secondary 
 index
 * primary key column with secondary index + non-primary key column with 
 secondary index
 gives {{ErrorMessage code= [Server error] 
 message=java.lang.IllegalArgumentException: expected one element but was: 
 org.apache.cassandra.db.index.composites.CompositesSearcher@156b5576, 
 org.apache.cassandra.db.index.composites.CompositesSearcher@39b7c0f6}}
 Steps to reproduce:
 {code}
 cqlsh:cs CREATE TABLE test (
   ...   id1 text,
   ...   id2 text,
   ...   column1 text,
   ...   column2 text,
   ...   collection settext,
   ...   PRIMARY KEY (id1, id2)
   ... );
 cqlsh:cs 
 {code}
 Simple query by primary key works as should:
 {code}
 cqlsh:cs SELECT * FROM test WHERE id1 = 'foo';
 (0 rows)
 cqlsh:cs SELECT * FROM test WHERE id1 = 'foo' AND id2 = 'bar';
 (0 rows)
 {code}
 Query by secondary index + non-indexed column:
 {code}
 cqlsh:cs CREATE INDEX test_column1s ON test(column1);
 cqlsh:cs SELECT * FROM test WHERE column1 = 'foo';
 (0 rows)
 cqlsh:cs SELECT * FROM test WHERE column1 = 'foo' AND column2 = 'bar' ALLOW 
 FILTERING;
 (0 rows)
 {code}
 Add secondary index also for the second column:
 {code}
 cqlsh:cs CREATE INDEX test_column2s ON test(column2);
 cqlsh:cs SELECT * FROM test WHERE column1 = 'foo' AND column2 = 'bar' ALLOW 
 FILTERING;
 (0 rows)
 {code}
 Doesn't matter if we bring primary key or the collection there as well:
 {code}
 cqlsh:cs SELECT * FROM test WHERE id1 = 'blah' AND column1 = 'foo' AND 
 column2 = 'bar' ALLOW FILTERING;
 (0 rows)
 cqlsh:cs SELECT * FROM test WHERE column1 = 'foo' AND collection CONTAINS 
 'bar' ALLOW FILTERING;
 (0 rows)
 {code}
 Let's add index for the collection:
 {code}
 cqlsh:cs CREATE INDEX test_collections ON test(collection);
 cqlsh:cs SELECT * FROM test WHERE collection CONTAINS 'bar';
 (0 rows)
 {code}
 But then combine secondary index column and collection with secondary index:
 {code}
 cqlsh:cs SELECT * FROM test WHERE column1 = 'foo' AND collection CONTAINS 
 'bar' ALLOW FILTERING;
 ErrorMessage code= [Server error] 
 message=java.lang.IllegalArgumentException: expected one element but was: 
 org.apache.cassandra.db.index.composites.CompositesSearcher@68e37722, 
 org.apache.cassandra.db.index.composites.CompositesSearcher@2da28efa
 {code}
 Furthermore, query by primary key field with secondary index + non-primary 
 key column with secondary index:
 {code}
 cqlsh:cs CREATE INDEX test_id2s ON test(id2);
 cqlsh:cs SELECT * FROM test WHERE id2 = 'foo' AND column1 = 'bar' ALLOW 
 FILTERING;
 ErrorMessage code= [Server error] 
 message=java.lang.IllegalArgumentException: expected one element but was: 
 org.apache.cassandra.db.index.composites.CompositesSearcher@3ca899f1, 
 org.apache.cassandra.db.index.composites.CompositesSearcher@6112bc53
 {code}
 I'm a cassandra noob so maybe I'm trying to do things the db is not meant to 
 do?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


buildbot failure in ASF Buildbot on cassandra-2.1

2014-07-15 Thread buildbot
The Buildbot has detected a new failure on builder cassandra-2.1 while building 
cassandra.
Full details are available at:
 http://ci.apache.org/builders/cassandra-2.1/builds/240

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: portunus_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch cassandra-2.1] 
9a4cc22a3ebf54a52bcb7e361837ed9f51fbc58b
Blamelist: Jonathan Ellis jbel...@apache.org

BUILD FAILED: failed compile

sincerely,
 -The Buildbot





[1/6] git commit: add cast to float

2014-07-15 Thread jbellis
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 9a4cc22a3 - 1366c0ad5
  refs/heads/cassandra-2.1.0 3adf59486 - 233bd3c03
  refs/heads/trunk da650f3c6 - 2d0cae4f0


add cast to float


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

Branch: refs/heads/cassandra-2.1
Commit: 233bd3c0340d6bd19fe0c25072bd3b4931be0e1f
Parents: 3adf594
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 15:21:41 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 15:21:41 2014 -0500

--
 src/java/org/apache/cassandra/config/Config.java | 2 +-
 src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/233bd3c0/src/java/org/apache/cassandra/config/Config.java
--
diff --git a/src/java/org/apache/cassandra/config/Config.java 
b/src/java/org/apache/cassandra/config/Config.java
index 2438e09..12c07bd 100644
--- a/src/java/org/apache/cassandra/config/Config.java
+++ b/src/java/org/apache/cassandra/config/Config.java
@@ -93,7 +93,7 @@ public class Config
 public Integer memtable_flush_writers = null;
 public Integer memtable_heap_space_in_mb;
 public Integer memtable_offheap_space_in_mb;
-public Double memtable_cleanup_threshold = null;
+public Float memtable_cleanup_threshold = null;
 
 public Integer storage_port = 7000;
 public Integer ssl_storage_port = 7001;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/233bd3c0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
--
diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index 6730cb5..d56bfe3 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -487,7 +487,7 @@ public class DatabaseDescriptor
 conf.memtable_flush_writers = Math.min(8, Math.max(2, 
Math.min(FBUtilities.getAvailableProcessors(), 
conf.data_file_directories.length)));
 
 if (conf.memtable_cleanup_threshold == null)
-conf.memtable_cleanup_threshold = 1.0 / (1 + 
conf.memtable_flush_writers);
+conf.memtable_cleanup_threshold = (float) (1.0 / (1 + 
conf.memtable_flush_writers));
 
 if (conf.concurrent_compactors == null)
 conf.concurrent_compactors = Math.min(8, Math.max(2, 
Math.min(FBUtilities.getAvailableProcessors(), 
conf.data_file_directories.length)));



[4/6] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-07-15 Thread jbellis
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: 1366c0ad51645928f35aeafb59e0e64898b19f0c
Parents: 9a4cc22 233bd3c
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 15:22:01 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 15:22:01 2014 -0500

--
 src/java/org/apache/cassandra/config/Config.java | 2 +-
 src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1366c0ad/src/java/org/apache/cassandra/config/Config.java
--

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



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

2014-07-15 Thread jbellis
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 2d0cae4f0b7d5cc176c88f959dda8570c6992fb9
Parents: da650f3 1366c0a
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 15:22:07 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 15:22:07 2014 -0500

--
 src/java/org/apache/cassandra/config/Config.java | 2 +-
 src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
--


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



[2/6] git commit: add cast to float

2014-07-15 Thread jbellis
add cast to float


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

Branch: refs/heads/cassandra-2.1.0
Commit: 233bd3c0340d6bd19fe0c25072bd3b4931be0e1f
Parents: 3adf594
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 15:21:41 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 15:21:41 2014 -0500

--
 src/java/org/apache/cassandra/config/Config.java | 2 +-
 src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/233bd3c0/src/java/org/apache/cassandra/config/Config.java
--
diff --git a/src/java/org/apache/cassandra/config/Config.java 
b/src/java/org/apache/cassandra/config/Config.java
index 2438e09..12c07bd 100644
--- a/src/java/org/apache/cassandra/config/Config.java
+++ b/src/java/org/apache/cassandra/config/Config.java
@@ -93,7 +93,7 @@ public class Config
 public Integer memtable_flush_writers = null;
 public Integer memtable_heap_space_in_mb;
 public Integer memtable_offheap_space_in_mb;
-public Double memtable_cleanup_threshold = null;
+public Float memtable_cleanup_threshold = null;
 
 public Integer storage_port = 7000;
 public Integer ssl_storage_port = 7001;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/233bd3c0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
--
diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index 6730cb5..d56bfe3 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -487,7 +487,7 @@ public class DatabaseDescriptor
 conf.memtable_flush_writers = Math.min(8, Math.max(2, 
Math.min(FBUtilities.getAvailableProcessors(), 
conf.data_file_directories.length)));
 
 if (conf.memtable_cleanup_threshold == null)
-conf.memtable_cleanup_threshold = 1.0 / (1 + 
conf.memtable_flush_writers);
+conf.memtable_cleanup_threshold = (float) (1.0 / (1 + 
conf.memtable_flush_writers));
 
 if (conf.concurrent_compactors == null)
 conf.concurrent_compactors = Math.min(8, Math.max(2, 
Math.min(FBUtilities.getAvailableProcessors(), 
conf.data_file_directories.length)));



[3/6] git commit: add cast to float

2014-07-15 Thread jbellis
add cast to float


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

Branch: refs/heads/trunk
Commit: 233bd3c0340d6bd19fe0c25072bd3b4931be0e1f
Parents: 3adf594
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 15:21:41 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 15:21:41 2014 -0500

--
 src/java/org/apache/cassandra/config/Config.java | 2 +-
 src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/233bd3c0/src/java/org/apache/cassandra/config/Config.java
--
diff --git a/src/java/org/apache/cassandra/config/Config.java 
b/src/java/org/apache/cassandra/config/Config.java
index 2438e09..12c07bd 100644
--- a/src/java/org/apache/cassandra/config/Config.java
+++ b/src/java/org/apache/cassandra/config/Config.java
@@ -93,7 +93,7 @@ public class Config
 public Integer memtable_flush_writers = null;
 public Integer memtable_heap_space_in_mb;
 public Integer memtable_offheap_space_in_mb;
-public Double memtable_cleanup_threshold = null;
+public Float memtable_cleanup_threshold = null;
 
 public Integer storage_port = 7000;
 public Integer ssl_storage_port = 7001;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/233bd3c0/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
--
diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index 6730cb5..d56bfe3 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -487,7 +487,7 @@ public class DatabaseDescriptor
 conf.memtable_flush_writers = Math.min(8, Math.max(2, 
Math.min(FBUtilities.getAvailableProcessors(), 
conf.data_file_directories.length)));
 
 if (conf.memtable_cleanup_threshold == null)
-conf.memtable_cleanup_threshold = 1.0 / (1 + 
conf.memtable_flush_writers);
+conf.memtable_cleanup_threshold = (float) (1.0 / (1 + 
conf.memtable_flush_writers));
 
 if (conf.concurrent_compactors == null)
 conf.concurrent_compactors = Math.min(8, Math.max(2, 
Math.min(FBUtilities.getAvailableProcessors(), 
conf.data_file_directories.length)));



[jira] [Commented] (CASSANDRA-7477) JSON to SSTable import failing

2014-07-15 Thread Kishan Karunaratne (JIRA)

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

Kishan Karunaratne commented on CASSANDRA-7477:
---

Here is the updated status, tested on various HEAD:
*Test fails on 1.2 branch: Error: Could not find or load main class 
org.apache.cassandra.service.CassandraDaemon
*Test passes on 2.0 branch
*Test fails on 2.1 branch with the above original error
*Test fails on 3.0/trunk branch with an unknown error (assertion fails)

I wasn't able to replicate the error you got on any of the branches.

 JSON to SSTable import failing
 --

 Key: CASSANDRA-7477
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7477
 Project: Cassandra
  Issue Type: Bug
 Environment: Linux Mint 17 64-bit | 16GiB | C* 2.1
Reporter: Kishan Karunaratne
Assignee: Mikhail Stepura
 Fix For: 2.1.0

 Attachments: log2.log


 Issue affects C* version = 2.1. Commit found by using git bisect. The 
 previous commit to this one also fails, but due to other reasons (CCM server 
 won't start). This commit is the one that give the same error as 2.1 HEAD:
 {noformat}
 02d1e7497a9930120fac367ce82a3b22940acafb is the first bad commit
 commit 02d1e7497a9930120fac367ce82a3b22940acafb
 Author: Brandon Williams brandonwilli...@apache.org
 Date:   Mon Apr 21 14:42:29 2014 -0500
 Default flush dir to data dir.
 Patch by brandonwilliams, reviewed by yukim for CASSANDRA-7064
 :04 04 c50a123f305b73583ccbfa9c455efc4e4cee228f 
 507a90290dccb8a929afadf1f833d926049c46ad Mconf
 {noformat}
 {noformat}
 $ PRINT_DEBUG=true nosetests -x -s -v json_tools_test.py 
 json_tools_test (json_tools_test.TestJson) ... cluster ccm directory: 
 /tmp/dtest-8WVBq9
 Starting cluster...
 Version: 2.1.0
 Getting CQLSH...
 Inserting data...
 Flushing and stopping cluster...
 Exporting to JSON file...
 -- test-users-ka-1-Data.db -
 Deleting cluster and creating new...
 Inserting data...
 Importing JSON file...
 Counting keys to import, please wait... (NOTE: to skip this use -n num_keys)
 Importing 2 keys...
 java.lang.ClassCastException: 
 org.apache.cassandra.db.composites.Composites$EmptyComposite cannot be cast 
 to org.apache.cassandra.db.composites.CellName
   at 
 org.apache.cassandra.db.composites.AbstractCellNameType.cellFromByteBuffer(AbstractCellNameType.java:168)
   at 
 org.apache.cassandra.tools.SSTableImport$JsonColumn.init(SSTableImport.java:165)
   at 
 org.apache.cassandra.tools.SSTableImport.addColumnsToCF(SSTableImport.java:242)
   at 
 org.apache.cassandra.tools.SSTableImport.addToStandardCF(SSTableImport.java:225)
   at 
 org.apache.cassandra.tools.SSTableImport.importSorted(SSTableImport.java:464)
   at 
 org.apache.cassandra.tools.SSTableImport.importJson(SSTableImport.java:351)
   at org.apache.cassandra.tools.SSTableImport.main(SSTableImport.java:575)
 ERROR: org.apache.cassandra.db.composites.Composites$EmptyComposite cannot be 
 cast to org.apache.cassandra.db.composites.CellName
 Verifying import...
 data: [[u'gandalf', 1955, u'male', u'p@$$', u'WA']]
 FAIL
 removing ccm cluster test at: /tmp/dtest-8WVBq9
 ERROR
 ==
 ERROR: json_tools_test (json_tools_test.TestJson)
 --
 Traceback (most recent call last):
   File /home/kishan/git/cstar/cassandra-dtest/dtest.py, line 214, in 
 tearDown
 raise AssertionError('Unexpected error in %s node log: %s' % (node.name, 
 errors))
 AssertionError: Unexpected error in node1 node log: ['ERROR 
 [SSTableBatchOpen:1] 2014-06-30 13:56:01,032 CassandraDaemon.java:166 - 
 Exception in thread Thread[SSTableBatchOpen:1,5,main]\n']
   begin captured logging  
 dtest: DEBUG: cluster ccm directory: /tmp/dtest-8WVBq9
 dtest: DEBUG: Starting cluster...
 dtest: DEBUG: Version: 2.1.0
 dtest: DEBUG: Getting CQLSH...
 dtest: DEBUG: Inserting data...
 dtest: DEBUG: Flushing and stopping cluster...
 dtest: DEBUG: Exporting to JSON file...
 dtest: DEBUG: Deleting cluster and creating new...
 dtest: DEBUG: Inserting data...
 dtest: DEBUG: Importing JSON file...
 dtest: DEBUG: Verifying import...
 dtest: DEBUG: data: [[u'gandalf', 1955, u'male', u'p@$$', u'WA']]
 dtest: DEBUG: removing ccm cluster test at: /tmp/dtest-8WVBq9
 -  end captured logging  -
 ==
 FAIL: json_tools_test (json_tools_test.TestJson)
 --
 Traceback (most recent call last):
   File /home/kishan/git/cstar/cassandra-dtest/json_tools_test.py, line 91, 
 in json_tools_test
 

[jira] [Comment Edited] (CASSANDRA-7477) JSON to SSTable import failing

2014-07-15 Thread Kishan Karunaratne (JIRA)

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

Kishan Karunaratne edited comment on CASSANDRA-7477 at 7/15/14 8:33 PM:


Here is the updated status, tested on various HEAD:
*Test fails on 1.2 branch: Error: Could not find or load main class 
org.apache.cassandra.service.CassandraDaemon
*Test passes on 2.0 branch
*Test fails on 2.1 branch with the above original error. Also fails on 2.1.0-rc3
*Test fails on 3.0/trunk branch with an unknown error (assertion fails)

I wasn't able to replicate the error you got on any of the branches.


was (Author: kishkaru):
Here is the updated status, tested on various HEAD:
*Test fails on 1.2 branch: Error: Could not find or load main class 
org.apache.cassandra.service.CassandraDaemon
*Test passes on 2.0 branch
*Test fails on 2.1 branch with the above original error
*Test fails on 3.0/trunk branch with an unknown error (assertion fails)

I wasn't able to replicate the error you got on any of the branches.

 JSON to SSTable import failing
 --

 Key: CASSANDRA-7477
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7477
 Project: Cassandra
  Issue Type: Bug
 Environment: Linux Mint 17 64-bit | 16GiB | C* 2.1
Reporter: Kishan Karunaratne
Assignee: Mikhail Stepura
 Fix For: 2.1.0

 Attachments: log2.log


 Issue affects C* version = 2.1. Commit found by using git bisect. The 
 previous commit to this one also fails, but due to other reasons (CCM server 
 won't start). This commit is the one that give the same error as 2.1 HEAD:
 {noformat}
 02d1e7497a9930120fac367ce82a3b22940acafb is the first bad commit
 commit 02d1e7497a9930120fac367ce82a3b22940acafb
 Author: Brandon Williams brandonwilli...@apache.org
 Date:   Mon Apr 21 14:42:29 2014 -0500
 Default flush dir to data dir.
 Patch by brandonwilliams, reviewed by yukim for CASSANDRA-7064
 :04 04 c50a123f305b73583ccbfa9c455efc4e4cee228f 
 507a90290dccb8a929afadf1f833d926049c46ad Mconf
 {noformat}
 {noformat}
 $ PRINT_DEBUG=true nosetests -x -s -v json_tools_test.py 
 json_tools_test (json_tools_test.TestJson) ... cluster ccm directory: 
 /tmp/dtest-8WVBq9
 Starting cluster...
 Version: 2.1.0
 Getting CQLSH...
 Inserting data...
 Flushing and stopping cluster...
 Exporting to JSON file...
 -- test-users-ka-1-Data.db -
 Deleting cluster and creating new...
 Inserting data...
 Importing JSON file...
 Counting keys to import, please wait... (NOTE: to skip this use -n num_keys)
 Importing 2 keys...
 java.lang.ClassCastException: 
 org.apache.cassandra.db.composites.Composites$EmptyComposite cannot be cast 
 to org.apache.cassandra.db.composites.CellName
   at 
 org.apache.cassandra.db.composites.AbstractCellNameType.cellFromByteBuffer(AbstractCellNameType.java:168)
   at 
 org.apache.cassandra.tools.SSTableImport$JsonColumn.init(SSTableImport.java:165)
   at 
 org.apache.cassandra.tools.SSTableImport.addColumnsToCF(SSTableImport.java:242)
   at 
 org.apache.cassandra.tools.SSTableImport.addToStandardCF(SSTableImport.java:225)
   at 
 org.apache.cassandra.tools.SSTableImport.importSorted(SSTableImport.java:464)
   at 
 org.apache.cassandra.tools.SSTableImport.importJson(SSTableImport.java:351)
   at org.apache.cassandra.tools.SSTableImport.main(SSTableImport.java:575)
 ERROR: org.apache.cassandra.db.composites.Composites$EmptyComposite cannot be 
 cast to org.apache.cassandra.db.composites.CellName
 Verifying import...
 data: [[u'gandalf', 1955, u'male', u'p@$$', u'WA']]
 FAIL
 removing ccm cluster test at: /tmp/dtest-8WVBq9
 ERROR
 ==
 ERROR: json_tools_test (json_tools_test.TestJson)
 --
 Traceback (most recent call last):
   File /home/kishan/git/cstar/cassandra-dtest/dtest.py, line 214, in 
 tearDown
 raise AssertionError('Unexpected error in %s node log: %s' % (node.name, 
 errors))
 AssertionError: Unexpected error in node1 node log: ['ERROR 
 [SSTableBatchOpen:1] 2014-06-30 13:56:01,032 CassandraDaemon.java:166 - 
 Exception in thread Thread[SSTableBatchOpen:1,5,main]\n']
   begin captured logging  
 dtest: DEBUG: cluster ccm directory: /tmp/dtest-8WVBq9
 dtest: DEBUG: Starting cluster...
 dtest: DEBUG: Version: 2.1.0
 dtest: DEBUG: Getting CQLSH...
 dtest: DEBUG: Inserting data...
 dtest: DEBUG: Flushing and stopping cluster...
 dtest: DEBUG: Exporting to JSON file...
 dtest: DEBUG: Deleting cluster and creating new...
 dtest: DEBUG: Inserting data...
 dtest: DEBUG: Importing JSON file...
 dtest: DEBUG: Verifying import...
 dtest: DEBUG: data: [[u'gandalf', 1955, 

[jira] [Commented] (CASSANDRA-7508) nodetool prints error if dirs don't exist.

2014-07-15 Thread Jeremiah Jordan (JIRA)

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

Jeremiah Jordan commented on CASSANDRA-7508:


LGTM no more error.

 nodetool prints error if dirs don't exist.
 --

 Key: CASSANDRA-7508
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7508
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Jeremiah Jordan
Assignee: Tyler Hobbs
Priority: Minor
 Fix For: 2.1.0

 Attachments: 7508.txt


 The new directory stuff blows up nodetool if its not there.  Like if I run 
 nodetool from an different untar of the rc2 tar.gz.
 {noformat}
 apache-cassandra-2.1.0-rc2/bin $ ./nodetool ring
 Note: Ownership information does not include topology; for complete 
 information, specify a keyspace
 Datacenter: Analytics
 ==
 AddressRackStatus State   LoadOwns
 Token
 127.0.0.1  rack1   Up Normal  57.88 KB100.00% 
 3647214374146654083
 ERROR 21:59:30 Fatal configuration error
 org.apache.cassandra.exceptions.ConfigurationException: commitlog_directory 
 is missing and -Dcassandra.storagedir is not set
   at 
 org.apache.cassandra.config.DatabaseDescriptor.applyConfig(DatabaseDescriptor.java:461)
  ~[apache-cassandra-2.1.0-rc2.jar:2.1.0-rc2]
   at 
 org.apache.cassandra.config.DatabaseDescriptor.clinit(DatabaseDescriptor.java:129)
  ~[apache-cassandra-2.1.0-rc2.jar:2.1.0-rc2]
   at org.apache.cassandra.tools.NodeTool$Ring.execute(NodeTool.java:464) 
 [apache-cassandra-2.1.0-rc2.jar:2.1.0-rc2]
   at 
 org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:245) 
 [apache-cassandra-2.1.0-rc2.jar:2.1.0-rc2]
   at org.apache.cassandra.tools.NodeTool.main(NodeTool.java:159) 
 [apache-cassandra-2.1.0-rc2.jar:2.1.0-rc2]
 commitlog_directory is missing and -Dcassandra.storagedir is not set
 Fatal configuration error; unable to start. See log for stack trace.
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (CASSANDRA-7552) Compactions Pending build up when using LCS

2014-07-15 Thread Darla Baker (JIRA)
Darla Baker created CASSANDRA-7552:
--

 Summary: Compactions Pending build up when using LCS
 Key: CASSANDRA-7552
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7552
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Darla Baker


We seem to be hitting an issue with LeveledCompactionStrategy while running 
performance tests on a 4 node cassandra installation. We are currently using 
Cassandra 2.0.7.

In summary, we run a tests consisting of approximatively, 8000 inserts/sec, 
16,000 gets/sec, and 8,000 deletes/sec. We have a grace period of 12 hours on 
our column families.

At this rate, we observe a stable pending compaction tasks for about 22 to 26 
hours. After that period, something happens and the pending compaction tasks 
starts to increase rapidly, sometimes on one or two servers, but sometimes on 
all four of them. This goes on until the uncompacted SStables start consuming 
all the disk space, after which the cassandra cluster generally fails.

When this occurs, the Compaction completed tasks rate is usually reducing over 
time, which seems to indicate that it takes more and more time to run the 
existing compaction tasks.

At different occasions, I can reproduce a similar issue in less than 12 hours. 
While the traffic rate remains constant, we seem to be hitting this at various 
intervals. Yesterday I could reproduce in less than 6 hours.

We have two different deployments on which we have tested this issue: 
1. 4x IBM HS22, using RAMDISK as cassandra data directory (thus eliminating 
disk I/O) 
2. 8x IBM HS23, with SSD disks, deployed in two geo-redundant data centers of 
4 nodes each, and a latency of 50ms between the data centers.

I can reproduce the compaction tasks falling behind on both these setup, 
although they could be occurring for different reasons. Because of #1, I do not 
believe we are hitting an I/O bottleneck just yet.

As an additional interesting node, if I artificially pause the traffic when I 
see the pending compaction task issue occurring, then: 

1. The pending compaction tasks obviously stops to increase, but stay at the 
same number for 15 minutes (as if nothing is running). 
2. The completed compaction tasks falls to 0 for 15 minutes 
3. After 15 to 20 minutes, out of the blue, all compaction completes in less 
than 2 minutes.

If I restart the traffic after that, the system is stable for a few hours, but 
the issue always comes back.

We have written a small test tool that reproduce our application's Cassandra 
interaction.

We have not successfully run a test for more than 30 hours under load, and 
every failure after that time would follow a similar pattern.




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[3/6] git commit: reorder to avoid NPE

2014-07-15 Thread jbellis
reorder to avoid NPE


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

Branch: refs/heads/trunk
Commit: fad5ad5a6af5a9ed2954a6395149f0ca95d34603
Parents: 233bd3c
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 16:19:25 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 16:19:25 2014 -0500

--
 .../cassandra/config/DatabaseDescriptor.java | 19 ++-
 1 file changed, 10 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fad5ad5a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
--
diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index d56bfe3..d89967d 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -288,15 +288,6 @@ public class DatabaseDescriptor
 logger.info(Global memtable off-heap threshold is disabled, 
HeapAllocator will be used instead);
 else
 logger.info(Global memtable off-heap threshold is enabled at 
{}MB, conf.memtable_offheap_space_in_mb);
-if (conf.memtable_cleanup_threshold  0.01f)
-throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.01);
-if (conf.memtable_cleanup_threshold  0.99f)
-throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.99);
-if (conf.memtable_cleanup_threshold  0.1f)
-logger.warn(memtable_cleanup_threshold is set very low, which may 
cause performance degradation);
-
-if (conf.memtable_flush_writers  1)
-throw new ConfigurationException(memtable_flush_writers must be 
at least 1);
 
 /* Local IP or hostname to bind services to */
 if (conf.listen_address != null)
@@ -486,9 +477,19 @@ public class DatabaseDescriptor
 if (conf.memtable_flush_writers == null)
 conf.memtable_flush_writers = Math.min(8, Math.max(2, 
Math.min(FBUtilities.getAvailableProcessors(), 
conf.data_file_directories.length)));
 
+if (conf.memtable_flush_writers  1)
+throw new ConfigurationException(memtable_flush_writers must be 
at least 1);
+
 if (conf.memtable_cleanup_threshold == null)
 conf.memtable_cleanup_threshold = (float) (1.0 / (1 + 
conf.memtable_flush_writers));
 
+if (conf.memtable_cleanup_threshold  0.01f)
+throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.01);
+if (conf.memtable_cleanup_threshold  0.99f)
+throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.99);
+if (conf.memtable_cleanup_threshold  0.1f)
+logger.warn(memtable_cleanup_threshold is set very low, which may 
cause performance degradation);
+
 if (conf.concurrent_compactors == null)
 conf.concurrent_compactors = Math.min(8, Math.max(2, 
Math.min(FBUtilities.getAvailableProcessors(), 
conf.data_file_directories.length)));
 



[5/6] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-07-15 Thread jbellis
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: f9dbc10db3046a783c601833ceb8f2ad0115e95e
Parents: 1366c0a fad5ad5
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 16:20:53 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 16:20:53 2014 -0500

--
 .../cassandra/config/DatabaseDescriptor.java | 19 ++-
 1 file changed, 10 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f9dbc10d/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
--
diff --cc src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index 9a54581,d89967d..eeea33a
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@@ -290,22 -288,9 +290,13 @@@ public class DatabaseDescripto
  logger.info(Global memtable off-heap threshold is disabled, 
HeapAllocator will be used instead);
  else
  logger.info(Global memtable off-heap threshold is enabled at 
{}MB, conf.memtable_offheap_space_in_mb);
- if (conf.memtable_cleanup_threshold  0.01f)
- throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.01);
- if (conf.memtable_cleanup_threshold  0.99f)
- throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.99);
- if (conf.memtable_cleanup_threshold  0.1f)
- logger.warn(memtable_cleanup_threshold is set very low, which 
may cause performance degradation);
- 
- if (conf.memtable_flush_writers  1)
- throw new ConfigurationException(memtable_flush_writers must be 
at least 1);
  
 -/* Local IP or hostname to bind services to */
 -if (conf.listen_address != null)
 +/* Local IP, hostname or interface to bind services to */
 +if (conf.listen_address != null  conf.listen_interface != null)
 +{
 +throw new ConfigurationException(Set listen_address OR 
listen_interface, not both);
 +}
 +else if (conf.listen_address != null)
  {
  if (conf.listen_address.equals(0.0.0.0))
  throw new ConfigurationException(listen_address cannot be 
0.0.0.0!);



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

2014-07-15 Thread jbellis
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: e240e515fd1b79512904e66a6f3bfe225eca8b92
Parents: 2d0cae4 f9dbc10
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 16:21:00 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 16:21:00 2014 -0500

--
 .../cassandra/config/DatabaseDescriptor.java | 19 ++-
 1 file changed, 10 insertions(+), 9 deletions(-)
--


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



[4/6] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-07-15 Thread jbellis
Merge branch 'cassandra-2.1.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: f9dbc10db3046a783c601833ceb8f2ad0115e95e
Parents: 1366c0a fad5ad5
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 16:20:53 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 16:20:53 2014 -0500

--
 .../cassandra/config/DatabaseDescriptor.java | 19 ++-
 1 file changed, 10 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f9dbc10d/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
--
diff --cc src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index 9a54581,d89967d..eeea33a
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@@ -290,22 -288,9 +290,13 @@@ public class DatabaseDescripto
  logger.info(Global memtable off-heap threshold is disabled, 
HeapAllocator will be used instead);
  else
  logger.info(Global memtable off-heap threshold is enabled at 
{}MB, conf.memtable_offheap_space_in_mb);
- if (conf.memtable_cleanup_threshold  0.01f)
- throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.01);
- if (conf.memtable_cleanup_threshold  0.99f)
- throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.99);
- if (conf.memtable_cleanup_threshold  0.1f)
- logger.warn(memtable_cleanup_threshold is set very low, which 
may cause performance degradation);
- 
- if (conf.memtable_flush_writers  1)
- throw new ConfigurationException(memtable_flush_writers must be 
at least 1);
  
 -/* Local IP or hostname to bind services to */
 -if (conf.listen_address != null)
 +/* Local IP, hostname or interface to bind services to */
 +if (conf.listen_address != null  conf.listen_interface != null)
 +{
 +throw new ConfigurationException(Set listen_address OR 
listen_interface, not both);
 +}
 +else if (conf.listen_address != null)
  {
  if (conf.listen_address.equals(0.0.0.0))
  throw new ConfigurationException(listen_address cannot be 
0.0.0.0!);



[2/6] git commit: reorder to avoid NPE

2014-07-15 Thread jbellis
reorder to avoid NPE


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

Branch: refs/heads/cassandra-2.1.0
Commit: fad5ad5a6af5a9ed2954a6395149f0ca95d34603
Parents: 233bd3c
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 16:19:25 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 16:19:25 2014 -0500

--
 .../cassandra/config/DatabaseDescriptor.java | 19 ++-
 1 file changed, 10 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fad5ad5a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
--
diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index d56bfe3..d89967d 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -288,15 +288,6 @@ public class DatabaseDescriptor
 logger.info(Global memtable off-heap threshold is disabled, 
HeapAllocator will be used instead);
 else
 logger.info(Global memtable off-heap threshold is enabled at 
{}MB, conf.memtable_offheap_space_in_mb);
-if (conf.memtable_cleanup_threshold  0.01f)
-throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.01);
-if (conf.memtable_cleanup_threshold  0.99f)
-throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.99);
-if (conf.memtable_cleanup_threshold  0.1f)
-logger.warn(memtable_cleanup_threshold is set very low, which may 
cause performance degradation);
-
-if (conf.memtable_flush_writers  1)
-throw new ConfigurationException(memtable_flush_writers must be 
at least 1);
 
 /* Local IP or hostname to bind services to */
 if (conf.listen_address != null)
@@ -486,9 +477,19 @@ public class DatabaseDescriptor
 if (conf.memtable_flush_writers == null)
 conf.memtable_flush_writers = Math.min(8, Math.max(2, 
Math.min(FBUtilities.getAvailableProcessors(), 
conf.data_file_directories.length)));
 
+if (conf.memtable_flush_writers  1)
+throw new ConfigurationException(memtable_flush_writers must be 
at least 1);
+
 if (conf.memtable_cleanup_threshold == null)
 conf.memtable_cleanup_threshold = (float) (1.0 / (1 + 
conf.memtable_flush_writers));
 
+if (conf.memtable_cleanup_threshold  0.01f)
+throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.01);
+if (conf.memtable_cleanup_threshold  0.99f)
+throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.99);
+if (conf.memtable_cleanup_threshold  0.1f)
+logger.warn(memtable_cleanup_threshold is set very low, which may 
cause performance degradation);
+
 if (conf.concurrent_compactors == null)
 conf.concurrent_compactors = Math.min(8, Math.max(2, 
Math.min(FBUtilities.getAvailableProcessors(), 
conf.data_file_directories.length)));
 



[1/6] git commit: reorder to avoid NPE

2014-07-15 Thread jbellis
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 1366c0ad5 - f9dbc10db
  refs/heads/cassandra-2.1.0 233bd3c03 - fad5ad5a6
  refs/heads/trunk 2d0cae4f0 - e240e515f


reorder to avoid NPE


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

Branch: refs/heads/cassandra-2.1
Commit: fad5ad5a6af5a9ed2954a6395149f0ca95d34603
Parents: 233bd3c
Author: Jonathan Ellis jbel...@apache.org
Authored: Tue Jul 15 16:19:25 2014 -0500
Committer: Jonathan Ellis jbel...@apache.org
Committed: Tue Jul 15 16:19:25 2014 -0500

--
 .../cassandra/config/DatabaseDescriptor.java | 19 ++-
 1 file changed, 10 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fad5ad5a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
--
diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index d56bfe3..d89967d 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -288,15 +288,6 @@ public class DatabaseDescriptor
 logger.info(Global memtable off-heap threshold is disabled, 
HeapAllocator will be used instead);
 else
 logger.info(Global memtable off-heap threshold is enabled at 
{}MB, conf.memtable_offheap_space_in_mb);
-if (conf.memtable_cleanup_threshold  0.01f)
-throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.01);
-if (conf.memtable_cleanup_threshold  0.99f)
-throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.99);
-if (conf.memtable_cleanup_threshold  0.1f)
-logger.warn(memtable_cleanup_threshold is set very low, which may 
cause performance degradation);
-
-if (conf.memtable_flush_writers  1)
-throw new ConfigurationException(memtable_flush_writers must be 
at least 1);
 
 /* Local IP or hostname to bind services to */
 if (conf.listen_address != null)
@@ -486,9 +477,19 @@ public class DatabaseDescriptor
 if (conf.memtable_flush_writers == null)
 conf.memtable_flush_writers = Math.min(8, Math.max(2, 
Math.min(FBUtilities.getAvailableProcessors(), 
conf.data_file_directories.length)));
 
+if (conf.memtable_flush_writers  1)
+throw new ConfigurationException(memtable_flush_writers must be 
at least 1);
+
 if (conf.memtable_cleanup_threshold == null)
 conf.memtable_cleanup_threshold = (float) (1.0 / (1 + 
conf.memtable_flush_writers));
 
+if (conf.memtable_cleanup_threshold  0.01f)
+throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.01);
+if (conf.memtable_cleanup_threshold  0.99f)
+throw new ConfigurationException(memtable_cleanup_threshold must 
be = 0.99);
+if (conf.memtable_cleanup_threshold  0.1f)
+logger.warn(memtable_cleanup_threshold is set very low, which may 
cause performance degradation);
+
 if (conf.concurrent_compactors == null)
 conf.concurrent_compactors = Math.min(8, Math.max(2, 
Math.min(FBUtilities.getAvailableProcessors(), 
conf.data_file_directories.length)));
 



[jira] [Assigned] (CASSANDRA-7552) Compactions Pending build up when using LCS

2014-07-15 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis reassigned CASSANDRA-7552:
-

Assignee: Yuki Morishita

 Compactions Pending build up when using LCS
 ---

 Key: CASSANDRA-7552
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7552
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Darla Baker
Assignee: Yuki Morishita

 We seem to be hitting an issue with LeveledCompactionStrategy while running 
 performance tests on a 4 node cassandra installation. We are currently using 
 Cassandra 2.0.7.
 In summary, we run a tests consisting of approximatively, 8000 inserts/sec, 
 16,000 gets/sec, and 8,000 deletes/sec. We have a grace period of 12 hours on 
 our column families.
 At this rate, we observe a stable pending compaction tasks for about 22 to 26 
 hours. After that period, something happens and the pending compaction tasks 
 starts to increase rapidly, sometimes on one or two servers, but sometimes on 
 all four of them. This goes on until the uncompacted SStables start consuming 
 all the disk space, after which the cassandra cluster generally fails.
 When this occurs, the Compaction completed tasks rate is usually reducing 
 over time, which seems to indicate that it takes more and more time to run 
 the existing compaction tasks.
 At different occasions, I can reproduce a similar issue in less than 12 
 hours. While the traffic rate remains constant, we seem to be hitting this at 
 various intervals. Yesterday I could reproduce in less than 6 hours.
 We have two different deployments on which we have tested this issue: 
 1. 4x IBM HS22, using RAMDISK as cassandra data directory (thus eliminating 
 disk I/O) 
 2. 8x IBM HS23, with SSD disks, deployed in two geo-redundant data centers 
 of 4 nodes each, and a latency of 50ms between the data centers.
 I can reproduce the compaction tasks falling behind on both these setup, 
 although they could be occurring for different reasons. Because of #1, I do 
 not believe we are hitting an I/O bottleneck just yet.
 As an additional interesting node, if I artificially pause the traffic when I 
 see the pending compaction task issue occurring, then: 
 1. The pending compaction tasks obviously stops to increase, but stay at the 
 same number for 15 minutes (as if nothing is running). 
 2. The completed compaction tasks falls to 0 for 15 minutes 
 3. After 15 to 20 minutes, out of the blue, all compaction completes in less 
 than 2 minutes.
 If I restart the traffic after that, the system is stable for a few hours, 
 but the issue always comes back.
 We have written a small test tool that reproduce our application's Cassandra 
 interaction.
 We have not successfully run a test for more than 30 hours under load, and 
 every failure after that time would follow a similar pattern.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7395) Support for pure user-defined functions (UDF)

2014-07-15 Thread Robert Stupp (JIRA)

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

Robert Stupp updated CASSANDRA-7395:


Attachment: (was: 7395.txt)

 Support for pure user-defined functions (UDF)
 -

 Key: CASSANDRA-7395
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7395
 Project: Cassandra
  Issue Type: New Feature
  Components: API, Core
Reporter: Jonathan Ellis
  Labels: cql
 Fix For: 3.0


 We have some tickets for various aspects of UDF (CASSANDRA-4914, 
 CASSANDRA-5970, CASSANDRA-4998) but they all suffer from various degrees of 
 ocean-boiling.
 Let's start with something simple: allowing pure user-defined functions in 
 the SELECT clause of a CQL query.  That's it.
 By pure I mean, must depend only on the input parameters.  No side effects. 
  No exposure to C* internals.  Column values in, result out.  
 http://en.wikipedia.org/wiki/Pure_function



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7395) Support for pure user-defined functions (UDF)

2014-07-15 Thread Robert Stupp (JIRA)

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

Robert Stupp updated CASSANDRA-7395:


Attachment: 7395.txt

new patch with support for UDFs as Java source using javassist

Syntax:
{noformat}
CREATE OR REPLACE FUNCTION double foobar(val double) AS JAVA
BODY
  // parameter val is of type java.lang.Double
  /* return type is of type java.lang.Double */
  if (val == null) {
return null;
  }
  double v = Math.sin( val.doubleValue() );
  return Double.valueOf(v);
END BODY;
{noformat}
But does not work with cqlsh (cqlsh needs to be changed to support ';' inside 
statements / CREATE BUNDLE/FUNCTION syntax not yet in cqlsh).

Next steps:
* code cleanup (validate UDFs upon statement execution before writing to 
system KS table)
* unit tests

 Support for pure user-defined functions (UDF)
 -

 Key: CASSANDRA-7395
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7395
 Project: Cassandra
  Issue Type: New Feature
  Components: API, Core
Reporter: Jonathan Ellis
  Labels: cql
 Fix For: 3.0

 Attachments: 7395.txt


 We have some tickets for various aspects of UDF (CASSANDRA-4914, 
 CASSANDRA-5970, CASSANDRA-4998) but they all suffer from various degrees of 
 ocean-boiling.
 Let's start with something simple: allowing pure user-defined functions in 
 the SELECT clause of a CQL query.  That's it.
 By pure I mean, must depend only on the input parameters.  No side effects. 
  No exposure to C* internals.  Column values in, result out.  
 http://en.wikipedia.org/wiki/Pure_function



--
This message was sent by Atlassian JIRA
(v6.2#6252)


buildbot success in ASF Buildbot on cassandra-2.1

2014-07-15 Thread buildbot
The Buildbot has detected a restored build on builder cassandra-2.1 while 
building cassandra.
Full details are available at:
 http://ci.apache.org/builders/cassandra-2.1/builds/242

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: portunus_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch cassandra-2.1] 
f9dbc10db3046a783c601833ceb8f2ad0115e95e
Blamelist: Jonathan Ellis jbel...@apache.org

Build succeeded!

sincerely,
 -The Buildbot





[jira] [Commented] (CASSANDRA-7552) Compactions Pending build up when using LCS

2014-07-15 Thread Yuki Morishita (JIRA)

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

Yuki Morishita commented on CASSANDRA-7552:
---

Number of compaction pending tasks in LCS is estimated from total bytes of 
SSTable files in each level so that lower levels get more 'pending tasks' than 
higher level to show compaction is 
behind(https://github.com/apache/cassandra/blob/cassandra-2.0.7/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java#L526).
I guess you have more writes that pile many SSTables on L0 than node with LCS 
can handle.

Check your SSTable level distibution using nodetool cfstats.

 Compactions Pending build up when using LCS
 ---

 Key: CASSANDRA-7552
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7552
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Darla Baker
Assignee: Yuki Morishita

 We seem to be hitting an issue with LeveledCompactionStrategy while running 
 performance tests on a 4 node cassandra installation. We are currently using 
 Cassandra 2.0.7.
 In summary, we run a tests consisting of approximatively, 8000 inserts/sec, 
 16,000 gets/sec, and 8,000 deletes/sec. We have a grace period of 12 hours on 
 our column families.
 At this rate, we observe a stable pending compaction tasks for about 22 to 26 
 hours. After that period, something happens and the pending compaction tasks 
 starts to increase rapidly, sometimes on one or two servers, but sometimes on 
 all four of them. This goes on until the uncompacted SStables start consuming 
 all the disk space, after which the cassandra cluster generally fails.
 When this occurs, the Compaction completed tasks rate is usually reducing 
 over time, which seems to indicate that it takes more and more time to run 
 the existing compaction tasks.
 At different occasions, I can reproduce a similar issue in less than 12 
 hours. While the traffic rate remains constant, we seem to be hitting this at 
 various intervals. Yesterday I could reproduce in less than 6 hours.
 We have two different deployments on which we have tested this issue: 
 1. 4x IBM HS22, using RAMDISK as cassandra data directory (thus eliminating 
 disk I/O) 
 2. 8x IBM HS23, with SSD disks, deployed in two geo-redundant data centers 
 of 4 nodes each, and a latency of 50ms between the data centers.
 I can reproduce the compaction tasks falling behind on both these setup, 
 although they could be occurring for different reasons. Because of #1, I do 
 not believe we are hitting an I/O bottleneck just yet.
 As an additional interesting node, if I artificially pause the traffic when I 
 see the pending compaction task issue occurring, then: 
 1. The pending compaction tasks obviously stops to increase, but stay at the 
 same number for 15 minutes (as if nothing is running). 
 2. The completed compaction tasks falls to 0 for 15 minutes 
 3. After 15 to 20 minutes, out of the blue, all compaction completes in less 
 than 2 minutes.
 If I restart the traffic after that, the system is stable for a few hours, 
 but the issue always comes back.
 We have written a small test tool that reproduce our application's Cassandra 
 interaction.
 We have not successfully run a test for more than 30 hours under load, and 
 every failure after that time would follow a similar pattern.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7509) conditional updates don't work from cqlsh

2014-07-15 Thread Tyler Hobbs (JIRA)

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

Tyler Hobbs updated CASSANDRA-7509:
---

Attachment: 7509-v2.txt

7509-v2.txt (and [branch|https://github.com/datastax/python-driver]) upgrades 
to the latest python driver and removes the cqlsh patches that I mentioned.

 conditional updates don't work from cqlsh
 -

 Key: CASSANDRA-7509
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7509
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Jeremiah Jordan
Assignee: Mikhail Stepura
Priority: Blocker
 Fix For: 2.1.0

 Attachments: 7509-v2.txt, CASSANDRA-2.1.0-7509.patch


 {noformat}
 apache-cassandra-2.1.0-rc2/bin $ ./cqlsh
 Connected to Test Cluster at 127.0.0.1:9042.
 [cqlsh 5.0.1 | Cassandra 2.1.0-rc2 | CQL spec 3.1.7 | Native protocol v3]
 Use HELP for help.
 cqlsh use ks1;
 cqlsh:ks1 create table users(
... userID uuid,
... fname text,
... lname text,
... email text,
... address text,
... zip int,
... state text,
... PRIMARY KEY ((userID, fname), state)
... );
 cqlsh:ks1 insert into users (userID, fname, state, email) VALUES 
 (cfd66ccc-d857-4e90-b1e5-df98a3d40cd6, 'laura', 'ca', 'lau...@gmail.com') if 
 not exists;
 code=2200 [Invalid query] message=Conditional updates are not supported by 
 the protocol version in use. You need to upgrade to a driver using the native 
 protocol v2.
 cqlsh:ks1
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7509) conditional updates don't work from cqlsh

2014-07-15 Thread Aleksey Yeschenko (JIRA)

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

Aleksey Yeschenko updated CASSANDRA-7509:
-

Reviewer: Aleksey Yeschenko  (was: Tyler Hobbs)

 conditional updates don't work from cqlsh
 -

 Key: CASSANDRA-7509
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7509
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Jeremiah Jordan
Assignee: Mikhail Stepura
Priority: Blocker
 Fix For: 2.1.0

 Attachments: 7509-v2.txt, CASSANDRA-2.1.0-7509.patch


 {noformat}
 apache-cassandra-2.1.0-rc2/bin $ ./cqlsh
 Connected to Test Cluster at 127.0.0.1:9042.
 [cqlsh 5.0.1 | Cassandra 2.1.0-rc2 | CQL spec 3.1.7 | Native protocol v3]
 Use HELP for help.
 cqlsh use ks1;
 cqlsh:ks1 create table users(
... userID uuid,
... fname text,
... lname text,
... email text,
... address text,
... zip int,
... state text,
... PRIMARY KEY ((userID, fname), state)
... );
 cqlsh:ks1 insert into users (userID, fname, state, email) VALUES 
 (cfd66ccc-d857-4e90-b1e5-df98a3d40cd6, 'laura', 'ca', 'lau...@gmail.com') if 
 not exists;
 code=2200 [Invalid query] message=Conditional updates are not supported by 
 the protocol version in use. You need to upgrade to a driver using the native 
 protocol v2.
 cqlsh:ks1
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


git commit: Bump CQL version to 3.2.0 and update CQL docs

2014-07-15 Thread tylerhobbs
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1.0 fad5ad5a6 - e60b4e6d1


Bump CQL version to 3.2.0 and update CQL docs

Patch by Tyler Hobbs; reviewed by Aleksey Yeschenko for CASSANDRA-7527


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

Branch: refs/heads/cassandra-2.1.0
Commit: e60b4e6d1d8fb94586ec3e277e77a6d2aef0be2e
Parents: fad5ad5
Author: Tyler Hobbs ty...@datastax.com
Authored: Tue Jul 15 18:18:15 2014 -0500
Committer: Tyler Hobbs ty...@datastax.com
Committed: Tue Jul 15 18:18:15 2014 -0500

--
 CHANGES.txt |   1 +
 bin/cqlsh   |   2 +-
 doc/cql3/CQL.textile| 137 +--
 .../apache/cassandra/cql3/QueryProcessor.java   |   2 +-
 4 files changed, 127 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e60b4e6d/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index b20c465..db66bf9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -4,6 +4,7 @@
  * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
  * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
  * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)
+ * Bump CQL version to 3.2.0 and update CQL documentation (CASSANDRA-7527)
 Merged from 2.0:
  * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
  * Fix range merging when DES scores are zero (CASSANDRA-7535)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e60b4e6d/bin/cqlsh
--
diff --git a/bin/cqlsh b/bin/cqlsh
index c3a4ea6..53f0c7c 100755
--- a/bin/cqlsh
+++ b/bin/cqlsh
@@ -139,7 +139,7 @@ if os.path.exists(OLD_HISTORY):
 
 DEFAULT_HOST = '127.0.0.1'
 DEFAULT_PORT = 9042
-DEFAULT_CQLVER = '3.1.7'
+DEFAULT_CQLVER = '3.2.0'
 
 DEFAULT_TIME_FORMAT = '%Y-%m-%d %H:%M:%S%z'
 DEFAULT_FLOAT_PRECISION = 5

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e60b4e6d/doc/cql3/CQL.textile
--
diff --git a/doc/cql3/CQL.textile b/doc/cql3/CQL.textile
index 0c1d2b9..2d45cf1 100644
--- a/doc/cql3/CQL.textile
+++ b/doc/cql3/CQL.textile
@@ -1,6 +1,6 @@
 link rel=StyleSheet href=CQL.css type=text/css media=screen
 
-h1. Cassandra Query Language (CQL) v3.1.7
+h1. Cassandra Query Language (CQL) v3.2.0
 
 
  span id=tableOfContents
@@ -216,7 +216,7 @@ __Syntax:__
 
 bc(syntax).. 
 create-table-stmt ::= CREATE ( TABLE | COLUMNFAMILY ) ( IF NOT EXISTS )? 
tablename
-  '(' definition ( ',' definition )* ')'
+  '(' column-definition ( ',' column-definition )* 
')'
   ( WITH option ( AND option)* )?
 
 column-definition ::= identifier type ( STATIC )? ( PRIMARY KEY )?
@@ -255,7 +255,7 @@ Attempting to create an already existing table will return 
an error unless the @
 
 h4(#createTableName). @tablename@
 
-Valid table names are the same than valid keyspace names:#createKeyspaceStmt 
(up to 32 characters long alphanumerical identifiers). If the table name is 
provided alone, the table is created within the current keyspace (see a 
href=#useStmtttUSE/tt/a), but if it is prefixed by an existing 
keyspace name (see @tablename@:#statements grammar), it is created in the 
specified keyspace (but does *not* change the current keyspace).
+Valid table names are the same as valid keyspace names:#createKeyspaceStmt 
(up to 32 characters long alphanumerical identifiers). If the table name is 
provided alone, the table is created within the current keyspace (see a 
href=#useStmtttUSE/tt/a), but if it is prefixed by an existing 
keyspace name (see @tablename@:#statements grammar), it is created in the 
specified keyspace (but does *not* change the current keyspace).
 
 
 h4(#createTableColumn). @column-definition@
@@ -385,7 +385,7 @@ ALTER TABLE addamsFamily
 WITH comment = 'A most excellent and useful column family'
  AND read_repair_chance = 0.2;
 p. 
-The @ALTER@ statement is used to manipulate table definitions. It allows to 
add new columns, drop existing ones, change the type of existing columns, or 
update the table options. As for table creation, @ALTER COLUMNFAMILY@ is 
allowed as an alias for @ALTER TABLE@.
+The @ALTER@ statement is used to manipulate table definitions. It allows for 
adding new columns, dropping existing ones, changing the type of existing 
columns, or updating the table options. As with table creation, 

[1/2] git commit: Bump CQL version to 3.2.0 and update CQL docs

2014-07-15 Thread tylerhobbs
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 f9dbc10db - fbe9630d0


Bump CQL version to 3.2.0 and update CQL docs

Patch by Tyler Hobbs; reviewed by Aleksey Yeschenko for CASSANDRA-7527


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

Branch: refs/heads/cassandra-2.1
Commit: e60b4e6d1d8fb94586ec3e277e77a6d2aef0be2e
Parents: fad5ad5
Author: Tyler Hobbs ty...@datastax.com
Authored: Tue Jul 15 18:18:15 2014 -0500
Committer: Tyler Hobbs ty...@datastax.com
Committed: Tue Jul 15 18:18:15 2014 -0500

--
 CHANGES.txt |   1 +
 bin/cqlsh   |   2 +-
 doc/cql3/CQL.textile| 137 +--
 .../apache/cassandra/cql3/QueryProcessor.java   |   2 +-
 4 files changed, 127 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e60b4e6d/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index b20c465..db66bf9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -4,6 +4,7 @@
  * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
  * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
  * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)
+ * Bump CQL version to 3.2.0 and update CQL documentation (CASSANDRA-7527)
 Merged from 2.0:
  * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
  * Fix range merging when DES scores are zero (CASSANDRA-7535)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e60b4e6d/bin/cqlsh
--
diff --git a/bin/cqlsh b/bin/cqlsh
index c3a4ea6..53f0c7c 100755
--- a/bin/cqlsh
+++ b/bin/cqlsh
@@ -139,7 +139,7 @@ if os.path.exists(OLD_HISTORY):
 
 DEFAULT_HOST = '127.0.0.1'
 DEFAULT_PORT = 9042
-DEFAULT_CQLVER = '3.1.7'
+DEFAULT_CQLVER = '3.2.0'
 
 DEFAULT_TIME_FORMAT = '%Y-%m-%d %H:%M:%S%z'
 DEFAULT_FLOAT_PRECISION = 5

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e60b4e6d/doc/cql3/CQL.textile
--
diff --git a/doc/cql3/CQL.textile b/doc/cql3/CQL.textile
index 0c1d2b9..2d45cf1 100644
--- a/doc/cql3/CQL.textile
+++ b/doc/cql3/CQL.textile
@@ -1,6 +1,6 @@
 link rel=StyleSheet href=CQL.css type=text/css media=screen
 
-h1. Cassandra Query Language (CQL) v3.1.7
+h1. Cassandra Query Language (CQL) v3.2.0
 
 
  span id=tableOfContents
@@ -216,7 +216,7 @@ __Syntax:__
 
 bc(syntax).. 
 create-table-stmt ::= CREATE ( TABLE | COLUMNFAMILY ) ( IF NOT EXISTS )? 
tablename
-  '(' definition ( ',' definition )* ')'
+  '(' column-definition ( ',' column-definition )* 
')'
   ( WITH option ( AND option)* )?
 
 column-definition ::= identifier type ( STATIC )? ( PRIMARY KEY )?
@@ -255,7 +255,7 @@ Attempting to create an already existing table will return 
an error unless the @
 
 h4(#createTableName). @tablename@
 
-Valid table names are the same than valid keyspace names:#createKeyspaceStmt 
(up to 32 characters long alphanumerical identifiers). If the table name is 
provided alone, the table is created within the current keyspace (see a 
href=#useStmtttUSE/tt/a), but if it is prefixed by an existing 
keyspace name (see @tablename@:#statements grammar), it is created in the 
specified keyspace (but does *not* change the current keyspace).
+Valid table names are the same as valid keyspace names:#createKeyspaceStmt 
(up to 32 characters long alphanumerical identifiers). If the table name is 
provided alone, the table is created within the current keyspace (see a 
href=#useStmtttUSE/tt/a), but if it is prefixed by an existing 
keyspace name (see @tablename@:#statements grammar), it is created in the 
specified keyspace (but does *not* change the current keyspace).
 
 
 h4(#createTableColumn). @column-definition@
@@ -385,7 +385,7 @@ ALTER TABLE addamsFamily
 WITH comment = 'A most excellent and useful column family'
  AND read_repair_chance = 0.2;
 p. 
-The @ALTER@ statement is used to manipulate table definitions. It allows to 
add new columns, drop existing ones, change the type of existing columns, or 
update the table options. As for table creation, @ALTER COLUMNFAMILY@ is 
allowed as an alias for @ALTER TABLE@.
+The @ALTER@ statement is used to manipulate table definitions. It allows for 
adding new columns, dropping existing ones, changing the type of existing 
columns, or updating the table options. As with table creation, 

  1   2   >