Git Push Summary

2014-02-05 Thread slebresne
Updated Tags:  refs/tags/2.0.5-tentative [deleted] b71372146


Git Push Summary

2014-02-05 Thread slebresne
Updated Tags:  refs/tags/2.0.5-tentative [created] 29670eb66


[jira] [Commented] (CASSANDRA-6648) Race condition during node bootstrapping

2014-02-05 Thread Sergio Bossa (JIRA)

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

Sergio Bossa commented on CASSANDRA-6648:
-

Works for me.

Regarding the Schema.instance.updateVersionAndAnnounce() call inside 
StorageService#joinTokenRing, it's definitely race-prone with regard to 
Gossiper notifications causing a major state change and a schema update (which 
I reproduced by using breakpoints on the two concurrent threads): but, even if 
a lost update can occur and re-establish an empty version, I verified the 
correct schema version is later recomputed by another schema pull, hence this 
shouldn't cause any actual problems.

 Race condition during node bootstrapping
 

 Key: CASSANDRA-6648
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6648
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Sergio Bossa
Assignee: Sergio Bossa
Priority: Critical
 Fix For: 1.2.15, 2.0.6

 Attachments: 6648-v2.txt, 6648-v3-1.2.txt, 6648-v3.txt, 
 CASSANDRA-6648.patch


 When bootstrapping a new node, data is missing as if the new node didn't 
 actually bootstrap, which I tracked down to the following scenario:
 1) New node joins token ring and waits for schema to be settled before 
 actually bootstrapping.
 2) The schema scheck somewhat passes and it starts bootstrapping.
 3) Bootstrapping doesn't find the ks/cf that should have received from the 
 other node.
 4) Queries at this point cause NPEs, until when later they recover but data 
 is missed.
 The problem seems to be caused by a race condition between the migration 
 manager and the bootstrapper, with the former running after the latter.
 I think this is supposed to protect against such scenarios:
 {noformat}
 while (!MigrationManager.isReadyForBootstrap())
 {
 setMode(Mode.JOINING, waiting for schema information to 
 complete, true);
 Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS);
 }
 {noformat}
 But MigrationManager.isReadyForBootstrap() implementation is quite fragile 
 and doesn't take into account slow schema propagation.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (CASSANDRA-6652) Stop CommitLogSegment.close() from unnecessarily calling sync() prior to cleaning the buffer

2014-02-05 Thread Benedict (JIRA)
Benedict created CASSANDRA-6652:
---

 Summary: Stop CommitLogSegment.close() from unnecessarily calling 
sync() prior to cleaning the buffer
 Key: CASSANDRA-6652
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6652
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Priority: Minor


What it says on the tin. Currently CLS.close() calls sync() before cleaning the 
buffer, which may result in unnecessary IO, but also in the case of a failure 
on the commit disk may prevent CLS from being discarded, or in the case of a 
faulty file may prevent any progress on reclaiming CLS.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6652) Stop CommitLogSegment.close() from unnecessarily calling sync() prior to cleaning the buffer

2014-02-05 Thread Benedict (JIRA)

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

Benedict updated CASSANDRA-6652:


Attachment: tmp-2.0.patch

 Stop CommitLogSegment.close() from unnecessarily calling sync() prior to 
 cleaning the buffer
 

 Key: CASSANDRA-6652
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6652
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Priority: Minor
 Attachments: tmp-2.0.patch


 What it says on the tin. Currently CLS.close() calls sync() before cleaning 
 the buffer, which may result in unnecessary IO, but also in the case of a 
 failure on the commit disk may prevent CLS from being discarded, or in the 
 case of a faulty file may prevent any progress on reclaiming CLS.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6652) Stop CommitLogSegment.close() from unnecessarily calling sync() prior to cleaning the buffer

2014-02-05 Thread Benedict (JIRA)

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

Benedict updated CASSANDRA-6652:


Attachment: (was: tmp-2.0.patch)

 Stop CommitLogSegment.close() from unnecessarily calling sync() prior to 
 cleaning the buffer
 

 Key: CASSANDRA-6652
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6652
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Priority: Minor
 Attachments: tmp-2.0.patch


 What it says on the tin. Currently CLS.close() calls sync() before cleaning 
 the buffer, which may result in unnecessary IO, but also in the case of a 
 failure on the commit disk may prevent CLS from being discarded, or in the 
 case of a faulty file may prevent any progress on reclaiming CLS.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6652) Stop CommitLogSegment.close() from unnecessarily calling sync() prior to cleaning the buffer

2014-02-05 Thread Benedict (JIRA)

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

Benedict updated CASSANDRA-6652:


Attachment: tmp-2.0.patch

 Stop CommitLogSegment.close() from unnecessarily calling sync() prior to 
 cleaning the buffer
 

 Key: CASSANDRA-6652
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6652
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Priority: Minor
 Attachments: tmp-2.0.patch


 What it says on the tin. Currently CLS.close() calls sync() before cleaning 
 the buffer, which may result in unnecessary IO, but also in the case of a 
 failure on the commit disk may prevent CLS from being discarded, or in the 
 case of a faulty file may prevent any progress on reclaiming CLS.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6652) Stop CommitLogSegment.close() from unnecessarily calling sync() prior to cleaning the buffer

2014-02-05 Thread Benedict (JIRA)

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

Benedict updated CASSANDRA-6652:


Attachment: (was: tmp-2.0.patch)

 Stop CommitLogSegment.close() from unnecessarily calling sync() prior to 
 cleaning the buffer
 

 Key: CASSANDRA-6652
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6652
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Priority: Minor
 Attachments: tmp-2.0.patch


 What it says on the tin. Currently CLS.close() calls sync() before cleaning 
 the buffer, which may result in unnecessary IO, but also in the case of a 
 failure on the commit disk may prevent CLS from being discarded, or in the 
 case of a faulty file may prevent any progress on reclaiming CLS.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6652) Stop CommitLogSegment.close() from unnecessarily calling sync() prior to cleaning the buffer

2014-02-05 Thread Benedict (JIRA)

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

Benedict updated CASSANDRA-6652:


Attachment: tmp-2.0.patch

 Stop CommitLogSegment.close() from unnecessarily calling sync() prior to 
 cleaning the buffer
 

 Key: CASSANDRA-6652
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6652
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Priority: Minor
 Attachments: tmp-2.0.patch


 What it says on the tin. Currently CLS.close() calls sync() before cleaning 
 the buffer, which may result in unnecessary IO, but also in the case of a 
 failure on the commit disk may prevent CLS from being discarded, or in the 
 case of a faulty file may prevent any progress on reclaiming CLS.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6652) Stop CommitLogSegment.close() from unnecessarily calling sync() prior to cleaning the buffer

2014-02-05 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-6652:
-

Attaching a patch that solves this problem for 2.0.4, and also tries 
particularly hard to make sure the file is zeroed/unreadable by replay in the 
event that we fail to delete it.

 Stop CommitLogSegment.close() from unnecessarily calling sync() prior to 
 cleaning the buffer
 

 Key: CASSANDRA-6652
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6652
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Priority: Minor
 Attachments: tmp-2.0.patch


 What it says on the tin. Currently CLS.close() calls sync() before cleaning 
 the buffer, which may result in unnecessary IO, but also in the case of a 
 failure on the commit disk may prevent CLS from being discarded, or in the 
 case of a faulty file may prevent any progress on reclaiming CLS.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6652) Stop CommitLogSegment.close() from unnecessarily calling sync() prior to cleaning the buffer

2014-02-05 Thread Benedict (JIRA)

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

Benedict updated CASSANDRA-6652:


Attachment: tmp2-2.0.patch

New version with messages attempting remedial action after failed delete 
logging messages at error level.

 Stop CommitLogSegment.close() from unnecessarily calling sync() prior to 
 cleaning the buffer
 

 Key: CASSANDRA-6652
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6652
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Priority: Minor
 Attachments: tmp-2.0.patch, tmp2-2.0.patch


 What it says on the tin. Currently CLS.close() calls sync() before cleaning 
 the buffer, which may result in unnecessary IO, but also in the case of a 
 failure on the commit disk may prevent CLS from being discarded, or in the 
 case of a faulty file may prevent any progress on reclaiming CLS.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6648) Race condition during node bootstrapping

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-6648:


Reproduced In: 1.2.14  (was: 1.2.14, 2.0.4)

 Race condition during node bootstrapping
 

 Key: CASSANDRA-6648
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6648
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Sergio Bossa
Assignee: Sergio Bossa
Priority: Critical
 Fix For: 1.2.15, 2.0.6

 Attachments: 6648-v2.txt, 6648-v3-1.2.txt, 6648-v3.txt, 
 CASSANDRA-6648.patch


 When bootstrapping a new node, data is missing as if the new node didn't 
 actually bootstrap, which I tracked down to the following scenario:
 1) New node joins token ring and waits for schema to be settled before 
 actually bootstrapping.
 2) The schema scheck somewhat passes and it starts bootstrapping.
 3) Bootstrapping doesn't find the ks/cf that should have received from the 
 other node.
 4) Queries at this point cause NPEs, until when later they recover but data 
 is missed.
 The problem seems to be caused by a race condition between the migration 
 manager and the bootstrapper, with the former running after the latter.
 I think this is supposed to protect against such scenarios:
 {noformat}
 while (!MigrationManager.isReadyForBootstrap())
 {
 setMode(Mode.JOINING, waiting for schema information to 
 complete, true);
 Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS);
 }
 {noformat}
 But MigrationManager.isReadyForBootstrap() implementation is quite fragile 
 and doesn't take into account slow schema propagation.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6648) Race condition during node bootstrapping

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-6648:


Fix Version/s: (was: 2.0.6)
   2.0.5

 Race condition during node bootstrapping
 

 Key: CASSANDRA-6648
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6648
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Sergio Bossa
Assignee: Sergio Bossa
Priority: Critical
 Fix For: 1.2.15, 2.0.5

 Attachments: 6648-v2.txt, 6648-v3-1.2.txt, 6648-v3.txt, 
 CASSANDRA-6648.patch


 When bootstrapping a new node, data is missing as if the new node didn't 
 actually bootstrap, which I tracked down to the following scenario:
 1) New node joins token ring and waits for schema to be settled before 
 actually bootstrapping.
 2) The schema scheck somewhat passes and it starts bootstrapping.
 3) Bootstrapping doesn't find the ks/cf that should have received from the 
 other node.
 4) Queries at this point cause NPEs, until when later they recover but data 
 is missed.
 The problem seems to be caused by a race condition between the migration 
 manager and the bootstrapper, with the former running after the latter.
 I think this is supposed to protect against such scenarios:
 {noformat}
 while (!MigrationManager.isReadyForBootstrap())
 {
 setMode(Mode.JOINING, waiting for schema information to 
 complete, true);
 Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS);
 }
 {noformat}
 But MigrationManager.isReadyForBootstrap() implementation is quite fragile 
 and doesn't take into account slow schema propagation.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-5323) Revisit disabled dtests

2014-02-05 Thread Michael Shuler (JIRA)

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

Michael Shuler commented on CASSANDRA-5323:
---

17:32  driftx I feel like notification about simple bootstrap test would've 
caught 6648 but was masked by 
all the other crap
17:33  exlt ok - we'll look at those

 Revisit disabled dtests
 ---

 Key: CASSANDRA-5323
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5323
 Project: Cassandra
  Issue Type: Test
Reporter: Ryan McGuire
Assignee: Michael Shuler

 The following dtests are disabled in buildbot, if they can be re-enabled 
 great, if they can't can they be fixed? 
 upgrade|decommission|sstable_gen|global_row|putget_2dc|cql3_insert



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (CASSANDRA-6653) Attempting to bootstrap causes nodes to lock up in GC

2014-02-05 Thread Keith Wright (JIRA)
Keith Wright created CASSANDRA-6653:
---

 Summary: Attempting to bootstrap causes nodes to lock up in GC
 Key: CASSANDRA-6653
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6653
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: VNodes using Murmur3
Reporter: Keith Wright


We have been struggling with the inability to bootstrap nodes into our 1.2.13 
environment with Vnodes using centos 6.4 with Java 7.  We have an 8 node 
cluster (32 GB RAM, dual hex core, SSDs, 8 GB heap with 1200 MB eden space, 
RF3) with around 1 TB per node using murmur3.   When we go to bootstrap a new 
node this is what we see:
Bootstrapping node assigns tokens and requests data from cluster
5-6 nodes within the cluster begin to stream data
Around 2 minutes after bootstrap start, between 1 and 4 nodes (sometimes the 
bootstrapping node and sometimes not) become unresponsive in par new GCs
IF no nodes go down during the first 5 minutes of bootstrap, then the bootstrap 
will succeed without issue
GC mired nodes tend to recover after a minute or two but the receiving node 
stops attempting to get more data from the nodes 
Bootstrap eventually fails (after streaming all the data from nodes that did 
not go down) with Unable to Fetch Ranges
We have tried the following and it appears that sometimes a bootstrap will 
succeed (perhaps 1 in 10) but with no discernible pattern:
Increase phi_convict to 16
Restart all nodes prior to bootstrap (to ensure heap is as “clean” as possible)
Stop production load against the cluster (to reduce par new churn); after 5 
minutes we know if the bootstrap will succeed so we then re-enable load
Distribute soft interrupts across all CPUs
Below is an output from the GC log of the bootstrapping node when it was stuck 
in GC.

This is our production cluster and our inability to grow is a BLOCKING issue 
for us.  Any ideas would be VERY helpful.

Thanks

Relevant portion of GC log from bootstrapping node:

{Heap before GC invocations=109 (full 0):
 par new generation   total 1105920K, used 1021140K [0x0005fae0, 
0x000645e0, 0x000645e0)
  eden space 983040K, 100% used [0x0005fae0, 0x000636e0, 
0x000636e0)
  from space 122880K,  31% used [0x00063e60, 0x000640b350f0, 
0x000645e0)
  to   space 122880K,   0% used [0x000636e0, 0x000636e0, 
0x00063e60)
 concurrent mark-sweep generation total 7159808K, used 3826815K 
[0x000645e0, 0x0007fae0, 0x0007fae0)
 concurrent-mark-sweep perm gen total 24512K, used 24368K [0x0007fae0, 
0x0007fc5f, 0x0008)
2014-02-05T13:27:49.621+: 210.242: [GC 210.242: [ParNew: 
1021140K-122880K(1105920K), 0.2963210 secs] 4847955K-4024095K(8265728K), 
0.2965270 secs] [Times: user=4.97 sys=0.00, real=0.30 secs] 
Heap after GC invocations=110 (full 0):
 par new generation   total 1105920K, used 122880K [0x0005fae0, 
0x000645e0, 0x000645e0)
  eden space 983040K,   0% used [0x0005fae0, 0x0005fae0, 
0x000636e0)
  from space 122880K, 100% used [0x000636e0, 0x00063e60, 
0x00063e60)
  to   space 122880K,   0% used [0x00063e60, 0x00063e60, 
0x000645e0)
 concurrent mark-sweep generation total 7159808K, used 3901215K 
[0x000645e0, 0x0007fae0, 0x0007fae0)
 concurrent-mark-sweep perm gen total 24512K, used 24368K [0x0007fae0, 
0x0007fc5f, 0x0008)
}
Total time for which application threads were stopped: 0.2968550 seconds
Application time: 1.5953840 seconds
Total time for which application threads were stopped: 0.0002040 seconds
Application time: 0.510 seconds

Relevant portion of GC log from non-bootstrapping node:

{Heap before GC invocations=518 (full 1):
 par new generation   total 1105920K, used 17921K [0x0005fae0, 
0x000645e0, 0x000645e0)
  eden space 983040K,   1% used [0x0005fae0, 0x0005fbf29db8, 
0x000636e0)
  from space 122880K,   0% used [0x000636e0, 0x000636e56938, 
0x00063e60)
  to   space 122880K,   0% used [0x00063e60, 0x00063e60, 
0x000645e0)
 concurrent mark-sweep generation total 7159808K, used 6367511K 
[0x000645e0, 0x0007fae0, 0x0007fae0)
 concurrent-mark-sweep perm gen total 29888K, used 29784K [0x0007fae0, 
0x0007fcb3, 0x0008)
2014-02-04T16:16:44.471+: 945.646: [GC 945.646: [ParNew: 
17921K-364K(1105920K), 0.0090810 secs]945.655: 
[CMS2014-02-04T16:16:48.373+: 949.548: [CMS-concurrent-sweep: 3.938/4.362 
secs] [Times: user=9.10 sys=0.19, real=4.36 secs]
 (concurrent mode failure): 6367540K-4453666K(7159808K), 16.4971830 secs] 
6385433K-4453666K(8265728K), [CMS Perm : 29784K-29740K(29888K)], 

[jira] [Updated] (CASSANDRA-6654) Droppable tombstones are not being removed from LCS table despite being above 20%

2014-02-05 Thread Keith Wright (JIRA)

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

Keith Wright updated CASSANDRA-6654:


Attachment: Screen Shot 2014-02-05 at 9.38.20 AM.png

 Droppable tombstones are not being removed from LCS table despite being above 
 20%
 -

 Key: CASSANDRA-6654
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6654
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: 1.2.13 VNodes with murmur3
Reporter: Keith Wright
 Attachments: Screen Shot 2014-02-05 at 9.38.20 AM.png


 JMX is showing that one of our CQL3 LCS tables has a droppable tombstone 
 ratio above 20% and increasing (currently at 28%).  Compactions are not 
 falling behind and we are using the OOTB setting for this feature so I would 
 expect not to go above 20% (will attach screen shot from JMX).   Table 
 description:
 CREATE TABLE global_user (
   user_id timeuuid,
   app_id int,
   type text,
   name text,
   extra_param maptext, text,
   last timestamp,
   paid boolean,
   sku_time maptext, timestamp,
   values maptimestamp, float,
   PRIMARY KEY (user_id, app_id, type, name)
 ) WITH
   bloom_filter_fp_chance=0.10 AND
   caching='KEYS_ONLY' AND
   comment='' AND
   dclocal_read_repair_chance=0.00 AND
   gc_grace_seconds=86400 AND
   read_repair_chance=0.10 AND
   replicate_on_write='true' AND
   populate_io_cache_on_flush='false' AND
   compaction={'sstable_size_in_mb': '160', 'class': 
 'LeveledCompactionStrategy'} AND
   compression={'chunk_length_kb': '8', 'crc_check_chance': '0.1', 
 'sstable_compression': 'LZ4Compressor'}; 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (CASSANDRA-6654) Droppable tombstones are not being removed from LCS table despite being above 20%

2014-02-05 Thread Keith Wright (JIRA)
Keith Wright created CASSANDRA-6654:
---

 Summary: Droppable tombstones are not being removed from LCS table 
despite being above 20%
 Key: CASSANDRA-6654
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6654
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: 1.2.13 VNodes with murmur3
Reporter: Keith Wright


JMX is showing that one of our CQL3 LCS tables has a droppable tombstone ratio 
above 20% and increasing (currently at 28%).  Compactions are not falling 
behind and we are using the OOTB setting for this feature so I would expect not 
to go above 20% (will attach screen shot from JMX).   Table description:

CREATE TABLE global_user (
  user_id timeuuid,
  app_id int,
  type text,
  name text,
  extra_param maptext, text,
  last timestamp,
  paid boolean,
  sku_time maptext, timestamp,
  values maptimestamp, float,
  PRIMARY KEY (user_id, app_id, type, name)
) WITH
  bloom_filter_fp_chance=0.10 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.00 AND
  gc_grace_seconds=86400 AND
  read_repair_chance=0.10 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  compaction={'sstable_size_in_mb': '160', 'class': 
'LeveledCompactionStrategy'} AND
  compression={'chunk_length_kb': '8', 'crc_check_chance': '0.1', 
'sstable_compression': 'LZ4Compressor'}; 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-5357) Query cache / partition head cache

2014-02-05 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-5357:
-

I've pushed an additional commit on top of the branch above at 
https://github.com/pcmanus/cassandra/commits/5357-2 that adds a bunch of 
comments (there is a few subtlety going on here :)), a few minor nits and:
* refactor getThroughCache() a bit so we can maximize the cases where we can 
use a cached partition (typically, if a slice query bounds are fully included 
in cache cf, we know we're good).
* improve a bit the handling of expiring columns: when comparing the number of 
rows in a cached CF to rowsPerPartitionToCache, we should indeed not expire 
columns as this could lead to think we're caching the whole partition when we 
don't, but when comparing checking if the cached CF has enough rows for the 
query filter, we must expire with the query TTL or we might end up return less 
rows than we should (that last part wasn't done by the previous patch).
* make sure we test for !reversed in isHeadFilter()
* I've reverted to CFS.getRawCachedRow and instead have move the decision of 
whether the cached row can be used to RowIteratorFactory. It didn't felt 
particularly logical to do that in getRawCachedRow given nothing in the name of 
the method suggests it, and it allows more easily to maximize the usage of the 
cache for range queries.
* doesn't increment metric.rowCacheHit when the cached value can't be used due 
to the filter, only increment metric.rowCacheHitOutOfRange, as that feels more 
natural to me.

Provided that additional commit looks reasonable, I believe I'm good with this.

bq. I'll to do the row cache - partition cache renaming in a separate ticket

Right. Though now that I think about it, row cache is not all that horrible, it 
does cache rows, it just cache only some number per partition :). Maybe it's 
not worth the pain of a rename. Anyway, I'm good leaving that discussion for 
another time/ticket.

 Query cache / partition head cache
 --

 Key: CASSANDRA-5357
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5357
 Project: Cassandra
  Issue Type: New Feature
Reporter: Jonathan Ellis
Assignee: Marcus Eriksson
 Fix For: 2.1

 Attachments: 0001-Cache-a-configurable-amount-of-columns.patch


 I think that most people expect the row cache to act like a query cache, 
 because that's a reasonable model.  Caching the entire partition is, in 
 retrospect, not really reasonable, so it's not surprising that it catches 
 people off guard, especially given the confusion we've inflicted on ourselves 
 as to what a row constitutes.
 I propose replacing it with a true query cache.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6628) Cassandra crashes on Solaris sparcv9 using java 64bit

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-6628:


Fix Version/s: (was: 2.0.6)
   2.0.5

 Cassandra crashes on Solaris sparcv9 using java 64bit
 -

 Key: CASSANDRA-6628
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6628
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: checked 1.2.x line and 2.0.x
Reporter: Dmitry Shohov
Assignee: Dmitry Shohov
 Fix For: 2.0.5

 Attachments: solaris_unsafe_fix.patch, tmp.patch


 When running cassandra 2.0.4 (and other versions) on Solaris and java 64 bit, 
 JVM crashes. Issue is described once in CASSANDRA-4646 but closed as invalid.
 The reason for this crash is some memory allignment related problems and 
 incorrect sun.misc.Unsafe usage. If you look into DirectByteBuffer in jdk, 
 you will see that it checks os.arch before using getLong methods.
 I have a patch, which check for the os.arch and if it is not one of the 
 known, it reads longs and ints byte by byte.
 Although patch fixes the problem in cassandra, it will still crash without 
 similar fixes in the lz4 library. I already provided the patch for Unsafe 
 usage in lz4.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-5930) Offline scrubs can choke on broken files

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-5930:


Fix Version/s: (was: 2.0.6)
   2.0.5

 Offline scrubs can choke on broken files
 

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

 Attachments: 5930-v1.patch, 5930-v2.patch


 There are cases where offline scrub can hit an exception and die, like:
 {noformat}
 WARNING: Non-fatal error reading row (stacktrace follows)
 Exception in thread main java.io.IOError: java.io.IOError: 
 java.io.EOFException
   at org.apache.cassandra.db.compaction.Scrubber.scrub(Scrubber.java:242)
   at 
 org.apache.cassandra.tools.StandaloneScrubber.main(StandaloneScrubber.java:121)
 Caused by: java.io.IOError: java.io.EOFException
   at 
 org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:116)
   at 
 org.apache.cassandra.db.compaction.PrecompactedRow.init(PrecompactedRow.java:99)
   at 
 org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:176)
   at 
 org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:182)
   at org.apache.cassandra.db.compaction.Scrubber.scrub(Scrubber.java:171)
   ... 1 more
 Caused by: java.io.EOFException
   at java.io.RandomAccessFile.readFully(RandomAccessFile.java:399)
   at java.io.RandomAccessFile.readFully(RandomAccessFile.java:377)
   at 
 org.apache.cassandra.utils.BytesReadTracker.readFully(BytesReadTracker.java:95)
   at 
 org.apache.cassandra.utils.ByteBufferUtil.read(ByteBufferUtil.java:401)
   at 
 org.apache.cassandra.utils.ByteBufferUtil.readWithLength(ByteBufferUtil.java:363)
   at 
 org.apache.cassandra.db.ColumnSerializer.deserialize(ColumnSerializer.java:120)
   at 
 org.apache.cassandra.db.ColumnSerializer.deserialize(ColumnSerializer.java:37)
   at 
 org.apache.cassandra.db.ColumnFamilySerializer.deserializeColumns(ColumnFamilySerializer.java:144)
   at 
 org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:234)
   at 
 org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:112)
   ... 5 more
 {noformat}
 Since the purpose of offline scrub is to fix broken stuff, it should be more 
 resilient to broken stuff...



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-5351) Avoid repairing already-repaired data by default

2014-02-05 Thread Marcus Eriksson (JIRA)

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

Marcus Eriksson commented on CASSANDRA-5351:


Fixed the todos and a few bugs: 
https://github.com/krummas/cassandra/commits/marcuse/5351


 Avoid repairing already-repaired data by default
 

 Key: CASSANDRA-5351
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5351
 Project: Cassandra
  Issue Type: Task
  Components: Core
Reporter: Jonathan Ellis
Assignee: Lyuben Todorov
  Labels: repair
 Fix For: 2.1

 Attachments: 5351_node1.log, 5351_node2.log, 5351_node3.log, 
 5351_nodetool.log


 Repair has always built its merkle tree from all the data in a columnfamily, 
 which is guaranteed to work but is inefficient.
 We can improve this by remembering which sstables have already been 
 successfully repaired, and only repairing sstables new since the last repair. 
  (This automatically makes CASSANDRA-3362 much less of a problem too.)
 The tricky part is, compaction will (if not taught otherwise) mix repaired 
 data together with non-repaired.  So we should segregate unrepaired sstables 
 from the repaired ones.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6648) Race condition during node bootstrapping

2014-02-05 Thread Ryan McGuire (JIRA)

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

Ryan McGuire commented on CASSANDRA-6648:
-

{quote}
Ryan McGuire would be great if you could push that test of yours above as a 
dtest.
{quote}

[Done|https://github.com/riptano/cassandra-dtest/commit/17e8f3f5680f6d78755577d8817b1eeb64b642d8].
 We already have a few different tests to catch this, but all were being masked 
for one reason or another :(

 Race condition during node bootstrapping
 

 Key: CASSANDRA-6648
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6648
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Sergio Bossa
Assignee: Sergio Bossa
Priority: Critical
 Fix For: 1.2.15, 2.0.5

 Attachments: 6648-v2.txt, 6648-v3-1.2.txt, 6648-v3.txt, 
 CASSANDRA-6648.patch


 When bootstrapping a new node, data is missing as if the new node didn't 
 actually bootstrap, which I tracked down to the following scenario:
 1) New node joins token ring and waits for schema to be settled before 
 actually bootstrapping.
 2) The schema scheck somewhat passes and it starts bootstrapping.
 3) Bootstrapping doesn't find the ks/cf that should have received from the 
 other node.
 4) Queries at this point cause NPEs, until when later they recover but data 
 is missed.
 The problem seems to be caused by a race condition between the migration 
 manager and the bootstrapper, with the former running after the latter.
 I think this is supposed to protect against such scenarios:
 {noformat}
 while (!MigrationManager.isReadyForBootstrap())
 {
 setMode(Mode.JOINING, waiting for schema information to 
 complete, true);
 Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS);
 }
 {noformat}
 But MigrationManager.isReadyForBootstrap() implementation is quite fragile 
 and doesn't take into account slow schema propagation.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (CASSANDRA-6655) Writing mostly deletes to a Memtable results in undercounting the table's occupancy so it may not flush

2014-02-05 Thread Benedict (JIRA)
Benedict created CASSANDRA-6655:
---

 Summary: Writing mostly deletes to a Memtable results in 
undercounting the table's occupancy so it may not flush
 Key: CASSANDRA-6655
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6655
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Priority: Minor
 Fix For: 2.0.5


In the extreme case of only deletes the memtable will never flush, and we will 
OOM.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (CASSANDRA-6656) Exception logging

2014-02-05 Thread Ding Yuan (JIRA)
Ding Yuan created CASSANDRA-6656:


 Summary: Exception logging
 Key: CASSANDRA-6656
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6656
 Project: Cassandra
  Issue Type: Improvement
  Components: Core, Tools
Reporter: Ding Yuan
 Fix For: 2.0.4


Reporting a few cases where informative exceptions can be silently swallowed. 
Attaching a proposed patch. 

=
Case 1
  Line: 95, File: org/apache/cassandra/utils/Hex.java

An actual failure in the underlying constructor will be lost.
Propose to log it.

try
{
s = stringConstructor.newInstance(0, c.length, c);
+   }
+   catch (InvocationTargetException ite) {
+   // The underlying constructor failed. Unwrapping the exception.
+   logger.info(Underlying constructor throws exception: , 
ite.getCause());
}
catch (Exception e)
{
// Swallowing as we'll just use a copying constructor
}
return s == null ? new String(c) : s;
==
=
Case 2
  Line: 192, File: org/apache/cassandra/db/marshal/DynamicCompositeType.java

The actual cause of comparator error can be lost as it can fail in multiple 
locations.

AbstractType? comparator = null;
int header = getShortLength(bb);
if ((header  0x8000) == 0)
{
ByteBuffer value = getBytes(bb, header);
try
{
comparator = TypeParser.parse(ByteBufferUtil.string(value));
}
catch (Exception e)
{
--- can fail here
// we'll deal with this below since comparator == null
}
}
else
{
comparator = aliases.get((byte)(header  0xFF));
--- can fail here
}
if (comparator == null)
throw new MarshalException(Cannot find comparator for component  
+ i);

Propose to log the exception.
==
=
Case 3
  Line: 239, File: org/apache/cassandra/tools/NodeProbe.java
Exception ignored in finally. Propose log them with debug or trace.

232: finally
233: {
234: try
235: {
236: ssProxy.removeNotificationListener(runner);
236: ssProxy.removeNotificationListener(runner);
237: jmxc.removeConnectionNotificationListener(runner);
238: }
239: catch (Throwable ignored) {}
240: }

Similar case is at line 264 in the same file.
==



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6656) Exception logging

2014-02-05 Thread Ding Yuan (JIRA)

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

Ding Yuan updated CASSANDRA-6656:
-

Attachment: trunk-6656.txt

 Exception logging
 -

 Key: CASSANDRA-6656
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6656
 Project: Cassandra
  Issue Type: Improvement
  Components: Core, Tools
Reporter: Ding Yuan
 Fix For: 2.0.4

 Attachments: trunk-6656.txt


 Reporting a few cases where informative exceptions can be silently swallowed. 
 Attaching a proposed patch. 
 =
 Case 1
   Line: 95, File: org/apache/cassandra/utils/Hex.java
 An actual failure in the underlying constructor will be lost.
 Propose to log it.
 try
 {
 s = stringConstructor.newInstance(0, c.length, c);
 +   }
 +   catch (InvocationTargetException ite) {
 +   // The underlying constructor failed. Unwrapping the 
 exception.
 +   logger.info(Underlying constructor throws exception: , 
 ite.getCause());
 }
 catch (Exception e)
 {
 // Swallowing as we'll just use a copying constructor
 }
 return s == null ? new String(c) : s;
 ==
 =
 Case 2
   Line: 192, File: org/apache/cassandra/db/marshal/DynamicCompositeType.java
 The actual cause of comparator error can be lost as it can fail in multiple 
 locations.
 AbstractType? comparator = null;
 int header = getShortLength(bb);
 if ((header  0x8000) == 0)
 {
 ByteBuffer value = getBytes(bb, header);
 try
 {
 comparator = TypeParser.parse(ByteBufferUtil.string(value));
 }
 catch (Exception e)
 {
 --- can fail here
 // we'll deal with this below since comparator == null
 }
 }
 else
 {
 comparator = aliases.get((byte)(header  0xFF));
 --- can fail here
 }
 if (comparator == null)
 throw new MarshalException(Cannot find comparator for component 
  + i);
 Propose to log the exception.
 ==
 =
 Case 3
   Line: 239, File: org/apache/cassandra/tools/NodeProbe.java
 Exception ignored in finally. Propose log them with debug or trace.
 232: finally
 233: {
 234: try
 235: {
 236: ssProxy.removeNotificationListener(runner);
 236: ssProxy.removeNotificationListener(runner);
 237: jmxc.removeConnectionNotificationListener(runner);
 238: }
 239: catch (Throwable ignored) {}
 240: }
 Similar case is at line 264 in the same file.
 ==



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


git commit: Remove/update invalid sentences in CQL doc

2014-02-05 Thread slebresne
Updated Branches:
  refs/heads/cassandra-1.2 178e086f1 - 16efdf4a0


Remove/update invalid sentences in CQL doc


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

Branch: refs/heads/cassandra-1.2
Commit: 16efdf4a0300b2499346156fd4e2a8e0785d2690
Parents: 178e086
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 16:32:24 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 16:32:24 2014 +0100

--
 doc/cql3/CQL.textile | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/16efdf4a/doc/cql3/CQL.textile
--
diff --git a/doc/cql3/CQL.textile b/doc/cql3/CQL.textile
index 8b6cb08..b18ce22 100644
--- a/doc/cql3/CQL.textile
+++ b/doc/cql3/CQL.textile
@@ -275,8 +275,6 @@ CREATE TABLE t (
 PRIMARY KEY (k)
 )
 
-Moreover, a table must define at least one column that is not part of the 
PRIMARY KEY as a row exists in Cassandra only if it contains at least one value 
for one such column.
-
 h4(#createTablepartitionClustering). Partition key and clustering columns
 
 In CQL, the order in which columns are defined for the @PRIMARY KEY@ matters. 
The first column of the key is called the __partition key__. It has the 
property that all the rows sharing the same partition key (even across table in 
fact) are stored on the same physical node. Also, insertion/update/deletion on 
rows sharing the same partition key for a given table are performed 
__atomically__ and in __isolation__. Note that it is possible to have a 
composite partition key, i.e. a partition key formed of multiple columns, using 
an extra set of parentheses to define which columns forms the partition key.
@@ -445,7 +443,7 @@ INSERT INTO NerdMovies (movie, director, main_actor, year)
 VALUES ('Serenity', 'Joss Whedon', 'Nathan Fillion', 2005)
 USING TTL 86400;
 
-The @INSERT@ statement writes one or more columns for a given row in a table. 
Note that since a row is identified by its @PRIMARY KEY@, the columns that 
compose it must be specified. Also, since a row only exists when it contains 
one value for a column not part of the @PRIMARY KEY@, one such value must be 
specified too.
+The @INSERT@ statement writes one or more columns for a given row in a table. 
Note that since a row is identified by its @PRIMARY KEY@, at least the columns 
composing it must be specified.
 
 Note that unlike in SQL, @INSERT@ does not check the prior existence of the 
row: the row is created if none existed before, and updated otherwise. 
Furthermore, there is no mean to know which of creation or update happened. In 
fact, the semantic of @INSERT@ and @UPDATE@ are identical.
 



[4/4] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-02-05 Thread slebresne
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
CHANGES.txt
NEWS.txt
build.xml
debian/changelog


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

Branch: refs/heads/cassandra-2.0
Commit: 49bb972c6f79c6717b4750488bdcb035bb770784
Parents: 29670eb 16efdf4
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 16:36:50 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 16:36:50 2014 +0100

--
 doc/cql3/CQL.textile | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/49bb972c/doc/cql3/CQL.textile
--
diff --cc doc/cql3/CQL.textile
index cf73708,b18ce22..f82fc19
--- a/doc/cql3/CQL.textile
+++ b/doc/cql3/CQL.textile
@@@ -459,11 -443,9 +457,11 @@@ INSERT INTO NerdMovies (movie, director
  VALUES ('Serenity', 'Joss Whedon', 'Nathan Fillion', 2005)
  USING TTL 86400;
  
- The @INSERT@ statement writes one or more columns for a given row in a table. 
Note that since a row is identified by its @PRIMARY KEY@, the columns that 
compose it must be specified. Also, since a row only exists when it contains 
one value for a column not part of the @PRIMARY KEY@, one such value must be 
specified too.
+ The @INSERT@ statement writes one or more columns for a given row in a table. 
Note that since a row is identified by its @PRIMARY KEY@, at least the columns 
composing it must be specified.
  
 -Note that unlike in SQL, @INSERT@ does not check the prior existence of the 
row: the row is created if none existed before, and updated otherwise. 
Furthermore, there is no mean to know which of creation or update happened. In 
fact, the semantic of @INSERT@ and @UPDATE@ are identical.
 +Note that unlike in SQL, @INSERT@ does not check the prior existence of the 
row by default: the row is created if none existed before, and updated 
otherwise. Furthermore, there is no mean to know which of creation or update 
happened.
 +
 +It is however possible to use the @IF NOT EXISTS@ condition to only insert if 
the row does not exist prior to the insertion. But please note that using @IF 
NOT EXISTS@ will incur a non negligible performance cost (internally, Paxos 
will be used) so this should be used sparingly.
  
  All updates for an @INSERT@ are applied atomically and in isolation.
  



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

2014-02-05 Thread slebresne
Merge branch 'cassandra-2.0' into trunk

Conflicts:
CHANGES.txt


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

Branch: refs/heads/trunk
Commit: 58d1a4f816251a889f3eb4eed801dc8b0ccfc42d
Parents: c004f9f 49bb972
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 16:38:18 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 16:38:18 2014 +0100

--
 CHANGES.txt  |  5 +
 NEWS.txt | 13 +++--
 doc/cql3/CQL.textile |  4 +---
 3 files changed, 9 insertions(+), 13 deletions(-)
--


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/58d1a4f8/NEWS.txt
--
diff --cc NEWS.txt
index 185f60c,b18150f..9dd2ad6
--- a/NEWS.txt
+++ b/NEWS.txt
@@@ -13,47 -13,7 +13,37 @@@ restore snapshots created with the prev
  'sstableloader' tool. You can upgrade the file format of your snapshots
  using the provided 'sstableupgrade' tool.
  
 +2.1
 +===
 +
 +New features
 +
 +   - SSTable data directory name is slightly changed. Each directory will
 + have hex string appended after CF name, e.g.
 + ks/cf-5be396077b811e3a3ab9dc4b9ac088d/
 + This hex string part represents unique ColumnFamily ID.
 + Note that existing directories are used as is, so only newly created
 + directories after upgrade have new directory name format.
 +   - Saved key cache files also have ColumnFamily ID in their file name.
 +
 +Upgrading
 +-
 +   - Rolling upgrades from anything pre-2.0.5 is not supported.
 +   - For leveled compaction users, 2.0 must be atleast started before
 + upgrading to 2.1 due to the fact that the old JSON leveled
 + manifest is migrated into the sstable metadata files on startup
 + in 2.0 and this code is gone from 2.1.
 +   - For size-tiered compaction users, Cassandra now defaults to ignoring
 + the coldest 5% of sstables.  This can be customized with the
 + cold_reads_to_omit compaction option; 0.0 omits nothing (the old
 + behavior) and 1.0 omits everything.
 +   - Multithreaded compaction has been removed.
 +   - Counters implementation has been changed, replaced by a safer one with
 + less caveats, but different performance characteristics. You might have
 + to change your data model to accomodate the new implementation.
 + (See https://issues.apache.org/jira/browse/CASSANDRA-6504 and the dev
 + blog post at http://www.datastax.com/dev/blog/PLACEHOLDER for details).
  
- 2.0.6
- =
- 
- New features
- 
- - Scrub can now optionally skip corrupt counter partitions. Please note
-   that this will lead to the loss of all the counter updates in the 
skipped
-   partition. See the --skip-corrupted option.
- 
- 
  2.0.5
  =
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/58d1a4f8/doc/cql3/CQL.textile
--



[2/5] git commit: Update changes and news file for 2.0.5 re-roll

2014-02-05 Thread slebresne
Update changes and news file for 2.0.5 re-roll


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

Branch: refs/heads/trunk
Commit: 29670eb6692f239a3e9b0db05f2d5a1b5d4eb8b0
Parents: 41de0bd
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 09:22:13 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 09:22:13 2014 +0100

--
 CHANGES.txt | 14 +-
 NEWS.txt| 13 +++--
 2 files changed, 8 insertions(+), 19 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/29670eb6/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 7e0a89e..9599e56 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,12 +1,3 @@
-2.0.6
- * Fix direct Memory on architectures that do not support unaligned long access
-   (CASSANDRA-6628)
- * Let scrub optionally skip broken counter partitions (CASSANDRA-5930)
-Merged from 1.2:
- * Move handling of migration event source to solve bootstrap race. 
(CASSANDRA-6648)
- * Make sure compaction throughput value doesn't overflow with int math 
(CASSANDRA-6647)
- 
-
 2.0.5
  * Reduce garbage generated by bloom filter lookups (CASSANDRA-6609)
  * Add ks.cf names to tombstone logging (CASSANDRA-6597)
@@ -29,6 +20,9 @@ Merged from 1.2:
  * Switch stress to use ITransportFactory (CASSANDRA-6641)
  * Fix IllegalArgumentException during prepare (CASSANDRA-6592)
  * Fix possible loss of 2ndary index entries during compaction (CASSANDRA-6517)
+ * Fix direct Memory on architectures that do not support unaligned long access
+   (CASSANDRA-6628)
+ * Let scrub optionally skip broken counter partitions (CASSANDRA-5930)
 Merged from 1.2:
  * fsync compression metadata (CASSANDRA-6531)
  * Validate CF existence on execution for prepared statement (CASSANDRA-6535)
@@ -43,6 +37,8 @@ Merged from 1.2:
  * Fix preparing with batch and delete from collection (CASSANDRA-6607)
  * Fix ABSC reverse iterator's remove() method (CASSANDRA-6629)
  * Handle host ID conflicts properly (CASSANDRA-6615)
+ * Move handling of migration event source to solve bootstrap race. 
(CASSANDRA-6648)
+ * Make sure compaction throughput value doesn't overflow with int math 
(CASSANDRA-6647)
 
 
 2.0.4

http://git-wip-us.apache.org/repos/asf/cassandra/blob/29670eb6/NEWS.txt
--
diff --git a/NEWS.txt b/NEWS.txt
index b21fbaa..b18150f 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -14,16 +14,6 @@ restore snapshots created with the previous major version 
using the
 using the provided 'sstableupgrade' tool.
 
 
-2.0.6
-=
-
-New features
-
-- Scrub can now optionally skip corrupt counter partitions. Please note
-  that this will lead to the loss of all the counter updates in the skipped
-  partition. See the --skip-corrupted option.
-
-
 2.0.5
 =
 
@@ -31,6 +21,9 @@ New features
 
 - Batchlog replay can be, and is throttled by default now.
   See batchlog_replay_throttle_in_kb setting in cassandra.yaml.
+- Scrub can now optionally skip corrupt counter partitions. Please note
+  that this will lead to the loss of all the counter updates in the skipped
+  partition. See the --skip-corrupted option.
 
 Upgrading
 -



[3/4] git commit: Remove/update invalid sentences in CQL doc

2014-02-05 Thread slebresne
Remove/update invalid sentences in CQL doc


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

Branch: refs/heads/cassandra-2.0
Commit: 16efdf4a0300b2499346156fd4e2a8e0785d2690
Parents: 178e086
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 16:32:24 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 16:32:24 2014 +0100

--
 doc/cql3/CQL.textile | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/16efdf4a/doc/cql3/CQL.textile
--
diff --git a/doc/cql3/CQL.textile b/doc/cql3/CQL.textile
index 8b6cb08..b18ce22 100644
--- a/doc/cql3/CQL.textile
+++ b/doc/cql3/CQL.textile
@@ -275,8 +275,6 @@ CREATE TABLE t (
 PRIMARY KEY (k)
 )
 
-Moreover, a table must define at least one column that is not part of the 
PRIMARY KEY as a row exists in Cassandra only if it contains at least one value 
for one such column.
-
 h4(#createTablepartitionClustering). Partition key and clustering columns
 
 In CQL, the order in which columns are defined for the @PRIMARY KEY@ matters. 
The first column of the key is called the __partition key__. It has the 
property that all the rows sharing the same partition key (even across table in 
fact) are stored on the same physical node. Also, insertion/update/deletion on 
rows sharing the same partition key for a given table are performed 
__atomically__ and in __isolation__. Note that it is possible to have a 
composite partition key, i.e. a partition key formed of multiple columns, using 
an extra set of parentheses to define which columns forms the partition key.
@@ -445,7 +443,7 @@ INSERT INTO NerdMovies (movie, director, main_actor, year)
 VALUES ('Serenity', 'Joss Whedon', 'Nathan Fillion', 2005)
 USING TTL 86400;
 
-The @INSERT@ statement writes one or more columns for a given row in a table. 
Note that since a row is identified by its @PRIMARY KEY@, the columns that 
compose it must be specified. Also, since a row only exists when it contains 
one value for a column not part of the @PRIMARY KEY@, one such value must be 
specified too.
+The @INSERT@ statement writes one or more columns for a given row in a table. 
Note that since a row is identified by its @PRIMARY KEY@, at least the columns 
composing it must be specified.
 
 Note that unlike in SQL, @INSERT@ does not check the prior existence of the 
row: the row is created if none existed before, and updated otherwise. 
Furthermore, there is no mean to know which of creation or update happened. In 
fact, the semantic of @INSERT@ and @UPDATE@ are identical.
 



[2/4] git commit: Update changes and news file for 2.0.5 re-roll

2014-02-05 Thread slebresne
Update changes and news file for 2.0.5 re-roll


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

Branch: refs/heads/cassandra-2.0
Commit: 29670eb6692f239a3e9b0db05f2d5a1b5d4eb8b0
Parents: 41de0bd
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 09:22:13 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 09:22:13 2014 +0100

--
 CHANGES.txt | 14 +-
 NEWS.txt| 13 +++--
 2 files changed, 8 insertions(+), 19 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/29670eb6/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 7e0a89e..9599e56 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,12 +1,3 @@
-2.0.6
- * Fix direct Memory on architectures that do not support unaligned long access
-   (CASSANDRA-6628)
- * Let scrub optionally skip broken counter partitions (CASSANDRA-5930)
-Merged from 1.2:
- * Move handling of migration event source to solve bootstrap race. 
(CASSANDRA-6648)
- * Make sure compaction throughput value doesn't overflow with int math 
(CASSANDRA-6647)
- 
-
 2.0.5
  * Reduce garbage generated by bloom filter lookups (CASSANDRA-6609)
  * Add ks.cf names to tombstone logging (CASSANDRA-6597)
@@ -29,6 +20,9 @@ Merged from 1.2:
  * Switch stress to use ITransportFactory (CASSANDRA-6641)
  * Fix IllegalArgumentException during prepare (CASSANDRA-6592)
  * Fix possible loss of 2ndary index entries during compaction (CASSANDRA-6517)
+ * Fix direct Memory on architectures that do not support unaligned long access
+   (CASSANDRA-6628)
+ * Let scrub optionally skip broken counter partitions (CASSANDRA-5930)
 Merged from 1.2:
  * fsync compression metadata (CASSANDRA-6531)
  * Validate CF existence on execution for prepared statement (CASSANDRA-6535)
@@ -43,6 +37,8 @@ Merged from 1.2:
  * Fix preparing with batch and delete from collection (CASSANDRA-6607)
  * Fix ABSC reverse iterator's remove() method (CASSANDRA-6629)
  * Handle host ID conflicts properly (CASSANDRA-6615)
+ * Move handling of migration event source to solve bootstrap race. 
(CASSANDRA-6648)
+ * Make sure compaction throughput value doesn't overflow with int math 
(CASSANDRA-6647)
 
 
 2.0.4

http://git-wip-us.apache.org/repos/asf/cassandra/blob/29670eb6/NEWS.txt
--
diff --git a/NEWS.txt b/NEWS.txt
index b21fbaa..b18150f 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -14,16 +14,6 @@ restore snapshots created with the previous major version 
using the
 using the provided 'sstableupgrade' tool.
 
 
-2.0.6
-=
-
-New features
-
-- Scrub can now optionally skip corrupt counter partitions. Please note
-  that this will lead to the loss of all the counter updates in the skipped
-  partition. See the --skip-corrupted option.
-
-
 2.0.5
 =
 
@@ -31,6 +21,9 @@ New features
 
 - Batchlog replay can be, and is throttled by default now.
   See batchlog_replay_throttle_in_kb setting in cassandra.yaml.
+- Scrub can now optionally skip corrupt counter partitions. Please note
+  that this will lead to the loss of all the counter updates in the skipped
+  partition. See the --skip-corrupted option.
 
 Upgrading
 -



[3/5] git commit: Remove/update invalid sentences in CQL doc

2014-02-05 Thread slebresne
Remove/update invalid sentences in CQL doc


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

Branch: refs/heads/trunk
Commit: 16efdf4a0300b2499346156fd4e2a8e0785d2690
Parents: 178e086
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 16:32:24 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 16:32:24 2014 +0100

--
 doc/cql3/CQL.textile | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/16efdf4a/doc/cql3/CQL.textile
--
diff --git a/doc/cql3/CQL.textile b/doc/cql3/CQL.textile
index 8b6cb08..b18ce22 100644
--- a/doc/cql3/CQL.textile
+++ b/doc/cql3/CQL.textile
@@ -275,8 +275,6 @@ CREATE TABLE t (
 PRIMARY KEY (k)
 )
 
-Moreover, a table must define at least one column that is not part of the 
PRIMARY KEY as a row exists in Cassandra only if it contains at least one value 
for one such column.
-
 h4(#createTablepartitionClustering). Partition key and clustering columns
 
 In CQL, the order in which columns are defined for the @PRIMARY KEY@ matters. 
The first column of the key is called the __partition key__. It has the 
property that all the rows sharing the same partition key (even across table in 
fact) are stored on the same physical node. Also, insertion/update/deletion on 
rows sharing the same partition key for a given table are performed 
__atomically__ and in __isolation__. Note that it is possible to have a 
composite partition key, i.e. a partition key formed of multiple columns, using 
an extra set of parentheses to define which columns forms the partition key.
@@ -445,7 +443,7 @@ INSERT INTO NerdMovies (movie, director, main_actor, year)
 VALUES ('Serenity', 'Joss Whedon', 'Nathan Fillion', 2005)
 USING TTL 86400;
 
-The @INSERT@ statement writes one or more columns for a given row in a table. 
Note that since a row is identified by its @PRIMARY KEY@, the columns that 
compose it must be specified. Also, since a row only exists when it contains 
one value for a column not part of the @PRIMARY KEY@, one such value must be 
specified too.
+The @INSERT@ statement writes one or more columns for a given row in a table. 
Note that since a row is identified by its @PRIMARY KEY@, at least the columns 
composing it must be specified.
 
 Note that unlike in SQL, @INSERT@ does not check the prior existence of the 
row: the row is created if none existed before, and updated otherwise. 
Furthermore, there is no mean to know which of creation or update happened. In 
fact, the semantic of @INSERT@ and @UPDATE@ are identical.
 



[1/5] git commit: Update news, version in preparation for 1.2.15

2014-02-05 Thread slebresne
Updated Branches:
  refs/heads/trunk c004f9f83 - 58d1a4f81


Update news, version in preparation for 1.2.15


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

Branch: refs/heads/trunk
Commit: 178e086f1aaa2744dfc8046c9abb0c62e8a65895
Parents: 511787d
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 08:47:20 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 08:47:20 2014 +0100

--
 CHANGES.txt  |  1 +
 NEWS.txt | 10 ++
 build.xml|  2 +-
 debian/changelog |  6 ++
 4 files changed, 18 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/178e086f/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 75c7104..0989dc4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -2,6 +2,7 @@
  * Move handling of migration event source to solve bootstrap race 
(CASSANDRA-6648)
  * Make sure compaction throughput value doesn't overflow with int math 
(CASSANDRA-6647)
 
+
 1.2.14
  * Reverted code to limit CQL prepared statement cache by size (CASSANDRA-6592)
  * add cassandra.default_messaging_version property to allow easier

http://git-wip-us.apache.org/repos/asf/cassandra/blob/178e086f/NEWS.txt
--
diff --git a/NEWS.txt b/NEWS.txt
index 53cb7ca..771536d 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -14,6 +14,16 @@ restore snapshots created with the previous major version 
using the
 using the provided 'sstableupgrade' tool.
 
 
+1.2.15
+==
+
+Upgrading
+-
+- This release mainly fix a regression of 1.2.14, namely
+  https://issues.apache.org/jira/browse/CASSANDRA-6648. Users of 1.2.14 are
+  strongly encouraged to upgrade.
+
+
 1.2.14
 ==
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/178e086f/build.xml
--
diff --git a/build.xml b/build.xml
index 150e2fe..ce87a2a 100644
--- a/build.xml
+++ b/build.xml
@@ -25,7 +25,7 @@
 property name=debuglevel value=source,lines,vars/
 
 !-- default version and SCM information --
-property name=base.version value=1.2.14/
+property name=base.version value=1.2.15/
 property name=scm.connection 
value=scm:git://git.apache.org/cassandra.git/
 property name=scm.developerConnection 
value=scm:git://git.apache.org/cassandra.git/
 property name=scm.url 
value=http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree/

http://git-wip-us.apache.org/repos/asf/cassandra/blob/178e086f/debian/changelog
--
diff --git a/debian/changelog b/debian/changelog
index 472063e..bb8ecf2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+cassandra (1.2.15) unstable; urgency=low
+
+  * New release
+
+ -- Sylvain Lebresne slebre...@apache.org  Wed, 05 Feb 2014 08:42:29 +0100
+
 cassandra (1.2.14) unstable; urgency=low
 
   * New release



[4/5] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2014-02-05 Thread slebresne
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
CHANGES.txt
NEWS.txt
build.xml
debian/changelog


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

Branch: refs/heads/trunk
Commit: 49bb972c6f79c6717b4750488bdcb035bb770784
Parents: 29670eb 16efdf4
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 16:36:50 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 16:36:50 2014 +0100

--
 doc/cql3/CQL.textile | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/49bb972c/doc/cql3/CQL.textile
--
diff --cc doc/cql3/CQL.textile
index cf73708,b18ce22..f82fc19
--- a/doc/cql3/CQL.textile
+++ b/doc/cql3/CQL.textile
@@@ -459,11 -443,9 +457,11 @@@ INSERT INTO NerdMovies (movie, director
  VALUES ('Serenity', 'Joss Whedon', 'Nathan Fillion', 2005)
  USING TTL 86400;
  
- The @INSERT@ statement writes one or more columns for a given row in a table. 
Note that since a row is identified by its @PRIMARY KEY@, the columns that 
compose it must be specified. Also, since a row only exists when it contains 
one value for a column not part of the @PRIMARY KEY@, one such value must be 
specified too.
+ The @INSERT@ statement writes one or more columns for a given row in a table. 
Note that since a row is identified by its @PRIMARY KEY@, at least the columns 
composing it must be specified.
  
 -Note that unlike in SQL, @INSERT@ does not check the prior existence of the 
row: the row is created if none existed before, and updated otherwise. 
Furthermore, there is no mean to know which of creation or update happened. In 
fact, the semantic of @INSERT@ and @UPDATE@ are identical.
 +Note that unlike in SQL, @INSERT@ does not check the prior existence of the 
row by default: the row is created if none existed before, and updated 
otherwise. Furthermore, there is no mean to know which of creation or update 
happened.
 +
 +It is however possible to use the @IF NOT EXISTS@ condition to only insert if 
the row does not exist prior to the insertion. But please note that using @IF 
NOT EXISTS@ will incur a non negligible performance cost (internally, Paxos 
will be used) so this should be used sparingly.
  
  All updates for an @INSERT@ are applied atomically and in isolation.
  



[1/4] git commit: Update news, version in preparation for 1.2.15

2014-02-05 Thread slebresne
Updated Branches:
  refs/heads/cassandra-2.0 41de0bd4e - 49bb972c6


Update news, version in preparation for 1.2.15


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

Branch: refs/heads/cassandra-2.0
Commit: 178e086f1aaa2744dfc8046c9abb0c62e8a65895
Parents: 511787d
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 08:47:20 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 08:47:20 2014 +0100

--
 CHANGES.txt  |  1 +
 NEWS.txt | 10 ++
 build.xml|  2 +-
 debian/changelog |  6 ++
 4 files changed, 18 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/178e086f/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 75c7104..0989dc4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -2,6 +2,7 @@
  * Move handling of migration event source to solve bootstrap race 
(CASSANDRA-6648)
  * Make sure compaction throughput value doesn't overflow with int math 
(CASSANDRA-6647)
 
+
 1.2.14
  * Reverted code to limit CQL prepared statement cache by size (CASSANDRA-6592)
  * add cassandra.default_messaging_version property to allow easier

http://git-wip-us.apache.org/repos/asf/cassandra/blob/178e086f/NEWS.txt
--
diff --git a/NEWS.txt b/NEWS.txt
index 53cb7ca..771536d 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -14,6 +14,16 @@ restore snapshots created with the previous major version 
using the
 using the provided 'sstableupgrade' tool.
 
 
+1.2.15
+==
+
+Upgrading
+-
+- This release mainly fix a regression of 1.2.14, namely
+  https://issues.apache.org/jira/browse/CASSANDRA-6648. Users of 1.2.14 are
+  strongly encouraged to upgrade.
+
+
 1.2.14
 ==
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/178e086f/build.xml
--
diff --git a/build.xml b/build.xml
index 150e2fe..ce87a2a 100644
--- a/build.xml
+++ b/build.xml
@@ -25,7 +25,7 @@
 property name=debuglevel value=source,lines,vars/
 
 !-- default version and SCM information --
-property name=base.version value=1.2.14/
+property name=base.version value=1.2.15/
 property name=scm.connection 
value=scm:git://git.apache.org/cassandra.git/
 property name=scm.developerConnection 
value=scm:git://git.apache.org/cassandra.git/
 property name=scm.url 
value=http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree/

http://git-wip-us.apache.org/repos/asf/cassandra/blob/178e086f/debian/changelog
--
diff --git a/debian/changelog b/debian/changelog
index 472063e..bb8ecf2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+cassandra (1.2.15) unstable; urgency=low
+
+  * New release
+
+ -- Sylvain Lebresne slebre...@apache.org  Wed, 05 Feb 2014 08:42:29 +0100
+
 cassandra (1.2.14) unstable; urgency=low
 
   * New release



[jira] [Updated] (CASSANDRA-6656) Exception logging

2014-02-05 Thread Ding Yuan (JIRA)

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

Ding Yuan updated CASSANDRA-6656:
-

Description: 
Reporting a few cases where informative exceptions can be silently swallowed. 
Attaching a proposed patch. 

=
Case 1
  Line: 95, File: org/apache/cassandra/utils/Hex.java

An actual failure in the underlying constructor will be lost.
Propose to log it.

{noformat}
try
{
s = stringConstructor.newInstance(0, c.length, c);
+   }
+   catch (InvocationTargetException ite) {
+   // The underlying constructor failed. Unwrapping the exception.
+   logger.info(Underlying constructor throws exception: , 
ite.getCause());
}
catch (Exception e)
{
// Swallowing as we'll just use a copying constructor
}
return s == null ? new String(c) : s;
{noformat}
==
=
Case 2
  Line: 192, File: org/apache/cassandra/db/marshal/DynamicCompositeType.java

The actual cause of comparator error can be lost as it can fail in multiple 
locations.
{noformat}
AbstractType? comparator = null;
int header = getShortLength(bb);
if ((header  0x8000) == 0)
{
ByteBuffer value = getBytes(bb, header);
try
{
comparator = TypeParser.parse(ByteBufferUtil.string(value));
}
catch (Exception e)
{
--- can fail here
// we'll deal with this below since comparator == null
}
}
else
{
comparator = aliases.get((byte)(header  0xFF));
--- can fail here
}
if (comparator == null)
throw new MarshalException(Cannot find comparator for component  
+ i);
{noformat}
Propose to log the exception.
==
=
Case 3
  Line: 239, File: org/apache/cassandra/tools/NodeProbe.java
Exception ignored in finally. Propose log them with debug or trace.
{noformat}
232: finally
233: {
234: try
235: {
236: ssProxy.removeNotificationListener(runner);
236: ssProxy.removeNotificationListener(runner);
237: jmxc.removeConnectionNotificationListener(runner);
238: }
239: catch (Throwable ignored) {}
240: }
{noformat}
Similar case is at line 264 in the same file.
==

  was:
Reporting a few cases where informative exceptions can be silently swallowed. 
Attaching a proposed patch. 

=
Case 1
  Line: 95, File: org/apache/cassandra/utils/Hex.java

An actual failure in the underlying constructor will be lost.
Propose to log it.

try
{
s = stringConstructor.newInstance(0, c.length, c);
+   }
+   catch (InvocationTargetException ite) {
+   // The underlying constructor failed. Unwrapping the exception.
+   logger.info(Underlying constructor throws exception: , 
ite.getCause());
}
catch (Exception e)
{
// Swallowing as we'll just use a copying constructor
}
return s == null ? new String(c) : s;
==
=
Case 2
  Line: 192, File: org/apache/cassandra/db/marshal/DynamicCompositeType.java

The actual cause of comparator error can be lost as it can fail in multiple 
locations.

AbstractType? comparator = null;
int header = getShortLength(bb);
if ((header  0x8000) == 0)
{
ByteBuffer value = getBytes(bb, header);
try
{
comparator = TypeParser.parse(ByteBufferUtil.string(value));
}
catch (Exception e)
{
--- can fail here
// we'll deal with this below since comparator == null
}
}
else
{
comparator = aliases.get((byte)(header  0xFF));
--- can fail here
}
if (comparator == null)
throw new MarshalException(Cannot find comparator for component  
+ i);

Propose to log the exception.
==
=
Case 3
  Line: 239, File: org/apache/cassandra/tools/NodeProbe.java
Exception ignored in finally. Propose log them with debug or trace.

232: finally
233: {
234: try
235: {
236: ssProxy.removeNotificationListener(runner);
236: ssProxy.removeNotificationListener(runner);
237: 

[jira] [Resolved] (CASSANDRA-6642) line 297 of CQL.textile needs updated

2014-02-05 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne resolved CASSANDRA-6642.
-

Resolution: Fixed

That whole paragraph about COMPACT STORAGE is indeed a tad whack. I've pushed a 
hopefully better version of that paragraph that fixes the imprecision you 
mentioned but also extend a bit on the limitations. Feel free to complete if 
you think it's still not all that clear :)

 line 297 of CQL.textile needs updated
 -

 Key: CASSANDRA-6642
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6642
 Project: Cassandra
  Issue Type: Bug
  Components: Documentation  website
 Environment: [CQL 3.1.4 doc, 
 cassandra-trunk|https://github.com/apache/cassandra/blob/trunk/doc/cql3/CQL.textile#partition-key-and-clustering]
Reporter: Kristine Hahn
Priority: Minor

  [the 
 doc|https://github.com/apache/cassandra/blob/trunk/doc/cql3/CQL.textile#partition-key-and-clustering]
  says: 
 {quote}
 The restriction for table with COMPACT STORAGE is that they support one and 
 only one column outside of the ones part of the PRIMARY KEY.
 {quote}
 Shouldn't it say, ... outside of the ones that are part of a compound primary 
 key?



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6655) Writing mostly deletes to a Memtable results in undercounting the table's occupancy so it may not flush

2014-02-05 Thread Benedict (JIRA)

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

Benedict updated CASSANDRA-6655:


Attachment: tmp.patch

Fairly simple patch that adds the dataSize of any RangeTombstoneList to the 
memtable currentSize.

Whilst this defect doesn't affect the 2.1 branch, this patch also reduces 
garbage generated when updating a memtable partition with pre-existing 
tombstones, which is probably worth forward-porting.


 Writing mostly deletes to a Memtable results in undercounting the table's 
 occupancy so it may not flush
 ---

 Key: CASSANDRA-6655
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6655
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Priority: Minor
 Fix For: 2.0.5

 Attachments: tmp.patch


 In the extreme case of only deletes the memtable will never flush, and we 
 will OOM.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-4757) Expose bulk loading progress/status over jmx

2014-02-05 Thread Nick Bailey (JIRA)

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

Nick Bailey commented on CASSANDRA-4757:


Yeah that would probably be fine. Maybe an option to either print out the plan 
id or to print progress information. For the jmx case, a bulkLoadAsync call 
would probably be fine and is consistent with other jmx methods we have.

My only other question would be if the building indexes step of bulk loading 
would be included in that progress as well.

 Expose bulk loading progress/status over jmx
 

 Key: CASSANDRA-4757
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4757
 Project: Cassandra
  Issue Type: Improvement
Reporter: Nick Bailey
Assignee: Tyler Hobbs
Priority: Minor
  Labels: lhf
 Fix For: 2.0.6

 Attachments: CASSANDRA-4757.txt, CASSANDRA-4757v2.txt


 The bulk loading interface should be exposing some progress or status 
 information over jmx. This shouldn't be too difficult and should be exposed 
 in a way that the information is available whether you are using the separate 
 sstableloader utility or calling the bulkload jmx call.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6655) Writing mostly deletes to a Memtable results in undercounting the table's occupancy so it may not flush

2014-02-05 Thread Benedict (JIRA)

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

Benedict updated CASSANDRA-6655:


Attachment: tmp-2.1.patch

Added a patch for 2.1/trunk 

 Writing mostly deletes to a Memtable results in undercounting the table's 
 occupancy so it may not flush
 ---

 Key: CASSANDRA-6655
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6655
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Priority: Minor
 Fix For: 2.0.5, 2.0.6

 Attachments: tmp-2.1.patch, tmp.patch


 In the extreme case of only deletes the memtable will never flush, and we 
 will OOM.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Assigned] (CASSANDRA-6655) Writing mostly deletes to a Memtable results in undercounting the table's occupancy so it may not flush

2014-02-05 Thread Benedict (JIRA)

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

Benedict reassigned CASSANDRA-6655:
---

Assignee: Benedict

 Writing mostly deletes to a Memtable results in undercounting the table's 
 occupancy so it may not flush
 ---

 Key: CASSANDRA-6655
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6655
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Assignee: Benedict
Priority: Minor
 Fix For: 2.0.5, 2.0.6

 Attachments: tmp-2.1.patch, tmp.patch


 In the extreme case of only deletes the memtable will never flush, and we 
 will OOM.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6655) Writing mostly deletes to a Memtable results in undercounting the table's occupancy so it may not flush

2014-02-05 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-6655:
-

While we're at it, we could also fix the update to currentOperations to take 
range tombstones into account, it doesn't particularly make sense that it's not 
taken into account there too (and it's currently somewhat breaking 
DataTacker.isEmpty()).

Nit: I'd change 'isModifiedBy' to something like 'mayModify' (which imply 
reversing receiver and argument) to avoid future misuse since 'isModifiedBy' 
only tell if it may be modified but doesn't guarantee it will. The rest lgtm.

Also probably worth committing to 1.2 (it's a proper bug and the fix is 
relatively simple).

For those following along at home, this only affects deletes through range 
tombstones (though full partition deletions were not added to the memtable 
size, they were accounted in currentOperations and wouldn't end up not 
flushing).

 Writing mostly deletes to a Memtable results in undercounting the table's 
 occupancy so it may not flush
 ---

 Key: CASSANDRA-6655
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6655
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Assignee: Benedict
Priority: Minor
 Fix For: 2.0.5, 2.0.6

 Attachments: tmp-2.1.patch, tmp.patch


 In the extreme case of only deletes the memtable will never flush, and we 
 will OOM.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6645) upgradesstables causes NPE for secondary indexes without an underlying column family

2014-02-05 Thread Sergio Bossa (JIRA)

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

Sergio Bossa updated CASSANDRA-6645:


Reproduced In: 2.0.4, 1.2.14  (was: 2.0.4)

 upgradesstables causes NPE for secondary indexes without an underlying column 
 family
 

 Key: CASSANDRA-6645
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6645
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Sergio Bossa
Assignee: Sergio Bossa
 Fix For: 2.0.6

 Attachments: CASSANDRA-6645.patch


 SecondaryIndex#getIndexCfs is allowed to return null by contract, if the 
 index is not backed by a column family, but this causes an NPE as 
 StorageService#getValidColumnFamilies and StorageService#upgradeSSTables do 
 not check for null values.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6655) Writing mostly deletes to a Memtable results in undercounting the table's occupancy so it may not flush

2014-02-05 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-6655:
-

bq. though full partition deletions were not added to the memtable size, they 
were accounted in currentOperations and wouldn't end up not flushing

Scratch that, it seems we don't take currentOperations in account to flush 
anymore, so full partition deletions are also affected.

 Writing mostly deletes to a Memtable results in undercounting the table's 
 occupancy so it may not flush
 ---

 Key: CASSANDRA-6655
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6655
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Assignee: Benedict
Priority: Minor
 Fix For: 2.0.5, 2.0.6

 Attachments: tmp-2.1.patch, tmp.patch


 In the extreme case of only deletes the memtable will never flush, and we 
 will OOM.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6645) upgradesstables causes NPE for secondary indexes without an underlying column family

2014-02-05 Thread Sergio Bossa (JIRA)

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

Sergio Bossa updated CASSANDRA-6645:


Attachment: CASSANDRA-6645-1_2.patch

Attached patch for 1.2 too.

 upgradesstables causes NPE for secondary indexes without an underlying column 
 family
 

 Key: CASSANDRA-6645
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6645
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Sergio Bossa
Assignee: Sergio Bossa
 Fix For: 2.0.6

 Attachments: CASSANDRA-6645-1_2.patch, CASSANDRA-6645.patch


 SecondaryIndex#getIndexCfs is allowed to return null by contract, if the 
 index is not backed by a column family, but this causes an NPE as 
 StorageService#getValidColumnFamilies and StorageService#upgradeSSTables do 
 not check for null values.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6655) Writing mostly deletes to a Memtable results in undercounting the table's occupancy so it may not flush

2014-02-05 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-6655:
-

bq. and it's currently somewhat breaking DataTacker.isEmpty()).

Good spot.

bq.  I'd change 'isModifiedBy' to something like 'mayModify' 

Sounds reasonable to me. I wanted to keep the logic the same as add() (to make 
sure it was super trivial and I didn't screw up) which required something of 
the form testXBy, and maybeModifiedBy sounded ugly at the time. But now it 
sounds no worse.

Want me to repatch, or do you want to ninja it in?

bq. For those following along at home, this only affects deletes through range 
tombstones (though full partition deletions were not added to the memtable 
size, they were accounted in currentOperations and wouldn't end up not 
flushing).

Regrettably this would affect them too, if not quite as severely, as it's not 
just DataTracker.isEmpty() that's affected: the MeteredFlusher that would never 
select it for flushing, so it would only flush on its normal cycle or when the 
CL ran out of room.

 Writing mostly deletes to a Memtable results in undercounting the table's 
 occupancy so it may not flush
 ---

 Key: CASSANDRA-6655
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6655
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Assignee: Benedict
Priority: Minor
 Fix For: 2.0.5, 2.0.6

 Attachments: tmp-2.1.patch, tmp.patch


 In the extreme case of only deletes the memtable will never flush, and we 
 will OOM.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6655) Writing mostly deletes to a Memtable results in undercounting the table's occupancy so it may not flush

2014-02-05 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-6655:
-

bq. Scratch that, it seems we don't take currentOperations in account to flush 
anymore

Okay, I take back my Good spot :-)

 Writing mostly deletes to a Memtable results in undercounting the table's 
 occupancy so it may not flush
 ---

 Key: CASSANDRA-6655
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6655
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Assignee: Benedict
Priority: Minor
 Fix For: 2.0.5, 2.0.6

 Attachments: tmp-2.1.patch, tmp.patch


 In the extreme case of only deletes the memtable will never flush, and we 
 will OOM.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (CASSANDRA-6657) Log the newsize value alongside the heap size at startup

2014-02-05 Thread Jeremy Hanna (JIRA)
Jeremy Hanna created CASSANDRA-6657:
---

 Summary: Log the newsize value alongside the heap size at startup
 Key: CASSANDRA-6657
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6657
 Project: Cassandra
  Issue Type: Wish
  Components: Core
Reporter: Jeremy Hanna


It would be nice to have the newsize value logged alongside the heap size at 
startup to more easily track down problems.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6657) Log the newsize value alongside the heap size at startup

2014-02-05 Thread Jeremy Hanna (JIRA)

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

Jeremy Hanna updated CASSANDRA-6657:


Priority: Trivial  (was: Major)

 Log the newsize value alongside the heap size at startup
 

 Key: CASSANDRA-6657
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6657
 Project: Cassandra
  Issue Type: Wish
  Components: Core
Reporter: Jeremy Hanna
Priority: Trivial

 It would be nice to have the newsize value logged alongside the heap size at 
 startup to more easily track down problems.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6528) TombstoneOverwhelmingException is thrown while populating data in recently truncated CF

2014-02-05 Thread Machiel Groeneveld (JIRA)

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

Machiel Groeneveld commented on CASSANDRA-6528:
---

I have the same issue, after inserting 216258 records (in one row) in a new 
database (I removed all files in the data directory files before starting) I 
couldn't run a select query (something like 'select * from partition_key = x')

 TombstoneOverwhelmingException is thrown while populating data in recently 
 truncated CF
 ---

 Key: CASSANDRA-6528
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6528
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: Cassadra 2.0.3, Linux, 6 nodes
Reporter: Nikolai Grigoriev
Priority: Minor

 I am running some performance tests and recently I had to flush the data from 
 one of the tables and repopulate it. I have about 30M rows with a few columns 
 in each, about 5kb per row in in total. In order to repopulate the data I do 
 truncate table from CQLSH and then relaunch the test. The test simply 
 inserts the data in the table, does not read anything. Shortly after 
 restarting the data generator I see this on one of the nodes:
 {code}
  INFO [HintedHandoff:655] 2013-12-26 16:45:42,185 HintedHandOffManager.java 
 (line 323) Started hinted handoff f
 or host: 985c8a08-3d92-4fad-a1d1-7135b2b9774a with IP: /10.5.45.158
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 SliceQueryFilter.java (line 
 200) Scanned ove
 r 10 tombstones; query aborted (see tombstone_fail_threshold)
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 CassandraDaemon.java (line 
 187) Exception in thread Thread[HintedHandoff:655,1,main]
 org.apache.cassandra.db.filter.TombstoneOverwhelmingException
 at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:201)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:122)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:80)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:72)
 at 
 org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:297)
 at 
 org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:56)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1487)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1306)
 at 
 org.apache.cassandra.db.HintedHandOffManager.doDeliverHintsToEndpoint(HintedHandOffManager.java:351)
 at 
 org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:309)
 at 
 org.apache.cassandra.db.HintedHandOffManager.access$4(HintedHandOffManager.java:281)
 at 
 org.apache.cassandra.db.HintedHandOffManager$4.run(HintedHandOffManager.java:530)
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:724)
  INFO [OptionalTasks:1] 2013-12-26 16:45:53,946 MeteredFlusher.java (line 63) 
 flushing high-traffic column family CFS(Keyspace='test_jmeter', 
 ColumnFamily='test_profiles') (estimated 192717267 bytes)
 {code}
 I am inserting the data with CL=1.
 It seems to be happening every time I do it. But I do not see any errors on 
 the client side and the node seems to continue operating, this is why I think 
 it is not a major issue. Maybe not an issue at all, but the message is logged 
 as ERROR.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6655) Writing mostly deletes to a Memtable results in undercounting the table's occupancy so it may not flush

2014-02-05 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-6655:
-

bq. Want me to repatch, or do you want to ninja it in?

I can change while committing I guess.

 Writing mostly deletes to a Memtable results in undercounting the table's 
 occupancy so it may not flush
 ---

 Key: CASSANDRA-6655
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6655
 Project: Cassandra
  Issue Type: Improvement
Reporter: Benedict
Assignee: Benedict
Priority: Minor
 Fix For: 2.0.5, 2.0.6

 Attachments: tmp-2.1.patch, tmp.patch


 In the extreme case of only deletes the memtable will never flush, and we 
 will OOM.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Comment Edited] (CASSANDRA-6528) TombstoneOverwhelmingException is thrown while populating data in recently truncated CF

2014-02-05 Thread Machiel Groeneveld (JIRA)

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

Machiel Groeneveld edited comment on CASSANDRA-6528 at 2/5/14 5:14 PM:
---

I have the same issue, after inserting 216258 records (in one row) in a new 
database (I removed all files in the data directory files before starting) I 
couldn't run a select query (something like 'select * from partition_key = x')

In the log I get org.apache.cassandra.db.filter.TombstoneOverwhelmingException


was (Author: machielg):
I have the same issue, after inserting 216258 records (in one row) in a new 
database (I removed all files in the data directory files before starting) I 
couldn't run a select query (something like 'select * from partition_key = x')

 TombstoneOverwhelmingException is thrown while populating data in recently 
 truncated CF
 ---

 Key: CASSANDRA-6528
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6528
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: Cassadra 2.0.3, Linux, 6 nodes
Reporter: Nikolai Grigoriev
Priority: Minor

 I am running some performance tests and recently I had to flush the data from 
 one of the tables and repopulate it. I have about 30M rows with a few columns 
 in each, about 5kb per row in in total. In order to repopulate the data I do 
 truncate table from CQLSH and then relaunch the test. The test simply 
 inserts the data in the table, does not read anything. Shortly after 
 restarting the data generator I see this on one of the nodes:
 {code}
  INFO [HintedHandoff:655] 2013-12-26 16:45:42,185 HintedHandOffManager.java 
 (line 323) Started hinted handoff f
 or host: 985c8a08-3d92-4fad-a1d1-7135b2b9774a with IP: /10.5.45.158
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 SliceQueryFilter.java (line 
 200) Scanned ove
 r 10 tombstones; query aborted (see tombstone_fail_threshold)
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 CassandraDaemon.java (line 
 187) Exception in thread Thread[HintedHandoff:655,1,main]
 org.apache.cassandra.db.filter.TombstoneOverwhelmingException
 at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:201)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:122)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:80)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:72)
 at 
 org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:297)
 at 
 org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:56)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1487)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1306)
 at 
 org.apache.cassandra.db.HintedHandOffManager.doDeliverHintsToEndpoint(HintedHandOffManager.java:351)
 at 
 org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:309)
 at 
 org.apache.cassandra.db.HintedHandOffManager.access$4(HintedHandOffManager.java:281)
 at 
 org.apache.cassandra.db.HintedHandOffManager$4.run(HintedHandOffManager.java:530)
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:724)
  INFO [OptionalTasks:1] 2013-12-26 16:45:53,946 MeteredFlusher.java (line 63) 
 flushing high-traffic column family CFS(Keyspace='test_jmeter', 
 ColumnFamily='test_profiles') (estimated 192717267 bytes)
 {code}
 I am inserting the data with CL=1.
 It seems to be happening every time I do it. But I do not see any errors on 
 the client side and the node seems to continue operating, this is why I think 
 it is not a major issue. Maybe not an issue at all, but the message is logged 
 as ERROR.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6656) Exception logging

2014-02-05 Thread Mikhail Stepura (JIRA)

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

Mikhail Stepura updated CASSANDRA-6656:
---

Fix Version/s: (was: 2.0.4)

 Exception logging
 -

 Key: CASSANDRA-6656
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6656
 Project: Cassandra
  Issue Type: Improvement
  Components: Core, Tools
Reporter: Ding Yuan
 Attachments: trunk-6656.txt


 Reporting a few cases where informative exceptions can be silently swallowed. 
 Attaching a proposed patch. 
 =
 Case 1
   Line: 95, File: org/apache/cassandra/utils/Hex.java
 An actual failure in the underlying constructor will be lost.
 Propose to log it.
 {noformat}
 try
 {
 s = stringConstructor.newInstance(0, c.length, c);
 +   }
 +   catch (InvocationTargetException ite) {
 +   // The underlying constructor failed. Unwrapping the 
 exception.
 +   logger.info(Underlying constructor throws exception: , 
 ite.getCause());
 }
 catch (Exception e)
 {
 // Swallowing as we'll just use a copying constructor
 }
 return s == null ? new String(c) : s;
 {noformat}
 ==
 =
 Case 2
   Line: 192, File: org/apache/cassandra/db/marshal/DynamicCompositeType.java
 The actual cause of comparator error can be lost as it can fail in multiple 
 locations.
 {noformat}
 AbstractType? comparator = null;
 int header = getShortLength(bb);
 if ((header  0x8000) == 0)
 {
 ByteBuffer value = getBytes(bb, header);
 try
 {
 comparator = TypeParser.parse(ByteBufferUtil.string(value));
 }
 catch (Exception e)
 {
 --- can fail here
 // we'll deal with this below since comparator == null
 }
 }
 else
 {
 comparator = aliases.get((byte)(header  0xFF));
 --- can fail here
 }
 if (comparator == null)
 throw new MarshalException(Cannot find comparator for component 
  + i);
 {noformat}
 Propose to log the exception.
 ==
 =
 Case 3
   Line: 239, File: org/apache/cassandra/tools/NodeProbe.java
 Exception ignored in finally. Propose log them with debug or trace.
 {noformat}
 232: finally
 233: {
 234: try
 235: {
 236: ssProxy.removeNotificationListener(runner);
 236: ssProxy.removeNotificationListener(runner);
 237: jmxc.removeConnectionNotificationListener(runner);
 238: }
 239: catch (Throwable ignored) {}
 240: }
 {noformat}
 Similar case is at line 264 in the same file.
 ==



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6658) Nodes flap once at startup

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-6658:


Summary: Nodes flap once at startup  (was: Nodes flap once at starup)

 Nodes flap once at startup
 --

 Key: CASSANDRA-6658
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6658
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Brandon Williams
Assignee: Brandon Williams
Priority: Minor
 Fix For: 2.0.4


 Upon initially seeing each other, a node will mark another UP, then DOWN, 
 then UP again.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (CASSANDRA-6658) Nodes flap once at starup

2014-02-05 Thread Brandon Williams (JIRA)
Brandon Williams created CASSANDRA-6658:
---

 Summary: Nodes flap once at starup
 Key: CASSANDRA-6658
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6658
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Brandon Williams
Assignee: Brandon Williams
Priority: Minor
 Fix For: 2.0.4


Upon initially seeing each other, a node will mark another UP, then DOWN, then 
UP again.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6658) Nodes flap once at startup

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-6658:


Since Version: 2.0.4
Fix Version/s: (was: 2.0.4)

 Nodes flap once at startup
 --

 Key: CASSANDRA-6658
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6658
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Brandon Williams
Assignee: Brandon Williams
Priority: Minor

 Upon initially seeing each other, a node will mark another UP, then DOWN, 
 then UP again.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


git commit: Fix partition and range deletes not triggering flush

2014-02-05 Thread slebresne
Updated Branches:
  refs/heads/cassandra-1.2 16efdf4a0 - adcb713d5


Fix partition and range deletes not triggering flush

patch by benedict; reviewed by slebresne for CASSANDRA-6655


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

Branch: refs/heads/cassandra-1.2
Commit: adcb713d597302a868b6224a87ea6ce38e718e5d
Parents: 16efdf4
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 18:34:37 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 18:34:37 2014 +0100

--
 CHANGES.txt   |  3 +++
 .../org/apache/cassandra/db/AtomicSortedColumns.java  |  7 ++-
 src/java/org/apache/cassandra/db/DeletionInfo.java| 14 ++
 src/java/org/apache/cassandra/db/Memtable.java| 10 ++
 4 files changed, 29 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/adcb713d/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 0989dc4..cfdd148 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,6 @@
+1.2.16
+ * Fix partition and range deletes not triggering flush (CASSANDRA-6655)
+
 1.2.15
  * Move handling of migration event source to solve bootstrap race 
(CASSANDRA-6648)
  * Make sure compaction throughput value doesn't overflow with int math 
(CASSANDRA-6647)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/adcb713d/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
--
diff --git a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java 
b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
index 9803544..d6c861b 100644
--- a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
+++ b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
@@ -194,7 +194,12 @@ public class AtomicSortedColumns implements ISortedColumns
 {
 sizeDelta = 0;
 current = ref.get();
-DeletionInfo newDelInfo = 
current.deletionInfo.copy().add(cm.getDeletionInfo());
+DeletionInfo newDelInfo = current.deletionInfo;
+if (cm.getDeletionInfo().mayModify(newDelInfo))
+{
+newDelInfo = 
current.deletionInfo.copy().add(cm.getDeletionInfo());
+sizeDelta += newDelInfo.dataSize() - 
current.deletionInfo.dataSize();
+}
 modified = new Holder(current.map.clone(), newDelInfo);
 
 for (IColumn column : cm.getSortedColumns())

http://git-wip-us.apache.org/repos/asf/cassandra/blob/adcb713d/src/java/org/apache/cassandra/db/DeletionInfo.java
--
diff --git a/src/java/org/apache/cassandra/db/DeletionInfo.java 
b/src/java/org/apache/cassandra/db/DeletionInfo.java
index e486eeb..91af9fd 100644
--- a/src/java/org/apache/cassandra/db/DeletionInfo.java
+++ b/src/java/org/apache/cassandra/db/DeletionInfo.java
@@ -216,6 +216,20 @@ public class DeletionInfo
 return size + (ranges == null ? 0 : ranges.dataSize());
 }
 
+public int rangeCount()
+{
+return ranges == null ? 0 : ranges.size();
+}
+
+/**
+ * Whether this deletion info may modify the provided one if added to it.
+ */
+public boolean mayModify(DeletionInfo delInfo)
+{
+return topLevel.markedForDeleteAt  delInfo.topLevel.markedForDeleteAt
+|| ranges == null;
+}
+
 @Override
 public String toString()
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/adcb713d/src/java/org/apache/cassandra/db/Memtable.java
--
diff --git a/src/java/org/apache/cassandra/db/Memtable.java 
b/src/java/org/apache/cassandra/db/Memtable.java
index 817561b..b229060 100644
--- a/src/java/org/apache/cassandra/db/Memtable.java
+++ b/src/java/org/apache/cassandra/db/Memtable.java
@@ -192,6 +192,7 @@ public class Memtable
 {
 ColumnFamily previous = columnFamilies.get(key);
 
+long sizeDelta = 0;
 if (previous == null)
 {
 // AtomicSortedColumns doesn't work for super columns (see #3821)
@@ -199,14 +200,15 @@ public class Memtable
 // We'll add the columns later. This avoids wasting works if we 
get beaten in the putIfAbsent
 previous = columnFamilies.putIfAbsent(new DecoratedKey(key.token, 
allocator.clone(key.key)), empty);
 if (previous == null)
+{
 previous = empty;
+sizeDelta += 

[jira] [Commented] (CASSANDRA-6528) TombstoneOverwhelmingException is thrown while populating data in recently truncated CF

2014-02-05 Thread Aleksey Yeschenko (JIRA)

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

Aleksey Yeschenko commented on CASSANDRA-6528:
--

bq. I have the same issue, after inserting 216258 records (in one row) in a new 
database

Your schema and an example query?

 TombstoneOverwhelmingException is thrown while populating data in recently 
 truncated CF
 ---

 Key: CASSANDRA-6528
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6528
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: Cassadra 2.0.3, Linux, 6 nodes
Reporter: Nikolai Grigoriev
Priority: Minor

 I am running some performance tests and recently I had to flush the data from 
 one of the tables and repopulate it. I have about 30M rows with a few columns 
 in each, about 5kb per row in in total. In order to repopulate the data I do 
 truncate table from CQLSH and then relaunch the test. The test simply 
 inserts the data in the table, does not read anything. Shortly after 
 restarting the data generator I see this on one of the nodes:
 {code}
  INFO [HintedHandoff:655] 2013-12-26 16:45:42,185 HintedHandOffManager.java 
 (line 323) Started hinted handoff f
 or host: 985c8a08-3d92-4fad-a1d1-7135b2b9774a with IP: /10.5.45.158
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 SliceQueryFilter.java (line 
 200) Scanned ove
 r 10 tombstones; query aborted (see tombstone_fail_threshold)
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 CassandraDaemon.java (line 
 187) Exception in thread Thread[HintedHandoff:655,1,main]
 org.apache.cassandra.db.filter.TombstoneOverwhelmingException
 at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:201)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:122)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:80)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:72)
 at 
 org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:297)
 at 
 org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:56)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1487)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1306)
 at 
 org.apache.cassandra.db.HintedHandOffManager.doDeliverHintsToEndpoint(HintedHandOffManager.java:351)
 at 
 org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:309)
 at 
 org.apache.cassandra.db.HintedHandOffManager.access$4(HintedHandOffManager.java:281)
 at 
 org.apache.cassandra.db.HintedHandOffManager$4.run(HintedHandOffManager.java:530)
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:724)
  INFO [OptionalTasks:1] 2013-12-26 16:45:53,946 MeteredFlusher.java (line 63) 
 flushing high-traffic column family CFS(Keyspace='test_jmeter', 
 ColumnFamily='test_profiles') (estimated 192717267 bytes)
 {code}
 I am inserting the data with CL=1.
 It seems to be happening every time I do it. But I do not see any errors on 
 the client side and the node seems to continue operating, this is why I think 
 it is not a major issue. Maybe not an issue at all, but the message is logged 
 as ERROR.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6651) Repair hanging

2014-02-05 Thread Thunder Stumpges (JIRA)

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

Thunder Stumpges commented on CASSANDRA-6651:
-

FWIW we have this exact same issue. We are running 2.0.3 on a 3 node cluster. 
It has happened multiple times, and happens more times than not when running 
nodetool repair. There is nearly always one or more AntiEntropySessions 
remaining according to tpstats.

One strange thing about the behavior I see is that the output of nodetool 
compactionstats returns 0 active compactions, yet when restarting, we get the 
exception about Unfinished compactions reference missing sstables. It does 
seem like these two issues are related.

Another thing I see sometimes in the ouput from nodetool repair is the 
following message:
[2014-02-04 14:07:30,858] Starting repair command #7, repairing 768 ranges for 
keyspace thunder_test
[2014-02-04 14:08:30,862] Lost notification. You should check server log for 
repair status of keyspace thunder_test
[2014-02-04 14:08:30,870] Starting repair command #8, repairing 768 ranges for 
keyspace doan_synset
[2014-02-04 14:09:30,874] Lost notification. You should check server log for 
repair status of keyspace doan_synset

When this happens, it starts the next repair session immediately rather than 
waiting for the current one to finish. This doesn't however seem to always 
correlate to a hung session.

My logs don't look much/any different from the OP, but I'd be glad to provide 
any more details that might be helpful. We will be upgrading to 2.0.4 in the 
next couple days and I will report back if we see any difference in behavior.


 Repair hanging
 --

 Key: CASSANDRA-6651
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6651
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Eitan Eibschutz
 Fix For: 2.0.3


 Hi,
 We have a 12 node cluster in PROD environment and we've noticed that repairs 
 are never finishing. The behavior that we've observed is that a repair 
 process will run until at some point it hangs and no other processing is 
 happening.
 For example, at the moment, I have a repair process that has been running for 
 two days and not finishing:
 nodetool tpstats is showing 2 active and 2 pending AntiEntropySessions
 nodetool compactionstats is showing:
 pending tasks: 0
 Active compaction remaining time :n/a
 nodetools netstats is showing:
 Mode: NORMAL
 Not sending any streams.
 Read Repair Statistics:
 Attempted: 0
 Mismatch (Blocking): 142110
 Mismatch (Background): 0
 Pool NameActive   Pending  Completed
 Commandsn/a 0  107589657
 Responses   n/a 0  116430785 
 The last entry that I see in the log is:
 INFO [AntiEntropySessions:18] 2014-02-03 04:01:39,145 RepairJob.java (line 
 116) [repair #ae78c6c0-8c2b-11e3-b950-c3b81a36bc9b] requesting merkle trees 
 for MyCF (to [/x.x.x.x, /y.y.y.y, /z.z.z.z])
 The repair started at 4am so it stopped after 1:40 minute.
 On node y.y.y.y I can see this in the log:
 INFO [MiscStage:1] 2014-02-03 04:01:38,985 ColumnFamilyStore.java (line 740) 
 Enqueuing flush of Memtable-MyCF@1290890489(2176/5931 serialized/live bytes, 
 32 ops)
  INFO [FlushWriter:411] 2014-02-03 04:01:38,986 Memtable.java (line 333) 
 Writing Memtable-MyCF@1290890489(2176/5931 serialized/live bytes, 32 ops)
  INFO [FlushWriter:411] 2014-02-03 04:01:39,048 Memtable.java (line 373) 
 Completed flushing 
 /var/lib/cassandra/main-db/data/MyKS/MyCF/MyKS-MyCF-jb-518-Data.db (1789 
 bytes) for commitlog position ReplayPosition(segmentId=1390437013339, 
 position=21868792)
  INFO [ScheduledTasks:1] 2014-02-03 05:00:04,794 ColumnFamilyStore.java (line 
 740) Enqueuing flush of Memtable-compaction_history@1649414699(1635/17360 
 serialized/live bytes, 42 ops)
 So for some reason the merkle tree for this CF is never sent back to the node 
 being repaired and it's hanging.
 I've also noticed that sometimes, restarting node y.y.y.y will cause the  
 repair to resume.
 Another observation is that sometimes when restarting y.y.y.y it will not 
 start with these errors:
 ERROR 16:34:18,485 Exception encountered during startup
 java.lang.IllegalStateException: Unfinished compactions reference missing 
 sstables. This should never happen since compactions are marked finished 
 before we start removing the old sstables.
   at 
 org.apache.cassandra.db.ColumnFamilyStore.removeUnfinishedCompactionLeftovers(ColumnFamilyStore.java:495)
   at 
 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:264)
   at 
 org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:461)
   at 
 org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:504)
 

[jira] [Commented] (CASSANDRA-4757) Expose bulk loading progress/status over jmx

2014-02-05 Thread Tyler Hobbs (JIRA)

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

Tyler Hobbs commented on CASSANDRA-4757:


bq. My only other question would be if the building indexes step of bulk 
loading would be included in that progress as well.

In 2.0 index building is the last step before marking a streaming task as 
complete, so it's included.

 Expose bulk loading progress/status over jmx
 

 Key: CASSANDRA-4757
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4757
 Project: Cassandra
  Issue Type: Improvement
Reporter: Nick Bailey
Assignee: Tyler Hobbs
Priority: Minor
  Labels: lhf
 Fix For: 2.0.6

 Attachments: CASSANDRA-4757.txt, CASSANDRA-4757v2.txt


 The bulk loading interface should be exposing some progress or status 
 information over jmx. This shouldn't be too difficult and should be exposed 
 in a way that the information is available whether you are using the separate 
 sstableloader utility or calling the bulkload jmx call.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


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

2014-02-05 Thread slebresne
Merge branch 'cassandra-2.0' into trunk

Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/db/AtomicSortedColumns.java
src/java/org/apache/cassandra/db/Memtable.java


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

Branch: refs/heads/trunk
Commit: fe4247e589714d9ea183187c0538b6446f16ffca
Parents: 58d1a4f 58e9481
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 18:51:40 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 18:51:40 2014 +0100

--
 CHANGES.txt |  8 ++-
 .../apache/cassandra/db/AtomicBTreeColumns.java | 22 
 .../org/apache/cassandra/db/DeletionInfo.java   | 14 +
 src/java/org/apache/cassandra/db/Memtable.java  |  4 +---
 4 files changed, 30 insertions(+), 18 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe4247e5/CHANGES.txt
--
diff --cc CHANGES.txt
index 0690c38,bba5f20..7d628b5
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,40 -1,7 +1,36 @@@
 +2.1
 + * add listsnapshots command to nodetool (CASSANDRA-5742)
 + * Introduce AtomicBTreeColumns (CASSANDRA-6271)
 + * Multithreaded commitlog (CASSANDRA-3578)
 + * allocate fixed index summary memory pool and resample cold index summaries 
 +   to use less memory (CASSANDRA-5519)
 + * Removed multithreaded compaction (CASSANDRA-6142)
 + * Parallelize fetching rows for low-cardinality indexes (CASSANDRA-1337)
 + * change logging from log4j to logback (CASSANDRA-5883)
 + * switch to LZ4 compression for internode communication (CASSANDRA-5887)
 + * Stop using Thrift-generated Index* classes internally (CASSANDRA-5971)
 + * Remove 1.2 network compatibility code (CASSANDRA-5960)
 + * Remove leveled json manifest migration code (CASSANDRA-5996)
 + * Remove CFDefinition (CASSANDRA-6253)
 + * Use AtomicIntegerFieldUpdater in RefCountedMemory (CASSANDRA-6278)
 + * User-defined types for CQL3 (CASSANDRA-5590)
 + * Use of o.a.c.metrics in nodetool (CASSANDRA-5871, 6406)
 + * Batch read from OTC's queue and cleanup (CASSANDRA-1632)
 + * Secondary index support for collections (CASSANDRA-4511, 6383)
 + * SSTable metadata(Stats.db) format change (CASSANDRA-6356)
 + * Push composites support in the storage engine
 +   (CASSANDRA-5417, CASSANDRA-6520)
 + * Add snapshot space used to cfstats (CASSANDRA-6231)
 + * Add cardinality estimator for key count estimation (CASSANDRA-5906)
 + * CF id is changed to be non-deterministic. Data dir/key cache are created
 +   uniquely for CF id (CASSANDRA-5202)
 + * New counters implementation (CASSANDRA-6504)
 +
 +
  2.0.6
-  * Fix direct Memory on architectures that do not support unaligned long 
access
-(CASSANDRA-6628)
-  * Let scrub optionally skip broken counter partitions (CASSANDRA-5930)
  Merged from 1.2:
-  * Move handling of migration event source to solve bootstrap race. 
(CASSANDRA-6648)
-  * Make sure compaction throughput value doesn't overflow with int math 
(CASSANDRA-6647)
-  
+  * Fix partition and range deletes not triggering flush (CASSANDRA-6655)
+ 
  
  2.0.5
   * Reduce garbage generated by bloom filter lookups (CASSANDRA-6609)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe4247e5/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java
--
diff --cc src/java/org/apache/cassandra/db/AtomicBTreeColumns.java
index 238bb7c,000..fd7d4bc
mode 100644,00..100644
--- a/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java
+++ b/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java
@@@ -1,457 -1,0 +1,461 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one
 + * or more contributor license agreements.  See the NOTICE file
 + * distributed with this work for additional information
 + * regarding copyright ownership.  The ASF licenses this file
 + * to you under the Apache License, Version 2.0 (the
 + * License); you may not use this file except in compliance
 + * with the License.  You may obtain a copy of the License at
 + *
 + * http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an AS IS BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.cassandra.db;
 +
 +import java.util.AbstractCollection;
 +import java.util.ArrayList;
 

[1/3] git commit: Fix partition and range deletes not triggering flush

2014-02-05 Thread slebresne
Updated Branches:
  refs/heads/trunk 58d1a4f81 - fe4247e58


Fix partition and range deletes not triggering flush

patch by benedict; reviewed by slebresne for CASSANDRA-6655


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

Branch: refs/heads/trunk
Commit: adcb713d597302a868b6224a87ea6ce38e718e5d
Parents: 16efdf4
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 18:34:37 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 18:34:37 2014 +0100

--
 CHANGES.txt   |  3 +++
 .../org/apache/cassandra/db/AtomicSortedColumns.java  |  7 ++-
 src/java/org/apache/cassandra/db/DeletionInfo.java| 14 ++
 src/java/org/apache/cassandra/db/Memtable.java| 10 ++
 4 files changed, 29 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/adcb713d/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 0989dc4..cfdd148 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,6 @@
+1.2.16
+ * Fix partition and range deletes not triggering flush (CASSANDRA-6655)
+
 1.2.15
  * Move handling of migration event source to solve bootstrap race 
(CASSANDRA-6648)
  * Make sure compaction throughput value doesn't overflow with int math 
(CASSANDRA-6647)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/adcb713d/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
--
diff --git a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java 
b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
index 9803544..d6c861b 100644
--- a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
+++ b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
@@ -194,7 +194,12 @@ public class AtomicSortedColumns implements ISortedColumns
 {
 sizeDelta = 0;
 current = ref.get();
-DeletionInfo newDelInfo = 
current.deletionInfo.copy().add(cm.getDeletionInfo());
+DeletionInfo newDelInfo = current.deletionInfo;
+if (cm.getDeletionInfo().mayModify(newDelInfo))
+{
+newDelInfo = 
current.deletionInfo.copy().add(cm.getDeletionInfo());
+sizeDelta += newDelInfo.dataSize() - 
current.deletionInfo.dataSize();
+}
 modified = new Holder(current.map.clone(), newDelInfo);
 
 for (IColumn column : cm.getSortedColumns())

http://git-wip-us.apache.org/repos/asf/cassandra/blob/adcb713d/src/java/org/apache/cassandra/db/DeletionInfo.java
--
diff --git a/src/java/org/apache/cassandra/db/DeletionInfo.java 
b/src/java/org/apache/cassandra/db/DeletionInfo.java
index e486eeb..91af9fd 100644
--- a/src/java/org/apache/cassandra/db/DeletionInfo.java
+++ b/src/java/org/apache/cassandra/db/DeletionInfo.java
@@ -216,6 +216,20 @@ public class DeletionInfo
 return size + (ranges == null ? 0 : ranges.dataSize());
 }
 
+public int rangeCount()
+{
+return ranges == null ? 0 : ranges.size();
+}
+
+/**
+ * Whether this deletion info may modify the provided one if added to it.
+ */
+public boolean mayModify(DeletionInfo delInfo)
+{
+return topLevel.markedForDeleteAt  delInfo.topLevel.markedForDeleteAt
+|| ranges == null;
+}
+
 @Override
 public String toString()
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/adcb713d/src/java/org/apache/cassandra/db/Memtable.java
--
diff --git a/src/java/org/apache/cassandra/db/Memtable.java 
b/src/java/org/apache/cassandra/db/Memtable.java
index 817561b..b229060 100644
--- a/src/java/org/apache/cassandra/db/Memtable.java
+++ b/src/java/org/apache/cassandra/db/Memtable.java
@@ -192,6 +192,7 @@ public class Memtable
 {
 ColumnFamily previous = columnFamilies.get(key);
 
+long sizeDelta = 0;
 if (previous == null)
 {
 // AtomicSortedColumns doesn't work for super columns (see #3821)
@@ -199,14 +200,15 @@ public class Memtable
 // We'll add the columns later. This avoids wasting works if we 
get beaten in the putIfAbsent
 previous = columnFamilies.putIfAbsent(new DecoratedKey(key.token, 
allocator.clone(key.key)), empty);
 if (previous == null)
+{
 previous = empty;
+sizeDelta += 

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

2014-02-05 Thread slebresne
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/db/AtomicSortedColumns.java
src/java/org/apache/cassandra/db/DeletionInfo.java


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

Branch: refs/heads/cassandra-2.0
Commit: 58e948185e214dbdc68e4ce533edb4dfa5430b51
Parents: 49bb972 adcb713
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 18:42:00 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 18:42:00 2014 +0100

--
 CHANGES.txt   |  5 +
 .../org/apache/cassandra/db/AtomicSortedColumns.java  |  7 ++-
 src/java/org/apache/cassandra/db/DeletionInfo.java| 14 ++
 src/java/org/apache/cassandra/db/Memtable.java| 10 ++
 4 files changed, 31 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/58e94818/CHANGES.txt
--
diff --cc CHANGES.txt
index 9599e56,cfdd148..bba5f20
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,29 -1,21 +1,34 @@@
 -1.2.16
++2.0.6
++Merged from 1.2:
+  * Fix partition and range deletes not triggering flush (CASSANDRA-6655)
+ 
 -1.2.15
 - * Move handling of migration event source to solve bootstrap race 
(CASSANDRA-6648)
 - * Make sure compaction throughput value doesn't overflow with int math 
(CASSANDRA-6647)
 -
+ 
 -1.2.14
 - * Reverted code to limit CQL prepared statement cache by size 
(CASSANDRA-6592)
 - * add cassandra.default_messaging_version property to allow easier
 -   upgrading from 1.1 (CASSANDRA-6619)
 - * Allow executing CREATE statements multiple times (CASSANDRA-6471)
 - * Don't send confusing info with timeouts (CASSANDRA-6491)
 - * Don't resubmit counter mutation runnables internally (CASSANDRA-6427)
 - * Don't drop local mutations without a hint (CASSANDRA-6510)
 - * Don't allow null max_hint_window_in_ms (CASSANDRA-6419)
 - * Validate SliceRange start and finish lengths (CASSANDRA-6521)
 +2.0.5
 + * Reduce garbage generated by bloom filter lookups (CASSANDRA-6609)
 + * Add ks.cf names to tombstone logging (CASSANDRA-6597)
 + * Use LOCAL_QUORUM for LWT operations at LOCAL_SERIAL (CASSANDRA-6495)
 + * Wait for gossip to settle before accepting client connections 
(CASSANDRA-4288)
 + * Delete unfinished compaction incrementally (CASSANDRA-6086)
 + * Allow specifying custom secondary index options in CQL3 (CASSANDRA-6480)
 + * Improve replica pinning for cache efficiency in DES (CASSANDRA-6485)
 + * Fix LOCAL_SERIAL from thrift (CASSANDRA-6584)
 + * Don't special case received counts in CAS timeout exceptions 
(CASSANDRA-6595)
 + * Add support for 2.1 global counter shards (CASSANDRA-6505)
 + * Fix NPE when streaming connection is not yet established (CASSANDRA-6210)
 + * Avoid rare duplicate read repair triggering (CASSANDRA-6606)
 + * Fix paging discardFirst (CASSANDRA-6555)
 + * Fix ArrayIndexOutOfBoundsException in 2ndary index query (CASSANDRA-6470)
 + * Release sstables upon rebuilding 2i (CASSANDRA-6635)
 + * Add AbstractCompactionStrategy.startup() method (CASSANDRA-6637)
 + * SSTableScanner may skip rows during cleanup (CASSANDRA-6638)
 + * sstables from stalled repair sessions can resurrect deleted data 
(CASSANDRA-6503)
 + * Switch stress to use ITransportFactory (CASSANDRA-6641)
 + * Fix IllegalArgumentException during prepare (CASSANDRA-6592)
 + * Fix possible loss of 2ndary index entries during compaction 
(CASSANDRA-6517)
 + * Fix direct Memory on architectures that do not support unaligned long 
access
 +   (CASSANDRA-6628)
 + * Let scrub optionally skip broken counter partitions (CASSANDRA-5930)
 +Merged from 1.2:
   * fsync compression metadata (CASSANDRA-6531)
   * Validate CF existence on execution for prepared statement (CASSANDRA-6535)
   * Add ability to throttle batchlog replay (CASSANDRA-6550)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/58e94818/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
--
diff --cc src/java/org/apache/cassandra/db/AtomicSortedColumns.java
index 1c0bf1b,d6c861b..d3a979c
--- a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
+++ b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
@@@ -178,19 -194,15 +178,24 @@@ public class AtomicSortedColumns extend
  {
  sizeDelta = 0;
  current = ref.get();
- DeletionInfo newDelInfo = 
current.deletionInfo.copy().add(cm.deletionInfo());
+ DeletionInfo newDelInfo = 

[1/2] git commit: Fix partition and range deletes not triggering flush

2014-02-05 Thread slebresne
Updated Branches:
  refs/heads/cassandra-2.0 49bb972c6 - 58e948185


Fix partition and range deletes not triggering flush

patch by benedict; reviewed by slebresne for CASSANDRA-6655


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

Branch: refs/heads/cassandra-2.0
Commit: adcb713d597302a868b6224a87ea6ce38e718e5d
Parents: 16efdf4
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 18:34:37 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 18:34:37 2014 +0100

--
 CHANGES.txt   |  3 +++
 .../org/apache/cassandra/db/AtomicSortedColumns.java  |  7 ++-
 src/java/org/apache/cassandra/db/DeletionInfo.java| 14 ++
 src/java/org/apache/cassandra/db/Memtable.java| 10 ++
 4 files changed, 29 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/adcb713d/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 0989dc4..cfdd148 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,6 @@
+1.2.16
+ * Fix partition and range deletes not triggering flush (CASSANDRA-6655)
+
 1.2.15
  * Move handling of migration event source to solve bootstrap race 
(CASSANDRA-6648)
  * Make sure compaction throughput value doesn't overflow with int math 
(CASSANDRA-6647)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/adcb713d/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
--
diff --git a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java 
b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
index 9803544..d6c861b 100644
--- a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
+++ b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
@@ -194,7 +194,12 @@ public class AtomicSortedColumns implements ISortedColumns
 {
 sizeDelta = 0;
 current = ref.get();
-DeletionInfo newDelInfo = 
current.deletionInfo.copy().add(cm.getDeletionInfo());
+DeletionInfo newDelInfo = current.deletionInfo;
+if (cm.getDeletionInfo().mayModify(newDelInfo))
+{
+newDelInfo = 
current.deletionInfo.copy().add(cm.getDeletionInfo());
+sizeDelta += newDelInfo.dataSize() - 
current.deletionInfo.dataSize();
+}
 modified = new Holder(current.map.clone(), newDelInfo);
 
 for (IColumn column : cm.getSortedColumns())

http://git-wip-us.apache.org/repos/asf/cassandra/blob/adcb713d/src/java/org/apache/cassandra/db/DeletionInfo.java
--
diff --git a/src/java/org/apache/cassandra/db/DeletionInfo.java 
b/src/java/org/apache/cassandra/db/DeletionInfo.java
index e486eeb..91af9fd 100644
--- a/src/java/org/apache/cassandra/db/DeletionInfo.java
+++ b/src/java/org/apache/cassandra/db/DeletionInfo.java
@@ -216,6 +216,20 @@ public class DeletionInfo
 return size + (ranges == null ? 0 : ranges.dataSize());
 }
 
+public int rangeCount()
+{
+return ranges == null ? 0 : ranges.size();
+}
+
+/**
+ * Whether this deletion info may modify the provided one if added to it.
+ */
+public boolean mayModify(DeletionInfo delInfo)
+{
+return topLevel.markedForDeleteAt  delInfo.topLevel.markedForDeleteAt
+|| ranges == null;
+}
+
 @Override
 public String toString()
 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/adcb713d/src/java/org/apache/cassandra/db/Memtable.java
--
diff --git a/src/java/org/apache/cassandra/db/Memtable.java 
b/src/java/org/apache/cassandra/db/Memtable.java
index 817561b..b229060 100644
--- a/src/java/org/apache/cassandra/db/Memtable.java
+++ b/src/java/org/apache/cassandra/db/Memtable.java
@@ -192,6 +192,7 @@ public class Memtable
 {
 ColumnFamily previous = columnFamilies.get(key);
 
+long sizeDelta = 0;
 if (previous == null)
 {
 // AtomicSortedColumns doesn't work for super columns (see #3821)
@@ -199,14 +200,15 @@ public class Memtable
 // We'll add the columns later. This avoids wasting works if we 
get beaten in the putIfAbsent
 previous = columnFamilies.putIfAbsent(new DecoratedKey(key.token, 
allocator.clone(key.key)), empty);
 if (previous == null)
+{
 previous = empty;
+sizeDelta += 

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

2014-02-05 Thread slebresne
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/db/AtomicSortedColumns.java
src/java/org/apache/cassandra/db/DeletionInfo.java


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

Branch: refs/heads/trunk
Commit: 58e948185e214dbdc68e4ce533edb4dfa5430b51
Parents: 49bb972 adcb713
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Wed Feb 5 18:42:00 2014 +0100
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Wed Feb 5 18:42:00 2014 +0100

--
 CHANGES.txt   |  5 +
 .../org/apache/cassandra/db/AtomicSortedColumns.java  |  7 ++-
 src/java/org/apache/cassandra/db/DeletionInfo.java| 14 ++
 src/java/org/apache/cassandra/db/Memtable.java| 10 ++
 4 files changed, 31 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/58e94818/CHANGES.txt
--
diff --cc CHANGES.txt
index 9599e56,cfdd148..bba5f20
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,29 -1,21 +1,34 @@@
 -1.2.16
++2.0.6
++Merged from 1.2:
+  * Fix partition and range deletes not triggering flush (CASSANDRA-6655)
+ 
 -1.2.15
 - * Move handling of migration event source to solve bootstrap race 
(CASSANDRA-6648)
 - * Make sure compaction throughput value doesn't overflow with int math 
(CASSANDRA-6647)
 -
+ 
 -1.2.14
 - * Reverted code to limit CQL prepared statement cache by size 
(CASSANDRA-6592)
 - * add cassandra.default_messaging_version property to allow easier
 -   upgrading from 1.1 (CASSANDRA-6619)
 - * Allow executing CREATE statements multiple times (CASSANDRA-6471)
 - * Don't send confusing info with timeouts (CASSANDRA-6491)
 - * Don't resubmit counter mutation runnables internally (CASSANDRA-6427)
 - * Don't drop local mutations without a hint (CASSANDRA-6510)
 - * Don't allow null max_hint_window_in_ms (CASSANDRA-6419)
 - * Validate SliceRange start and finish lengths (CASSANDRA-6521)
 +2.0.5
 + * Reduce garbage generated by bloom filter lookups (CASSANDRA-6609)
 + * Add ks.cf names to tombstone logging (CASSANDRA-6597)
 + * Use LOCAL_QUORUM for LWT operations at LOCAL_SERIAL (CASSANDRA-6495)
 + * Wait for gossip to settle before accepting client connections 
(CASSANDRA-4288)
 + * Delete unfinished compaction incrementally (CASSANDRA-6086)
 + * Allow specifying custom secondary index options in CQL3 (CASSANDRA-6480)
 + * Improve replica pinning for cache efficiency in DES (CASSANDRA-6485)
 + * Fix LOCAL_SERIAL from thrift (CASSANDRA-6584)
 + * Don't special case received counts in CAS timeout exceptions 
(CASSANDRA-6595)
 + * Add support for 2.1 global counter shards (CASSANDRA-6505)
 + * Fix NPE when streaming connection is not yet established (CASSANDRA-6210)
 + * Avoid rare duplicate read repair triggering (CASSANDRA-6606)
 + * Fix paging discardFirst (CASSANDRA-6555)
 + * Fix ArrayIndexOutOfBoundsException in 2ndary index query (CASSANDRA-6470)
 + * Release sstables upon rebuilding 2i (CASSANDRA-6635)
 + * Add AbstractCompactionStrategy.startup() method (CASSANDRA-6637)
 + * SSTableScanner may skip rows during cleanup (CASSANDRA-6638)
 + * sstables from stalled repair sessions can resurrect deleted data 
(CASSANDRA-6503)
 + * Switch stress to use ITransportFactory (CASSANDRA-6641)
 + * Fix IllegalArgumentException during prepare (CASSANDRA-6592)
 + * Fix possible loss of 2ndary index entries during compaction 
(CASSANDRA-6517)
 + * Fix direct Memory on architectures that do not support unaligned long 
access
 +   (CASSANDRA-6628)
 + * Let scrub optionally skip broken counter partitions (CASSANDRA-5930)
 +Merged from 1.2:
   * fsync compression metadata (CASSANDRA-6531)
   * Validate CF existence on execution for prepared statement (CASSANDRA-6535)
   * Add ability to throttle batchlog replay (CASSANDRA-6550)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/58e94818/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
--
diff --cc src/java/org/apache/cassandra/db/AtomicSortedColumns.java
index 1c0bf1b,d6c861b..d3a979c
--- a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
+++ b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
@@@ -178,19 -194,15 +178,24 @@@ public class AtomicSortedColumns extend
  {
  sizeDelta = 0;
  current = ref.get();
- DeletionInfo newDelInfo = 
current.deletionInfo.copy().add(cm.deletionInfo());
+ DeletionInfo newDelInfo = current.deletionInfo;
 - 

[jira] [Updated] (CASSANDRA-6658) Nodes flap once at startup

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-6658:


Since Version: 2.0.3  (was: 2.0.4)

 Nodes flap once at startup
 --

 Key: CASSANDRA-6658
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6658
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Brandon Williams
Assignee: Brandon Williams
Priority: Minor

 Upon initially seeing each other, a node will mark another UP, then DOWN, 
 then UP again.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6658) Nodes flap once at startup

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-6658:


Attachment: 6658.txt

At least one problem is that in CASSANDRA-6385 we never converted the initial 
value to nanos, so when we divide by the mean when the only sample is the 
initial value and thus equivalent to it, the resulting phi is inflated.

 Nodes flap once at startup
 --

 Key: CASSANDRA-6658
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6658
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Brandon Williams
Assignee: Brandon Williams
Priority: Minor
 Attachments: 6658.txt


 Upon initially seeing each other, a node will mark another UP, then DOWN, 
 then UP again.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6528) TombstoneOverwhelmingException is thrown while populating data in recently truncated CF

2014-02-05 Thread Machiel Groeneveld (JIRA)

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

Machiel Groeneveld commented on CASSANDRA-6528:
---

create table IF NOT EXISTS visits.visits(
  id text,
  cookie_uuid text, cookie_uuid text, external_click_id text, session_id text,
  visitor_ip text, user_agent text, uuid_hash text,
  shop_product_id int, channel_id int, shop_id int, shop_category_id int,
  type int, medium_id int, campaign_id int, channel_affiliate_id int,
  default_cpc float,
  created_at timestamp, updated_at timestamp, time_id int,
  disabled int, has_referer boolean, known_visitor boolean, marketing boolean,
  primary key(time_id, id));


 TombstoneOverwhelmingException is thrown while populating data in recently 
 truncated CF
 ---

 Key: CASSANDRA-6528
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6528
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: Cassadra 2.0.3, Linux, 6 nodes
Reporter: Nikolai Grigoriev
Priority: Minor

 I am running some performance tests and recently I had to flush the data from 
 one of the tables and repopulate it. I have about 30M rows with a few columns 
 in each, about 5kb per row in in total. In order to repopulate the data I do 
 truncate table from CQLSH and then relaunch the test. The test simply 
 inserts the data in the table, does not read anything. Shortly after 
 restarting the data generator I see this on one of the nodes:
 {code}
  INFO [HintedHandoff:655] 2013-12-26 16:45:42,185 HintedHandOffManager.java 
 (line 323) Started hinted handoff f
 or host: 985c8a08-3d92-4fad-a1d1-7135b2b9774a with IP: /10.5.45.158
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 SliceQueryFilter.java (line 
 200) Scanned ove
 r 10 tombstones; query aborted (see tombstone_fail_threshold)
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 CassandraDaemon.java (line 
 187) Exception in thread Thread[HintedHandoff:655,1,main]
 org.apache.cassandra.db.filter.TombstoneOverwhelmingException
 at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:201)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:122)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:80)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:72)
 at 
 org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:297)
 at 
 org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:56)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1487)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1306)
 at 
 org.apache.cassandra.db.HintedHandOffManager.doDeliverHintsToEndpoint(HintedHandOffManager.java:351)
 at 
 org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:309)
 at 
 org.apache.cassandra.db.HintedHandOffManager.access$4(HintedHandOffManager.java:281)
 at 
 org.apache.cassandra.db.HintedHandOffManager$4.run(HintedHandOffManager.java:530)
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:724)
  INFO [OptionalTasks:1] 2013-12-26 16:45:53,946 MeteredFlusher.java (line 63) 
 flushing high-traffic column family CFS(Keyspace='test_jmeter', 
 ColumnFamily='test_profiles') (estimated 192717267 bytes)
 {code}
 I am inserting the data with CL=1.
 It seems to be happening every time I do it. But I do not see any errors on 
 the client side and the node seems to continue operating, this is why I think 
 it is not a major issue. Maybe not an issue at all, but the message is logged 
 as ERROR.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Comment Edited] (CASSANDRA-6528) TombstoneOverwhelmingException is thrown while populating data in recently truncated CF

2014-02-05 Thread Machiel Groeneveld (JIRA)

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

Machiel Groeneveld edited comment on CASSANDRA-6528 at 2/5/14 6:07 PM:
---

create table IF NOT EXISTS visits.visits(
  id text,
  cookie_uuid text, cookie_uuid text, external_click_id text, session_id text,
  visitor_ip text, user_agent text, uuid_hash text,
  shop_product_id int, channel_id int, shop_id int, shop_category_id int,
  type int, medium_id int, campaign_id int, channel_affiliate_id int,
  default_cpc float,
  created_at timestamp, updated_at timestamp, time_id int,
  disabled int, has_referer boolean, known_visitor boolean, marketing boolean,
  primary key(time_id, id));

SELECT * FROM VISITS



was (Author: machielg):
create table IF NOT EXISTS visits.visits(
  id text,
  cookie_uuid text, cookie_uuid text, external_click_id text, session_id text,
  visitor_ip text, user_agent text, uuid_hash text,
  shop_product_id int, channel_id int, shop_id int, shop_category_id int,
  type int, medium_id int, campaign_id int, channel_affiliate_id int,
  default_cpc float,
  created_at timestamp, updated_at timestamp, time_id int,
  disabled int, has_referer boolean, known_visitor boolean, marketing boolean,
  primary key(time_id, id));


 TombstoneOverwhelmingException is thrown while populating data in recently 
 truncated CF
 ---

 Key: CASSANDRA-6528
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6528
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: Cassadra 2.0.3, Linux, 6 nodes
Reporter: Nikolai Grigoriev
Priority: Minor

 I am running some performance tests and recently I had to flush the data from 
 one of the tables and repopulate it. I have about 30M rows with a few columns 
 in each, about 5kb per row in in total. In order to repopulate the data I do 
 truncate table from CQLSH and then relaunch the test. The test simply 
 inserts the data in the table, does not read anything. Shortly after 
 restarting the data generator I see this on one of the nodes:
 {code}
  INFO [HintedHandoff:655] 2013-12-26 16:45:42,185 HintedHandOffManager.java 
 (line 323) Started hinted handoff f
 or host: 985c8a08-3d92-4fad-a1d1-7135b2b9774a with IP: /10.5.45.158
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 SliceQueryFilter.java (line 
 200) Scanned ove
 r 10 tombstones; query aborted (see tombstone_fail_threshold)
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 CassandraDaemon.java (line 
 187) Exception in thread Thread[HintedHandoff:655,1,main]
 org.apache.cassandra.db.filter.TombstoneOverwhelmingException
 at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:201)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:122)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:80)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:72)
 at 
 org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:297)
 at 
 org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:56)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1487)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1306)
 at 
 org.apache.cassandra.db.HintedHandOffManager.doDeliverHintsToEndpoint(HintedHandOffManager.java:351)
 at 
 org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:309)
 at 
 org.apache.cassandra.db.HintedHandOffManager.access$4(HintedHandOffManager.java:281)
 at 
 org.apache.cassandra.db.HintedHandOffManager$4.run(HintedHandOffManager.java:530)
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:724)
  INFO [OptionalTasks:1] 2013-12-26 16:45:53,946 MeteredFlusher.java (line 63) 
 flushing high-traffic column family CFS(Keyspace='test_jmeter', 
 ColumnFamily='test_profiles') (estimated 192717267 bytes)
 {code}
 I am inserting the data with CL=1.
 It seems to be happening every time I do it. But I do not see any errors on 
 the client side and the node seems to continue operating, this is why I think 
 it is not a major issue. Maybe not an issue at all, but the message is logged 
 as ERROR.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6658) Nodes flap once at startup

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-6658:


Attachment: (was: 6658.txt)

 Nodes flap once at startup
 --

 Key: CASSANDRA-6658
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6658
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Brandon Williams
Assignee: Brandon Williams
Priority: Minor
 Attachments: 6658.txt


 Upon initially seeing each other, a node will mark another UP, then DOWN, 
 then UP again.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6528) TombstoneOverwhelmingException is thrown while populating data in recently truncated CF

2014-02-05 Thread Aleksey Yeschenko (JIRA)

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

Aleksey Yeschenko commented on CASSANDRA-6528:
--

Example insert query. Do you ever insert, or update set NULL?

 TombstoneOverwhelmingException is thrown while populating data in recently 
 truncated CF
 ---

 Key: CASSANDRA-6528
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6528
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: Cassadra 2.0.3, Linux, 6 nodes
Reporter: Nikolai Grigoriev
Priority: Minor

 I am running some performance tests and recently I had to flush the data from 
 one of the tables and repopulate it. I have about 30M rows with a few columns 
 in each, about 5kb per row in in total. In order to repopulate the data I do 
 truncate table from CQLSH and then relaunch the test. The test simply 
 inserts the data in the table, does not read anything. Shortly after 
 restarting the data generator I see this on one of the nodes:
 {code}
  INFO [HintedHandoff:655] 2013-12-26 16:45:42,185 HintedHandOffManager.java 
 (line 323) Started hinted handoff f
 or host: 985c8a08-3d92-4fad-a1d1-7135b2b9774a with IP: /10.5.45.158
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 SliceQueryFilter.java (line 
 200) Scanned ove
 r 10 tombstones; query aborted (see tombstone_fail_threshold)
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 CassandraDaemon.java (line 
 187) Exception in thread Thread[HintedHandoff:655,1,main]
 org.apache.cassandra.db.filter.TombstoneOverwhelmingException
 at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:201)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:122)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:80)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:72)
 at 
 org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:297)
 at 
 org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:56)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1487)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1306)
 at 
 org.apache.cassandra.db.HintedHandOffManager.doDeliverHintsToEndpoint(HintedHandOffManager.java:351)
 at 
 org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:309)
 at 
 org.apache.cassandra.db.HintedHandOffManager.access$4(HintedHandOffManager.java:281)
 at 
 org.apache.cassandra.db.HintedHandOffManager$4.run(HintedHandOffManager.java:530)
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:724)
  INFO [OptionalTasks:1] 2013-12-26 16:45:53,946 MeteredFlusher.java (line 63) 
 flushing high-traffic column family CFS(Keyspace='test_jmeter', 
 ColumnFamily='test_profiles') (estimated 192717267 bytes)
 {code}
 I am inserting the data with CL=1.
 It seems to be happening every time I do it. But I do not see any errors on 
 the client side and the node seems to continue operating, this is why I think 
 it is not a major issue. Maybe not an issue at all, but the message is logged 
 as ERROR.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6658) Nodes flap once at startup

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-6658:


Attachment: 6658.txt

 Nodes flap once at startup
 --

 Key: CASSANDRA-6658
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6658
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Brandon Williams
Assignee: Brandon Williams
Priority: Minor
 Attachments: 6658.txt


 Upon initially seeing each other, a node will mark another UP, then DOWN, 
 then UP again.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Comment Edited] (CASSANDRA-6528) TombstoneOverwhelmingException is thrown while populating data in recently truncated CF

2014-02-05 Thread Machiel Groeneveld (JIRA)

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

Machiel Groeneveld edited comment on CASSANDRA-6528 at 2/5/14 6:10 PM:
---

I have the same issue, after inserting 216258 records (sharing the same 
partition key) in a new database (I reinstalled Cassandra) I couldn't run a 
select query (something like 'select * from partition_key = x'). Also a 
count(*) on the table gives me tombstone warnings. I'm not expecting any 
tombstones as they are all inserts (not 100% sure about possible overwriting 
though)

In the log I get org.apache.cassandra.db.filter.TombstoneOverwhelmingException


was (Author: machielg):
I have the same issue, after inserting 216258 records (in one row) in a new 
database (I removed all files in the data directory files before starting) I 
couldn't run a select query (something like 'select * from partition_key = x')

In the log I get org.apache.cassandra.db.filter.TombstoneOverwhelmingException

 TombstoneOverwhelmingException is thrown while populating data in recently 
 truncated CF
 ---

 Key: CASSANDRA-6528
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6528
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: Cassadra 2.0.3, Linux, 6 nodes
Reporter: Nikolai Grigoriev
Priority: Minor

 I am running some performance tests and recently I had to flush the data from 
 one of the tables and repopulate it. I have about 30M rows with a few columns 
 in each, about 5kb per row in in total. In order to repopulate the data I do 
 truncate table from CQLSH and then relaunch the test. The test simply 
 inserts the data in the table, does not read anything. Shortly after 
 restarting the data generator I see this on one of the nodes:
 {code}
  INFO [HintedHandoff:655] 2013-12-26 16:45:42,185 HintedHandOffManager.java 
 (line 323) Started hinted handoff f
 or host: 985c8a08-3d92-4fad-a1d1-7135b2b9774a with IP: /10.5.45.158
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 SliceQueryFilter.java (line 
 200) Scanned ove
 r 10 tombstones; query aborted (see tombstone_fail_threshold)
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 CassandraDaemon.java (line 
 187) Exception in thread Thread[HintedHandoff:655,1,main]
 org.apache.cassandra.db.filter.TombstoneOverwhelmingException
 at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:201)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:122)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:80)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:72)
 at 
 org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:297)
 at 
 org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:56)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1487)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1306)
 at 
 org.apache.cassandra.db.HintedHandOffManager.doDeliverHintsToEndpoint(HintedHandOffManager.java:351)
 at 
 org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:309)
 at 
 org.apache.cassandra.db.HintedHandOffManager.access$4(HintedHandOffManager.java:281)
 at 
 org.apache.cassandra.db.HintedHandOffManager$4.run(HintedHandOffManager.java:530)
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:724)
  INFO [OptionalTasks:1] 2013-12-26 16:45:53,946 MeteredFlusher.java (line 63) 
 flushing high-traffic column family CFS(Keyspace='test_jmeter', 
 ColumnFamily='test_profiles') (estimated 192717267 bytes)
 {code}
 I am inserting the data with CL=1.
 It seems to be happening every time I do it. But I do not see any errors on 
 the client side and the node seems to continue operating, this is why I think 
 it is not a major issue. Maybe not an issue at all, but the message is logged 
 as ERROR.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-4757) Expose bulk loading progress/status over jmx

2014-02-05 Thread Tyler Hobbs (JIRA)

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

Tyler Hobbs updated CASSANDRA-4757:
---

Attachment: 4757-2.0.patch

4757-2.0.patch (and 
[branch|https://github.com/thobbs/cassandra/tree/CASSANDRA-4757]) makes the 
following changes:
* Add a bulkLoadAsync method to StorageServiceMBean which returns the string 
version of the planID
* Print the planID before loading starts in sstableloader
* sstableloader already had a {{--no-progress}} option, but it was being 
ignored, so I fixed that as well

 Expose bulk loading progress/status over jmx
 

 Key: CASSANDRA-4757
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4757
 Project: Cassandra
  Issue Type: Improvement
Reporter: Nick Bailey
Assignee: Tyler Hobbs
Priority: Minor
  Labels: lhf
 Fix For: 2.0.6

 Attachments: 4757-2.0.patch, CASSANDRA-4757.txt, CASSANDRA-4757v2.txt


 The bulk loading interface should be exposing some progress or status 
 information over jmx. This shouldn't be too difficult and should be exposed 
 in a way that the information is available whether you are using the separate 
 sstableloader utility or calling the bulkload jmx call.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-4757) Expose bulk loading progress/status over jmx

2014-02-05 Thread Tyler Hobbs (JIRA)

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

Tyler Hobbs updated CASSANDRA-4757:
---

Reviewer: Nick Bailey  (was: Yuki Morishita)

 Expose bulk loading progress/status over jmx
 

 Key: CASSANDRA-4757
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4757
 Project: Cassandra
  Issue Type: Improvement
Reporter: Nick Bailey
Assignee: Tyler Hobbs
Priority: Minor
  Labels: lhf
 Fix For: 2.0.6

 Attachments: 4757-2.0.patch, CASSANDRA-4757.txt, CASSANDRA-4757v2.txt


 The bulk loading interface should be exposing some progress or status 
 information over jmx. This shouldn't be too difficult and should be exposed 
 in a way that the information is available whether you are using the separate 
 sstableloader utility or calling the bulkload jmx call.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6360) Make nodetool cfhistograms output easily understandable

2014-02-05 Thread Tyler Hobbs (JIRA)

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

Tyler Hobbs commented on CASSANDRA-6360:


bq. Might be nice to print them side by side?

If you don't feel strongly about it, I'd prefer to not do this just to save 
time, although I agree it might look better.

 Make nodetool cfhistograms output easily understandable
 ---

 Key: CASSANDRA-6360
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6360
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Tyler Hobbs
Assignee: Tyler Hobbs
Priority: Trivial

 Almost nobody understands the cfhistograms output without googling it.  By 
 default, we shouldn't share an axis across all metrics.  We can still provide 
 the current format with a --compact option.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6360) Make nodetool cfhistograms output easily understandable

2014-02-05 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-6360:
-

It involves a lot of scrolling, which isn't ideal for terminal use as things 
stand. I think it would be nice to either print them side-by-side, or to 
coalesce adjacent buckets that contain little data. But I don't feel strongly 
about it, no.

 Make nodetool cfhistograms output easily understandable
 ---

 Key: CASSANDRA-6360
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6360
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Tyler Hobbs
Assignee: Tyler Hobbs
Priority: Trivial

 Almost nobody understands the cfhistograms output without googling it.  By 
 default, we shouldn't share an axis across all metrics.  We can still provide 
 the current format with a --compact option.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6360) Make nodetool cfhistograms output easily understandable

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams commented on CASSANDRA-6360:
-

The problem is you'd have to detect how wide the terminal is to know if you've 
gone too far, otherwise the output is going to be unreadable when it wraps.  
I'm fine with it the way it is.

 Make nodetool cfhistograms output easily understandable
 ---

 Key: CASSANDRA-6360
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6360
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Tyler Hobbs
Assignee: Tyler Hobbs
Priority: Trivial

 Almost nobody understands the cfhistograms output without googling it.  By 
 default, we shouldn't share an axis across all metrics.  We can still provide 
 the current format with a --compact option.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6360) Make nodetool cfhistograms output easily understandable

2014-02-05 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-6360:
-

bq. The problem is you'd have to detect how wide the terminal is to know if 
you've gone too far  ??

Just printing the two columns we have should be fine for basically any 
terminal. Anyone with a terminal with  ~30 characters can deal with it. Like 
they would for the compact format (where we assume ~100 chars)

 Make nodetool cfhistograms output easily understandable
 ---

 Key: CASSANDRA-6360
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6360
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Tyler Hobbs
Assignee: Tyler Hobbs
Priority: Trivial

 Almost nobody understands the cfhistograms output without googling it.  By 
 default, we shouldn't share an axis across all metrics.  We can still provide 
 the current format with a --compact option.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6360) Make nodetool cfhistograms output easily understandable

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams commented on CASSANDRA-6360:
-

Oh, I thought you meant print as many columns as possible.  We have a lot more 
than two columns, they're just not shown in Tyler's example, and there isn't 
always a logical pairing between them.

 Make nodetool cfhistograms output easily understandable
 ---

 Key: CASSANDRA-6360
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6360
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Tyler Hobbs
Assignee: Tyler Hobbs
Priority: Trivial
 Attachments: 6360-2.0.patch


 Almost nobody understands the cfhistograms output without googling it.  By 
 default, we shouldn't share an axis across all metrics.  We can still provide 
 the current format with a --compact option.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6360) Make nodetool cfhistograms output easily understandable

2014-02-05 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-6360:
-

bq. since things are improved in 2.1, it's not terribly important to me.

+1

 Make nodetool cfhistograms output easily understandable
 ---

 Key: CASSANDRA-6360
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6360
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Tyler Hobbs
Assignee: Tyler Hobbs
Priority: Trivial
 Attachments: 6360-2.0.patch


 Almost nobody understands the cfhistograms output without googling it.  By 
 default, we shouldn't share an axis across all metrics.  We can still provide 
 the current format with a --compact option.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6360) Make nodetool cfhistograms output easily understandable

2014-02-05 Thread Tyler Hobbs (JIRA)

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

Tyler Hobbs updated CASSANDRA-6360:
---

Attachment: 6360-2.0.patch

Actually, since the 2.1 output uses percentiles instead of an offsets column, 
I think it's fine as is.

I'm attaching 6360-2.0.patch in case we want to improve this just for the 
remainder of 2.0, but since things are improved in 2.1, it's not terribly 
important to me.

 Make nodetool cfhistograms output easily understandable
 ---

 Key: CASSANDRA-6360
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6360
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Tyler Hobbs
Assignee: Tyler Hobbs
Priority: Trivial
 Attachments: 6360-2.0.patch


 Almost nobody understands the cfhistograms output without googling it.  By 
 default, we shouldn't share an axis across all metrics.  We can still provide 
 the current format with a --compact option.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (CASSANDRA-6659) Allow intercepting query by user provided custom classes

2014-02-05 Thread Sylvain Lebresne (JIRA)
Sylvain Lebresne created CASSANDRA-6659:
---

 Summary: Allow intercepting query by user provided custom classes
 Key: CASSANDRA-6659
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6659
 Project: Cassandra
  Issue Type: Improvement
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
Priority: Minor


The idea for this ticket is to abstract the main execution methods of 
QueryProcessor into an interface, something like:
{noformat}
public interface QueryHandler
{
public ResultSet process(String query, QueryState state, QueryOptions 
options);
public ResultMessage.Prepared prepare(String query, QueryState state);
public ResultSet processPrepared(CQLStatement statement, QueryState state, 
QueryOptions options);
public ResultSet processBatch(BatchStatement statement, QueryState state, 
BatchQueryOptions options);
}
{noformat}
and to allow users to provide a specific class of their own (implementing said 
interface) to which the native protocol would handoff queries to (so by default 
queries would go to QueryProcessor, but you would have a way to use a custom 
class instead).

A typical use case for that could be to allow some form of custom logging of 
incoming queries and/or of their results. But this could probably also have 
some application for testing as one could have a handler that completely bypass 
QueryProcessor if you want, say, do perf regression tests for a given driver 
(and don't want to actually execute the query as you're perf testing the 
driver, not C*) without needing to patch the sources. Those being just 
examples, the mechanism is generic enough to allow for other ideas.

Most importantly, it requires very little code in C*. As for how users would 
register their handler, it can be as simple as a startup flag indicating the 
class to use, or a yaml setting, or both.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6659) Allow intercepting query by user provided custom classes

2014-02-05 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-6659:


Attachment: 6659.txt

Attaching fairly trivial patch to implement this (the patch is against 2.0 
because that has virtually no chance to break anything existing so why not). 
Note that the patch remove the pre and post execution hooks from QueryProcessor 
as those were only here for external tool and, unless I'm missing something 
obvious, the mechanism here provides a stricly more general mechanism.


 Allow intercepting query by user provided custom classes
 --

 Key: CASSANDRA-6659
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6659
 Project: Cassandra
  Issue Type: Improvement
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
Priority: Minor
 Attachments: 6659.txt


 The idea for this ticket is to abstract the main execution methods of 
 QueryProcessor into an interface, something like:
 {noformat}
 public interface QueryHandler
 {
 public ResultSet process(String query, QueryState state, QueryOptions 
 options);
 public ResultMessage.Prepared prepare(String query, QueryState state);
 public ResultSet processPrepared(CQLStatement statement, QueryState 
 state, QueryOptions options);
 public ResultSet processBatch(BatchStatement statement, QueryState state, 
 BatchQueryOptions options);
 }
 {noformat}
 and to allow users to provide a specific class of their own (implementing 
 said interface) to which the native protocol would handoff queries to (so by 
 default queries would go to QueryProcessor, but you would have a way to use a 
 custom class instead).
 A typical use case for that could be to allow some form of custom logging of 
 incoming queries and/or of their results. But this could probably also have 
 some application for testing as one could have a handler that completely 
 bypass QueryProcessor if you want, say, do perf regression tests for a given 
 driver (and don't want to actually execute the query as you're perf testing 
 the driver, not C*) without needing to patch the sources. Those being just 
 examples, the mechanism is generic enough to allow for other ideas.
 Most importantly, it requires very little code in C*. As for how users would 
 register their handler, it can be as simple as a startup flag indicating 
 the class to use, or a yaml setting, or both.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6360) Make nodetool cfhistograms output easily understandable

2014-02-05 Thread Tyler Hobbs (JIRA)

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

Tyler Hobbs updated CASSANDRA-6360:
---

Attachment: 6360-2.0-v2.patch

v2 patch (and 
[branch|https://github.com/thobbs/cassandra/tree/CASSANDRA-6360-rebase]) is 
rebased for the latest cassandra-2.0.

 Make nodetool cfhistograms output easily understandable
 ---

 Key: CASSANDRA-6360
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6360
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Tyler Hobbs
Assignee: Tyler Hobbs
Priority: Trivial
 Attachments: 6360-2.0-v2.patch, 6360-2.0.patch


 Almost nobody understands the cfhistograms output without googling it.  By 
 default, we shouldn't share an axis across all metrics.  We can still provide 
 the current format with a --compact option.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Assigned] (CASSANDRA-6657) Log the newsize value alongside the heap size at startup

2014-02-05 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis reassigned CASSANDRA-6657:
-

Assignee: Lyuben Todorov

 Log the newsize value alongside the heap size at startup
 

 Key: CASSANDRA-6657
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6657
 Project: Cassandra
  Issue Type: Wish
  Components: Core
Reporter: Jeremy Hanna
Assignee: Lyuben Todorov
Priority: Trivial

 It would be nice to have the newsize value logged alongside the heap size at 
 startup to more easily track down problems.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6657) Log the newsize value alongside the heap size at startup

2014-02-05 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-6657:
---

Suspect you will need to find the MemoryPoolMBean corresponding to young gen.

 Log the newsize value alongside the heap size at startup
 

 Key: CASSANDRA-6657
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6657
 Project: Cassandra
  Issue Type: Wish
  Components: Core
Reporter: Jeremy Hanna
Assignee: Lyuben Todorov
Priority: Trivial

 It would be nice to have the newsize value logged alongside the heap size at 
 startup to more easily track down problems.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6656) Exception logging

2014-02-05 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-6656:
--

 Reviewer: Mikhail Stepura
 Priority: Trivial  (was: Major)
Fix Version/s: 2.1
 Assignee: Ding Yuan

Can you review, [~mishail]?

 Exception logging
 -

 Key: CASSANDRA-6656
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6656
 Project: Cassandra
  Issue Type: Improvement
  Components: Core, Tools
Reporter: Ding Yuan
Assignee: Ding Yuan
Priority: Trivial
 Fix For: 2.1

 Attachments: trunk-6656.txt


 Reporting a few cases where informative exceptions can be silently swallowed. 
 Attaching a proposed patch. 
 =
 Case 1
   Line: 95, File: org/apache/cassandra/utils/Hex.java
 An actual failure in the underlying constructor will be lost.
 Propose to log it.
 {noformat}
 try
 {
 s = stringConstructor.newInstance(0, c.length, c);
 +   }
 +   catch (InvocationTargetException ite) {
 +   // The underlying constructor failed. Unwrapping the 
 exception.
 +   logger.info(Underlying constructor throws exception: , 
 ite.getCause());
 }
 catch (Exception e)
 {
 // Swallowing as we'll just use a copying constructor
 }
 return s == null ? new String(c) : s;
 {noformat}
 ==
 =
 Case 2
   Line: 192, File: org/apache/cassandra/db/marshal/DynamicCompositeType.java
 The actual cause of comparator error can be lost as it can fail in multiple 
 locations.
 {noformat}
 AbstractType? comparator = null;
 int header = getShortLength(bb);
 if ((header  0x8000) == 0)
 {
 ByteBuffer value = getBytes(bb, header);
 try
 {
 comparator = TypeParser.parse(ByteBufferUtil.string(value));
 }
 catch (Exception e)
 {
 --- can fail here
 // we'll deal with this below since comparator == null
 }
 }
 else
 {
 comparator = aliases.get((byte)(header  0xFF));
 --- can fail here
 }
 if (comparator == null)
 throw new MarshalException(Cannot find comparator for component 
  + i);
 {noformat}
 Propose to log the exception.
 ==
 =
 Case 3
   Line: 239, File: org/apache/cassandra/tools/NodeProbe.java
 Exception ignored in finally. Propose log them with debug or trace.
 {noformat}
 232: finally
 233: {
 234: try
 235: {
 236: ssProxy.removeNotificationListener(runner);
 236: ssProxy.removeNotificationListener(runner);
 237: jmxc.removeConnectionNotificationListener(runner);
 238: }
 239: catch (Throwable ignored) {}
 240: }
 {noformat}
 Similar case is at line 264 in the same file.
 ==



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6651) Repair hanging

2014-02-05 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-6651:
--

Reproduced In: 2.0.3
Fix Version/s: (was: 2.0.3)
 Assignee: Yuki Morishita

 Repair hanging
 --

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

 Hi,
 We have a 12 node cluster in PROD environment and we've noticed that repairs 
 are never finishing. The behavior that we've observed is that a repair 
 process will run until at some point it hangs and no other processing is 
 happening.
 For example, at the moment, I have a repair process that has been running for 
 two days and not finishing:
 nodetool tpstats is showing 2 active and 2 pending AntiEntropySessions
 nodetool compactionstats is showing:
 pending tasks: 0
 Active compaction remaining time :n/a
 nodetools netstats is showing:
 Mode: NORMAL
 Not sending any streams.
 Read Repair Statistics:
 Attempted: 0
 Mismatch (Blocking): 142110
 Mismatch (Background): 0
 Pool NameActive   Pending  Completed
 Commandsn/a 0  107589657
 Responses   n/a 0  116430785 
 The last entry that I see in the log is:
 INFO [AntiEntropySessions:18] 2014-02-03 04:01:39,145 RepairJob.java (line 
 116) [repair #ae78c6c0-8c2b-11e3-b950-c3b81a36bc9b] requesting merkle trees 
 for MyCF (to [/x.x.x.x, /y.y.y.y, /z.z.z.z])
 The repair started at 4am so it stopped after 1:40 minute.
 On node y.y.y.y I can see this in the log:
 INFO [MiscStage:1] 2014-02-03 04:01:38,985 ColumnFamilyStore.java (line 740) 
 Enqueuing flush of Memtable-MyCF@1290890489(2176/5931 serialized/live bytes, 
 32 ops)
  INFO [FlushWriter:411] 2014-02-03 04:01:38,986 Memtable.java (line 333) 
 Writing Memtable-MyCF@1290890489(2176/5931 serialized/live bytes, 32 ops)
  INFO [FlushWriter:411] 2014-02-03 04:01:39,048 Memtable.java (line 373) 
 Completed flushing 
 /var/lib/cassandra/main-db/data/MyKS/MyCF/MyKS-MyCF-jb-518-Data.db (1789 
 bytes) for commitlog position ReplayPosition(segmentId=1390437013339, 
 position=21868792)
  INFO [ScheduledTasks:1] 2014-02-03 05:00:04,794 ColumnFamilyStore.java (line 
 740) Enqueuing flush of Memtable-compaction_history@1649414699(1635/17360 
 serialized/live bytes, 42 ops)
 So for some reason the merkle tree for this CF is never sent back to the node 
 being repaired and it's hanging.
 I've also noticed that sometimes, restarting node y.y.y.y will cause the  
 repair to resume.
 Another observation is that sometimes when restarting y.y.y.y it will not 
 start with these errors:
 ERROR 16:34:18,485 Exception encountered during startup
 java.lang.IllegalStateException: Unfinished compactions reference missing 
 sstables. This should never happen since compactions are marked finished 
 before we start removing the old sstables.
   at 
 org.apache.cassandra.db.ColumnFamilyStore.removeUnfinishedCompactionLeftovers(ColumnFamilyStore.java:495)
   at 
 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:264)
   at 
 org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:461)
   at 
 org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:504)
 java.lang.IllegalStateException: Unfinished compactions reference missing 
 sstables. This should never happen since compactions are marked finished 
 before we start removing the old sstables.
   at 
 org.apache.cassandra.db.ColumnFamilyStore.removeUnfinishedCompactionLeftovers(ColumnFamilyStore.java:495)
   at 
 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:264)
   at 
 org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:461)
   at 
 org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:504)
 Exception encountered during startup: Unfinished compactions reference 
 missing sstables. This should never happen since compactions are marked 
 finished before we start removing the old sstables.
 And it will only restart after manually cleaning the compactions_in-progress 
 folder.
 I'm not sure if these two issues are related but we've seen both on all the 
 nodes in our cluster.
 I'll be happy to provide more info if needed as we are not sure what could 
 cause this behavior.
 Another thing in our environment is that some of the Cassandra nodes have 
 more than one network interface and RPC is listening on 0.0.0.0, not sure if 
 it has anything to do with this.
 Thanks,
 Eitan 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6658) Nodes flap once at startup

2014-02-05 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-6658:
---

Nit: shouldn't we use TimeUnit to convert instead of hardcoding extra constants?

 Nodes flap once at startup
 --

 Key: CASSANDRA-6658
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6658
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Brandon Williams
Assignee: Brandon Williams
Priority: Minor
 Attachments: 6658.txt


 Upon initially seeing each other, a node will mark another UP, then DOWN, 
 then UP again.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (CASSANDRA-6659) Allow intercepting query by user provided custom classes

2014-02-05 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-6659:
--

Reviewer: Benjamin Coverston

Tagging [~bcoverston] for review.

 Allow intercepting query by user provided custom classes
 --

 Key: CASSANDRA-6659
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6659
 Project: Cassandra
  Issue Type: Improvement
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
Priority: Minor
 Attachments: 6659.txt


 The idea for this ticket is to abstract the main execution methods of 
 QueryProcessor into an interface, something like:
 {noformat}
 public interface QueryHandler
 {
 public ResultSet process(String query, QueryState state, QueryOptions 
 options);
 public ResultMessage.Prepared prepare(String query, QueryState state);
 public ResultSet processPrepared(CQLStatement statement, QueryState 
 state, QueryOptions options);
 public ResultSet processBatch(BatchStatement statement, QueryState state, 
 BatchQueryOptions options);
 }
 {noformat}
 and to allow users to provide a specific class of their own (implementing 
 said interface) to which the native protocol would handoff queries to (so by 
 default queries would go to QueryProcessor, but you would have a way to use a 
 custom class instead).
 A typical use case for that could be to allow some form of custom logging of 
 incoming queries and/or of their results. But this could probably also have 
 some application for testing as one could have a handler that completely 
 bypass QueryProcessor if you want, say, do perf regression tests for a given 
 driver (and don't want to actually execute the query as you're perf testing 
 the driver, not C*) without needing to patch the sources. Those being just 
 examples, the mechanism is generic enough to allow for other ideas.
 Most importantly, it requires very little code in C*. As for how users would 
 register their handler, it can be as simple as a startup flag indicating 
 the class to use, or a yaml setting, or both.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-4757) Expose bulk loading progress/status over jmx

2014-02-05 Thread Nick Bailey (JIRA)

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

Nick Bailey commented on CASSANDRA-4757:


Patch LGTM. Haven't tested it out though.

 Expose bulk loading progress/status over jmx
 

 Key: CASSANDRA-4757
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4757
 Project: Cassandra
  Issue Type: Improvement
Reporter: Nick Bailey
Assignee: Tyler Hobbs
Priority: Minor
  Labels: lhf
 Fix For: 2.0.6

 Attachments: 4757-2.0.patch, CASSANDRA-4757.txt, CASSANDRA-4757v2.txt


 The bulk loading interface should be exposing some progress or status 
 information over jmx. This shouldn't be too difficult and should be exposed 
 in a way that the information is available whether you are using the separate 
 sstableloader utility or calling the bulkload jmx call.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (CASSANDRA-6660) Make node tool command take a password file

2014-02-05 Thread Vishy Kasar (JIRA)
Vishy Kasar created CASSANDRA-6660:
--

 Summary: Make node tool command take a password file
 Key: CASSANDRA-6660
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6660
 Project: Cassandra
  Issue Type: Improvement
Reporter: Vishy Kasar



We are sending the jmx password in the clear to the node tool command in 
production. This is a security risk. Any one doing a 'ps' can see the clear 
password. Can we change the node tool command to also take a password file 
argument. This file will list the JMX user and passwords. Example below:

cat /cassandra/run/10003004.jmxpasswd
monitorRole abc
controlRole def

Based on the user name provided, node tool can pick up the right password. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6528) TombstoneOverwhelmingException is thrown while populating data in recently truncated CF

2014-02-05 Thread Machiel Groeneveld (JIRA)

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

Machiel Groeneveld commented on CASSANDRA-6528:
---

Only doing inserts (query below), no updates. Not sure about inserting null 
values, will get back on that.

 BEGIN BATCH
  insert into visits (
id, cookie_uuid, uuid_hash,
default_cpc, cookie_uuid,
external_click_id, session_id, visitor_ip, user_agent,
shop_product_id, channel_id, shop_id, shop_category_id,
type, medium_id, campaign_id, channel_affiliate_id,
disabled, has_referer, known_visitor, marketing,
created_at, updated_at, time_id)
VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
?, ?, ?, ?) USING TTL 7776000
  insert into visits_by_cookie (visit_id, time_id, cookie_uuid, 
shop_id, created_at, enabled_visit)
VALUES(?, ?, ?, ?, ?, ?) USING TTL 7776000
  insert into visits_by_hash (visit_id, time_id, uuid_hash, shop_id, 
created_at)
VALUES(?, ?, ?, ?, ?) USING TTL 7776000
APPLY BATCH

 TombstoneOverwhelmingException is thrown while populating data in recently 
 truncated CF
 ---

 Key: CASSANDRA-6528
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6528
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: Cassadra 2.0.3, Linux, 6 nodes
Reporter: Nikolai Grigoriev
Priority: Minor

 I am running some performance tests and recently I had to flush the data from 
 one of the tables and repopulate it. I have about 30M rows with a few columns 
 in each, about 5kb per row in in total. In order to repopulate the data I do 
 truncate table from CQLSH and then relaunch the test. The test simply 
 inserts the data in the table, does not read anything. Shortly after 
 restarting the data generator I see this on one of the nodes:
 {code}
  INFO [HintedHandoff:655] 2013-12-26 16:45:42,185 HintedHandOffManager.java 
 (line 323) Started hinted handoff f
 or host: 985c8a08-3d92-4fad-a1d1-7135b2b9774a with IP: /10.5.45.158
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 SliceQueryFilter.java (line 
 200) Scanned ove
 r 10 tombstones; query aborted (see tombstone_fail_threshold)
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 CassandraDaemon.java (line 
 187) Exception in thread Thread[HintedHandoff:655,1,main]
 org.apache.cassandra.db.filter.TombstoneOverwhelmingException
 at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:201)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:122)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:80)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:72)
 at 
 org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:297)
 at 
 org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:56)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1487)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1306)
 at 
 org.apache.cassandra.db.HintedHandOffManager.doDeliverHintsToEndpoint(HintedHandOffManager.java:351)
 at 
 org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:309)
 at 
 org.apache.cassandra.db.HintedHandOffManager.access$4(HintedHandOffManager.java:281)
 at 
 org.apache.cassandra.db.HintedHandOffManager$4.run(HintedHandOffManager.java:530)
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:724)
  INFO [OptionalTasks:1] 2013-12-26 16:45:53,946 MeteredFlusher.java (line 63) 
 flushing high-traffic column family CFS(Keyspace='test_jmeter', 
 ColumnFamily='test_profiles') (estimated 192717267 bytes)
 {code}
 I am inserting the data with CL=1.
 It seems to be happening every time I do it. But I do not see any errors on 
 the client side and the node seems to continue operating, this is why I think 
 it is not a major issue. Maybe not an issue at all, but the message is logged 
 as ERROR.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6528) TombstoneOverwhelmingException is thrown while populating data in recently truncated CF

2014-02-05 Thread Anne Sullivan (JIRA)

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

Anne Sullivan commented on CASSANDRA-6528:
--

We can reproduce the tombstone_fail_threshold exception on HintedHandoff replay 
consistently.  We're using C* 2.0.4.  NodeB goes down, and NodeA starts storing 
hints for it.  Around 400K hints are written, and then NodeB comes back online. 
 NodeA starts replaying hints for NodeB.  It replays 100K hints, and then 
NodeB goes down again.  When NodeB comes back online, the next HH replay fails 
with the tombstone_fail_threshold error.  

 TombstoneOverwhelmingException is thrown while populating data in recently 
 truncated CF
 ---

 Key: CASSANDRA-6528
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6528
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: Cassadra 2.0.3, Linux, 6 nodes
Reporter: Nikolai Grigoriev
Priority: Minor

 I am running some performance tests and recently I had to flush the data from 
 one of the tables and repopulate it. I have about 30M rows with a few columns 
 in each, about 5kb per row in in total. In order to repopulate the data I do 
 truncate table from CQLSH and then relaunch the test. The test simply 
 inserts the data in the table, does not read anything. Shortly after 
 restarting the data generator I see this on one of the nodes:
 {code}
  INFO [HintedHandoff:655] 2013-12-26 16:45:42,185 HintedHandOffManager.java 
 (line 323) Started hinted handoff f
 or host: 985c8a08-3d92-4fad-a1d1-7135b2b9774a with IP: /10.5.45.158
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 SliceQueryFilter.java (line 
 200) Scanned ove
 r 10 tombstones; query aborted (see tombstone_fail_threshold)
 ERROR [HintedHandoff:655] 2013-12-26 16:45:42,680 CassandraDaemon.java (line 
 187) Exception in thread Thread[HintedHandoff:655,1,main]
 org.apache.cassandra.db.filter.TombstoneOverwhelmingException
 at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:201)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:122)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:80)
 at 
 org.apache.cassandra.db.filter.QueryFilter.collateOnDiskAtom(QueryFilter.java:72)
 at 
 org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:297)
 at 
 org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:56)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1487)
 at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1306)
 at 
 org.apache.cassandra.db.HintedHandOffManager.doDeliverHintsToEndpoint(HintedHandOffManager.java:351)
 at 
 org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:309)
 at 
 org.apache.cassandra.db.HintedHandOffManager.access$4(HintedHandOffManager.java:281)
 at 
 org.apache.cassandra.db.HintedHandOffManager$4.run(HintedHandOffManager.java:530)
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:724)
  INFO [OptionalTasks:1] 2013-12-26 16:45:53,946 MeteredFlusher.java (line 63) 
 flushing high-traffic column family CFS(Keyspace='test_jmeter', 
 ColumnFamily='test_profiles') (estimated 192717267 bytes)
 {code}
 I am inserting the data with CL=1.
 It seems to be happening every time I do it. But I do not see any errors on 
 the client side and the node seems to continue operating, this is why I think 
 it is not a major issue. Maybe not an issue at all, but the message is logged 
 as ERROR.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6622) Streaming session failures during node replace using replace_address

2014-02-05 Thread Ravi Prasad (JIRA)

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

Ravi Prasad commented on CASSANDRA-6622:


I'm seeing FailureDetector notifying listeners every second invoked through 
GossiperTask's doStatusCheck(). Tested sleeping for RING_DELAY (instead of 
BROADCAST_INTERVAL) before bootstrap, works without any stream session closure. 

 Streaming session failures during node replace using replace_address
 

 Key: CASSANDRA-6622
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6622
 Project: Cassandra
  Issue Type: Bug
 Environment: RHEL6, cassandra-2.0.4
Reporter: Ravi Prasad
Assignee: Brandon Williams
 Attachments: 0001-don-t-signal-restart-of-dead-states.txt, 
 6622-2.0.txt, logs.tgz


 When using replace_address, Gossiper ApplicationState is set to hibernate, 
 which is a down state. We are seeing that the peer nodes are seeing streaming 
 plan request even before the Gossiper on them marks the replacing node as 
 dead. As a result, streaming on peer nodes convicts the replacing node by 
 closing the stream handler.  
 I think, making the StorageService thread on the replacing node, sleep for 
 BROADCAST_INTERVAL before bootstrapping, would avoid this scenario.
 Relevant logs from peer node (see that the Gossiper on peer node mark the 
 replacing node as down, 2 secs after  the streaming init request):
 {noformat}
  INFO [STREAM-INIT-/x.x.x.x:46436] 2014-01-26 20:42:24,388 
 StreamResultFuture.java (line 116) [Stream 
 #5c6cd940-86ca-11e3-90a0-411b913c0e88] Received streaming plan for Bootstrap
 
  INFO [GossipTasks:1] 2014-01-26 20:42:25,240 StreamResultFuture.java (line 
 181) [Stream #5c6cd940-86ca-11e3-90a0-411b913c0e88] Session with /x.x.x.x is 
 complete
  WARN [GossipTasks:1] 2014-01-26 20:42:25,240 StreamResultFuture.java (line 
 210) [Stream #5c6cd940-86ca-11e3-90a0-411b913c0e88] Stream failed
  INFO [GossipStage:1] 2014-01-26 20:42:25,242 Gossiper.java (line 850) 
 InetAddress /x.x.x.x is now DOWN
 ERROR [STREAM-IN-/x.x.x.x] 2014-01-26 20:42:25,766 StreamSession.java (line 
 410) [Stream #5c6cd940-86ca-11e3-90a0-411b913c0e88] Streaming error occurred
 java.lang.RuntimeException: Outgoing stream handler has been closed
 at 
 org.apache.cassandra.streaming.ConnectionHandler.sendMessage(ConnectionHandler.java:175)
 at 
 org.apache.cassandra.streaming.StreamSession.prepare(StreamSession.java:436)
 at 
 org.apache.cassandra.streaming.StreamSession.messageReceived(StreamSession.java:358)
 at 
 org.apache.cassandra.streaming.ConnectionHandler$IncomingMessageHandler.run(ConnectionHandler.java:293)
 at java.lang.Thread.run(Thread.java:722)
  INFO [STREAM-IN-/x.x.x.x] 2014-01-26 20:42:25,768 StreamResultFuture.java 
 (line 181) [Stream #5c6cd940-86ca-11e3-90a0-411b913c0e88] Session with 
 /x.x.x.x is complete
  WARN [STREAM-IN-/x.x.x.x] 2014-01-26 20:42:25,768 StreamResultFuture.java 
 (line 210) [Stream #5c6cd940-86ca-11e3-90a0-411b913c0e88] Stream failed
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6561) Static columns in CQL3

2014-02-05 Thread Nicolas Favre-Felix (JIRA)

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

Nicolas Favre-Felix commented on CASSANDRA-6561:


Thanks Sylvain. One more thing: it seems that the static suffix is not 
currently added to the column definition printed by DESCRIBE TABLE foo;

 Static columns in CQL3
 --

 Key: CASSANDRA-6561
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6561
 Project: Cassandra
  Issue Type: New Feature
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
 Fix For: 2.0.6


 I'd like to suggest the following idea for adding static columns to CQL3.  
 I'll note that the basic idea has been suggested by jhalliday on irc but the 
 rest of the details are mine and I should be blamed for anything stupid in 
 what follows.
 Let me start with a rational: there is 2 main family of CF that have been 
 historically used in Thrift: static ones and dynamic ones. CQL3 handles both 
 family through the presence or not of clustering columns. There is however 
 some cases where mixing both behavior has its use. I like to think of those 
 use cases as 3 broad category:
 # to denormalize small amounts of not-entirely-static data in otherwise 
 static entities. It's say tags for a product or custom properties in a 
 user profile. This is why we've added CQL3 collections. Importantly, this is 
 the *only* use case for which collections are meant (which doesn't diminishes 
 their usefulness imo, and I wouldn't disagree that we've maybe not 
 communicated this too well).
 # to optimize fetching both a static entity and related dynamic ones. Say you 
 have blog posts, and each post has associated comments (chronologically 
 ordered). *And* say that a very common query is fetch a post and its 50 last 
 comments. In that case, it *might* be beneficial to store a blog post 
 (static entity) in the same underlying CF than it's comments for performance 
 reason.  So that fetch a post and it's 50 last comments is just one slice 
 internally.
 # you want to CAS rows of a dynamic partition based on some partition 
 condition. This is the same use case than why CASSANDRA-5633 exists for.
 As said above, 1) is already covered by collections, but 2) and 3) are not 
 (and
 I strongly believe collections are not the right fit, API wise, for those).
 Also, note that I don't want to underestimate the usefulness of 2). In most 
 cases, using a separate table for the blog posts and the comments is The 
 Right Solution, and trying to do 2) is premature optimisation. Yet, when used 
 properly, that kind of optimisation can make a difference, so I think having 
 a relatively native solution for it in CQL3 could make sense.
 Regarding 3), though CASSANDRA-5633 would provide one solution for it, I have 
 the feeling that static columns actually are a more natural approach (in term 
 of API). That's arguably more of a personal opinion/feeling though.
 So long story short, CQL3 lacks a way to mix both some static and dynamic 
 rows in the same partition of the same CQL3 table, and I think such a tool 
 could have it's use.
 The proposal is thus to allow static columns. Static columns would only 
 make sense in table with clustering columns (the dynamic ones). A static 
 column value would be static to the partition (all rows of the partition 
 would share the value for such column). The syntax would just be:
 {noformat}
 CREATE TABLE t (
   k text,
   s text static,
   i int,
   v text,
   PRIMARY KEY (k, i)
 )
 {noformat}
 then you'd get:
 {noformat}
 INSERT INTO t(k, s, i, v) VALUES (k0, I'm shared,   0, foo);
 INSERT INTO t(k, s, i, v) VALUES (k0, I'm still shared, 1, bar);
 SELECT * FROM t;
  k |  s | i |v
 
 k0 | I'm still shared | 0 | bar
 k0 | I'm still shared | 1 | foo
 {noformat}
 There would be a few semantic details to decide on regarding deletions, ttl, 
 etc. but let's see if we agree it's a good idea first before ironing those 
 out.
 One last point is the implementation. Though I do think this idea has merits, 
 it's definitively not useful enough to justify rewriting the storage engine 
 for it. But I think we can support this relatively easily (emphasis on 
 relatively :)), which is probably the main reason why I like the approach.
 Namely, internally, we can store static columns as cells whose clustering 
 column values are empty. So in terms of cells, the partition of my example 
 would look like:
 {noformat}
 k0 : [
   (:s - I'm still shared), // the static column
   (0: - )  // row marker
   (0:v - bar)
   (1: - )  // row marker
   (1:v - foo)
 ]
 {noformat}
 Of course, using empty values for the clustering columns doesn't quite work 
 because it could conflict with 

[jira] [Updated] (CASSANDRA-6658) Nodes flap once at startup

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-6658:


Attachment: 6658-v2.txt

v2 removes the constant CASSANDRA-4925 added and uses TimeUnit instead.

 Nodes flap once at startup
 --

 Key: CASSANDRA-6658
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6658
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Brandon Williams
Assignee: Brandon Williams
Priority: Minor
 Attachments: 6658-v2.txt, 6658.txt


 Upon initially seeing each other, a node will mark another UP, then DOWN, 
 then UP again.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6660) Make node tool command take a password file

2014-02-05 Thread Brandon Williams (JIRA)

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

Brandon Williams commented on CASSANDRA-6660:
-

Historically (CASSANDRA-5316, CASSANDRA-6279) we've felt that if you need to 
get this fancy, it's time to be using your own tool, but I wouldn't be against 
adding it if we had a patch.  Probably the best way to do this is with a simple 
property file that can be specified on the command line.

 Make node tool command take a password file
 ---

 Key: CASSANDRA-6660
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6660
 Project: Cassandra
  Issue Type: Improvement
Reporter: Vishy Kasar

 We are sending the jmx password in the clear to the node tool command in 
 production. This is a security risk. Any one doing a 'ps' can see the clear 
 password. Can we change the node tool command to also take a password file 
 argument. This file will list the JMX user and passwords. Example below:
 cat /cassandra/run/10003004.jmxpasswd
 monitorRole abc
 controlRole def
 Based on the user name provided, node tool can pick up the right password. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (CASSANDRA-6623) Null in a cell caused by expired TTL does not work with IF clause (in CQL3)

2014-02-05 Thread Aleksey Yeschenko (JIRA)

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

Aleksey Yeschenko commented on CASSANDRA-6623:
--

LGTM

Nits:
- I'd rather see {code}if (!(c != null  c.isLive(now)  
c.value().equals(e.value({code} rewritten as {code}if (c == null || 
c.isMarkedForDelete(now) || !c.value().equals(e.value())){code} in 
ThriftCASConditions (as it is more or less in ColumnsConditions, apparently)
- hasLiveColumns() in ColumnsCondition is dead code
- ByteBufferUtil in ModificationStatement; ColumnNameBuilder, NamesQueryFilter, 
and SliceQueryFilter in SP are now unused imports

 Null in a cell caused by expired TTL does not work with IF clause (in CQL3)
 ---

 Key: CASSANDRA-6623
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6623
 Project: Cassandra
  Issue Type: Bug
  Components: Tests
 Environment: One cluster with two nodes on a Linux and a Windows 
 system. cqlsh 4.1.0 | Cassandra 2.0.4 | CQL spec 3.1.1 | Thrift protocol 
 19.39.0. CQL3 Column Family
Reporter: Csaba Seres
Assignee: Sylvain Lebresne
Priority: Minor
 Fix For: 2.0.6

 Attachments: 6623.txt


 IF onecell=null clause does not work if the onecell has got its null value 
 from an expired TTL. If onecell is updated with null value (UPDATE) then IF 
 onecell=null works fine.
 This bug is not present when you create a table with COMPACT STORAGE 
 directive.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


  1   2   >