[jira] [Created] (CASSANDRA-8134) cassandra crashes sporadically on windows

2014-10-16 Thread Stefan Gusenbauer (JIRA)
Stefan Gusenbauer created CASSANDRA-8134:


 Summary: cassandra crashes sporadically on windows
 Key: CASSANDRA-8134
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8134
 Project: Cassandra
  Issue Type: Bug
 Environment: OS: Windows Server 2012 R2 , 64 bit Build 9600

CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 37 stepping 1, 
cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, aes, tsc, 
tscinvbit

Memory: 4k page, physical 8388148k(3802204k free), swap 8388148k(4088948k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (24.60-b09) for windows-amd64 JRE 
(1.7.0_60-b19), built on May 7 2014 12:55:18 by "java_re" with unknown MS 
VC++:1600
Reporter: Stefan Gusenbauer
 Attachments: hs_err_pid1180.log, hs_err_pid5732.log

During our test runs cassandra crashes from time to time with the following 
stacktrace:

a similar bug can be found here 
https://issues.apache.org/jira/browse/CASSANDRA-5256

operating system is

--- S Y S T E M ---

OS: Windows Server 2012 R2 , 64 bit Build 9600

CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 37 stepping 1, 
cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, aes, tsc, 
tscinvbit

Memory: 4k page, physical 8388148k(3802204k free), swap 8388148k(4088948k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (24.60-b09) for windows-amd64 JRE 
(1.7.0_60-b19), built on May 7 2014 12:55:18 by "java_re" with unknown MS 
VC++:1600

time: Wed Oct 15 09:32:30 2014 
elapsed time: 16 seconds

attached are several hs_err files too

j org.apache.cassandra.io.util.Memory.getLong(J)J+14 
j 
org.apache.cassandra.io.compress.CompressionMetadata.chunkFor(J)Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;+53
 
j org.apache.cassandra.io.compress.CompressedRandomAccessReader.reBuffer()V+9 
j org.apache.cassandra.io.compress.CompressedThrottledReader.reBuffer()V+13 
J 258 C2 org.apache.cassandra.io.util.RandomAccessReader.read()I (128 bytes) @ 
0x0250cbcc [0x0250cae0+0xec] 
J 306 C2 java.io.RandomAccessFile.readUnsignedShort()I (33 bytes) @ 
0x025475e4 [0x02547480+0x164] 
J 307 C2 
org.apache.cassandra.utils.ByteBufferUtil.readWithShortLength(Ljava/io/DataInput;)Ljava/nio/ByteBuffer;
 (9 bytes) @ 0x0254c290 [0x0254c140+0x150] 
j 
org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.next()Lorg/apache/cassandra/db/columniterator/OnDiskAtomIterator;+65
 
j 
org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.next()Ljava/lang/Object;+1
 
j 
org.apache.cassandra.io.sstable.SSTableScanner.next()Lorg/apache/cassandra/db/columniterator/OnDiskAtomIterator;+41
 
j org.apache.cassandra.io.sstable.SSTableScanner.next()Ljava/lang/Object;+1 
j org.apache.cassandra.utils.MergeIterator$Candidate.advance()Z+19 
j 
org.apache.cassandra.utils.MergeIterator$ManyToOne.(Ljava/util/List;Ljava/util/Comparator;Lorg/apache/cassandra/utils/MergeIterator$Reducer;)V+71
 
j 
org.apache.cassandra.utils.MergeIterator.get(Ljava/util/List;Ljava/util/Comparator;Lorg/apache/cassandra/utils/MergeIterator$Reducer;)Lorg/apache/cassandra/utils/IMergeIterator;+46
 
j 
org.apache.cassandra.db.compaction.CompactionIterable.iterator()Lorg/apache/cassandra/utils/CloseableIterator;+15
 
j 
org.apache.cassandra.db.compaction.CompactionTask.runWith(Ljava/io/File;)V+319 
j org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow()V+89 
j org.apache.cassandra.utils.WrappedRunnable.run()V+1 
j 
org.apache.cassandra.db.compaction.CompactionTask.executeInternal(Lorg/apache/cassandra/db/compaction/CompactionManager$CompactionExecutorStatsCollector;)I+6
 
j 
org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(Lorg/apache/cassandra/db/compaction/CompactionManager$CompactionExecutorStatsCollector;)I+2
 
j 
org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run()V+164
 
j java.util.concurrent.Executors$RunnableAdapter.call()Ljava/lang/Object;+4 
j java.util.concurrent.FutureTask.run()V+42 
j 
java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+95
 
j java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5 
j java.lang.Thread.run()V+11 
v ~StubRoutines::call_stub 
V [jvm.dll+0x1ce043]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7966) 1.2.18 -> 2.0.10 upgrade compactions_in_progress: java.lang.IllegalArgumentException

2014-10-16 Thread Marcus Eriksson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174763#comment-14174763
 ] 

Marcus Eriksson commented on CASSANDRA-7966:


Could you post a bit more of the log leading up to that exception?

> 1.2.18 -> 2.0.10 upgrade compactions_in_progress: 
> java.lang.IllegalArgumentException
> 
>
> Key: CASSANDRA-7966
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7966
> Project: Cassandra
>  Issue Type: Bug
> Environment: JDK 1.7
>Reporter: Karl Mueller
>Assignee: Marcus Eriksson
>Priority: Minor
>
> This happened on a new node when starting 2.0.10 after 1.2.18 with complete 
> upgradesstables run:
> {noformat}
>  INFO 15:31:11,532 Enqueuing flush of 
> Memtable-compactions_in_progress@1366724594(0/0 serialized/live bytes, 1 ops)
>  INFO 15:31:11,532 Writing Memtable-compactions_in_progress@1366724594(0/0 
> serialized/live bytes, 1 ops)
>  INFO 15:31:11,547 Completed flushing 
> /data2/data-cassandra/system/compactions_in_progress/system-compactions_in_progress-jb-10-Data.db
>  (42 bytes) for commitlog position ReplayPosition(segmentId=1410993002452, 
> position=164409)
> ERROR 15:31:11,550 Exception in thread Thread[CompactionExecutor:36,1,main]
> java.lang.IllegalArgumentException
> at java.nio.Buffer.limit(Buffer.java:267)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytes(ByteBufferUtil.java:587)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytesWithShortLength(ByteBufferUtil.java:596)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:61)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:36)
> at 
> org.apache.cassandra.db.ArrayBackedSortedColumns.addColumn(ArrayBackedSortedColumns.java:112)
> at 
> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:116)
> at org.apache.cassandra.db.ColumnFamily.addAtom(ColumnFamily.java:150)
> at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:186)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:98)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.(PrecompactedRow.java:85)
> at 
> org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:196)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:74)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:55)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:115)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:98)
> at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
> at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:143)
> at 
> org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
> at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60)
> at 
> org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
> at 
> org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:198)
> at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (CASSANDRA-7368) Compaction stops after org.apache.cassandra.io.sstable.CorruptSSTableException

2014-10-16 Thread Marcus Eriksson (JIRA)

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

Marcus Eriksson resolved CASSANDRA-7368.

Resolution: Cannot Reproduce

The compaction stopping can have a few causes (that are now fixed), first we 
have CASSANDRA-7745 where we wrongly said that there were no more compactions 
to do, and then we have the fact that multi threaded compaction was really 
shaky and it is now gone (in 2.0)

I would recommend upgrading to a newer version and try to reproduce it there

> Compaction stops after org.apache.cassandra.io.sstable.CorruptSSTableException
> --
>
> Key: CASSANDRA-7368
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7368
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: OS: RHEL 6.5
> Cassandra version: 1.2.16
>Reporter: Francois Richard
>Assignee: Marcus Eriksson
>
> Hi,
> We are getting a case where compaction stops totally on a node after an 
> exception related to: org.apache.cassandra.io.sstable.CorruptSSTableException.
> nodetool compactionstats remains at the same level for hours:
> {code}
> pending tasks: 1451
>   compaction typekeyspace   column family   completed 
>   total  unit  progress
>CompactionSyncCoreContactPrefixBytesIndex   
> 257799931   376785179 bytes68.42%
> Active compaction remaining time :n/a
> {code}
> Here is the exception log:
> {code}
> ERROR [Deserialize 
> SSTableReader(path='/home/y/var/cassandra/data/SyncCore/ContactPrefixBytesIndex/SyncCore-ContactPrefixBytesIndex-ic-116118-Data.db')]
>  2014-06-09 06:39:37,570 CassandraDaemon.java (line 191) Exception in thread 
> Thread[Deserialize 
> SSTableReader(path='/home/y/var/cassandra/data/SyncCore/ContactPrefixBytesIndex/SyncCore-ContactPrefixBytesIndex-ic-116118-Data.db'),1,main]
> org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.IOException: 
> dataSize of 7421941880990663551 starting at 257836699 would be larger than 
> file 
> /home/y/var/cassandra/data/SyncCore/ContactPrefixBytesIndex/SyncCore-ContactPrefixBytesIndex-ic-116118-Data.db
>  length 376785179
>   at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:167)
>   at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:83)
>   at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:69)
>   at 
> org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.next(SSTableScanner.java:180)
>   at 
> org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.next(SSTableScanner.java:155)
>   at 
> org.apache.cassandra.io.sstable.SSTableScanner.next(SSTableScanner.java:142)
>   at 
> org.apache.cassandra.io.sstable.SSTableScanner.next(SSTableScanner.java:38)
>   at 
> org.apache.cassandra.db.compaction.LeveledCompactionStrategy$LeveledScanner.computeNext(LeveledCompactionStrategy.java:238)
>   at 
> org.apache.cassandra.db.compaction.LeveledCompactionStrategy$LeveledScanner.computeNext(LeveledCompactionStrategy.java:207)
>   at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
>   at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
> --
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (CASSANDRA-7949) LCS compaction low performance, many pending compactions, nodes are almost idle

2014-10-16 Thread Marcus Eriksson (JIRA)

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

Marcus Eriksson resolved CASSANDRA-7949.

Resolution: Duplicate

I think this is a problem that CASSANDRA-7409 will solve

If you have a system where you can test these things, we would love if you 
could test the patch in that ticket

> LCS compaction low performance, many pending compactions, nodes are almost 
> idle
> ---
>
> Key: CASSANDRA-7949
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7949
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: DSE 4.5.1-1, Cassandra 2.0.8
>Reporter: Nikolai Grigoriev
> Attachments: iostats.txt, nodetool_compactionstats.txt, 
> nodetool_tpstats.txt, pending compactions 2day.png, system.log.gz, vmstat.txt
>
>
> I've been evaluating new cluster of 15 nodes (32 core, 6x800Gb SSD disks + 
> 2x600Gb SAS, 128Gb RAM, OEL 6.5) and I've built a simulator that creates the 
> load similar to the load in our future product. Before running the simulator 
> I had to pre-generate enough data. This was done using Java code and DataStax 
> Java driver. To avoid going deep into details, two tables have been 
> generated. Each table currently has about 55M rows and between few dozens and 
> few thousands of columns in each row.
> This data generation process was generating massive amount of non-overlapping 
> data. Thus, the activity was write-only and highly parallel. This is not the 
> type of the traffic that the system will have ultimately to deal with, it 
> will be mix of reads and updates to the existing data in the future. This is 
> just to explain the choice of LCS, not mentioning the expensive SSD disk 
> space.
> At some point while generating the data I have noticed that the compactions 
> started to pile up. I knew that I was overloading the cluster but I still 
> wanted the genration test to complete. I was expecting to give the cluster 
> enough time to finish the pending compactions and get ready for real traffic.
> However, after the storm of write requests have been stopped I have noticed 
> that the number of pending compactions remained constant (and even climbed up 
> a little bit) on all nodes. After trying to tune some parameters (like 
> setting the compaction bandwidth cap to 0) I have noticed a strange pattern: 
> the nodes were compacting one of the CFs in a single stream using virtually 
> no CPU and no disk I/O. This process was taking hours. After that it would be 
> followed by a short burst of few dozens of compactions running in parallel 
> (CPU at 2000%, some disk I/O - up to 10-20%) and then getting stuck again for 
> many hours doing one compaction at time. So it looks like this:
> # nodetool compactionstats
> pending tasks: 3351
>   compaction typekeyspace   table   completed 
>   total  unit  progress
>Compaction  myks table_list1 66499295588   
> 1910515889913 bytes 3.48%
> Active compaction remaining time :n/a
> # df -h
> ...
> /dev/sdb1.5T  637G  854G  43% /cassandra-data/disk1
> /dev/sdc1.5T  425G  1.1T  29% /cassandra-data/disk2
> /dev/sdd1.5T  429G  1.1T  29% /cassandra-data/disk3
> # find . -name **table_list1**Data** | grep -v snapshot | wc -l
> 1310
> Among these files I see:
> 1043 files of 161Mb (my sstable size is 160Mb)
> 9 large files - 3 between 1 and 2Gb, 3 of 5-8Gb, 55Gb, 70Gb and 370Gb
> 263 files of various sized - between few dozens of Kb and 160Mb
> I've been running the heavy load for about 1,5days and it's been close to 3 
> days after that and the number of pending compactions does not go down.
> I have applied one of the not-so-obvious recommendations to disable 
> multithreaded compactions and that seems to be helping a bit - I see some 
> nodes started to have fewer pending compactions. About half of the cluster, 
> in fact. But even there I see they are sitting idle most of the time lazily 
> compacting in one stream with CPU at ~140% and occasionally doing the bursts 
> of compaction work for few minutes.
> I am wondering if this is really a bug or something in the LCS logic that 
> would manifest itself only in such an edge case scenario where I have loaded 
> lots of unique data quickly.
> By the way, I see this pattern only for one of two tables - the one that has 
> about 4 times more data than another (space-wise, number of rows is the 
> same). Looks like all these pending compactions are really only for that 
> larger table.
> I'll be attaching the relevant logs shortly.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8132) Save or stream hints to a safe place in node replacement

2014-10-16 Thread Minh Do (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174729#comment-14174729
 ] 

Minh Do commented on CASSANDRA-8132:


Brandon, I mean it is the other way around to stream hints from the node about 
to be replaced to one of its neighbors.  It is just like in unbootstrap() that 
we have to stream hints from the closest node prior to the shutdown.

We need to do this because we don't want to lose hints in shutting down a node 
and replacing it with a new instance or machine.

> Save or stream hints to a safe place in node replacement
> 
>
> Key: CASSANDRA-8132
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8132
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Reporter: Minh Do
>Assignee: Minh Do
> Fix For: 2.1.1
>
>
> Often, we need to replace a node with a new instance in the cloud environment 
> where we have all nodes are still alive. To be safe without losing data, we 
> usually make sure all hints are gone before we do this operation.
> Replacement means we just want to shutdown C* process on a node and bring up 
> another instance to take over that node's token.
> However, if a node to be replaced has a lot of stored hints, its 
> HintedHandofManager seems very slow to send the hints to other nodes.  In our 
> case, we tried to replace a node and had to wait for several days before its 
> stored hints are clear out.  As mentioned above, we need all hints on this 
> node to clear out before we can terminate it and replace it by a new 
> instance/machine.
> Since this is not a decommission, I am proposing that we have the same 
> hints-streaming mechanism as in the decommission code.  Furthermore, there 
> needs to be a cmd for NodeTool to trigger this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8132) Save or stream hints to a safe place in node replacement

2014-10-16 Thread Minh Do (JIRA)

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

Minh Do updated CASSANDRA-8132:
---
Description: 
Often, we need to replace a node with a new instance in the cloud environment 
where we have all nodes are still alive. To be safe without losing data, we 
usually make sure all hints are gone before we do this operation.

Replacement means we just want to shutdown C* process on a node and bring up 
another instance to take over that node's token.

However, if a node to be replaced has a lot of stored hints, its 
HintedHandofManager seems very slow to send the hints to other nodes.  In our 
case, we tried to replace a node and had to wait for several days before its 
stored hints are clear out.  As mentioned above, we need all hints on this node 
to clear out before we can terminate it and replace it by a new 
instance/machine.

Since this is not a decommission, I am proposing that we have the same 
hints-streaming mechanism as in the decommission code.  Furthermore, there 
needs to be a cmd for NodeTool to trigger this.


  was:
Often, we need to replace a node with a new instance in the cloud environment 
where we have all nodes are still alive. To be safe without losing data, we 
usually make sure all hints are gone before we do this operation.

Replacement means we just want to shutdown C* process on a node and bring up 
another instance to take over that node's token.

However, if a node to be replaced has a lot of stored hints, its 
HintedHandofManager seems very slow to send the hints to other nodes.  In our 
case, we tried to replace a node and had to wait for several days before its 
stored hints are clear out.  As mentioned above, we need all hints on this node 
to clear out before we can terminate it and replace it by a new node.

Since this is not a decommission, I am proposing that we have the same 
hints-streaming mechanism as in the decommission code.  Furthermore, there 
needs to be a cmd for NodeTool to trigger this.



> Save or stream hints to a safe place in node replacement
> 
>
> Key: CASSANDRA-8132
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8132
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Reporter: Minh Do
>Assignee: Minh Do
> Fix For: 2.1.1
>
>
> Often, we need to replace a node with a new instance in the cloud environment 
> where we have all nodes are still alive. To be safe without losing data, we 
> usually make sure all hints are gone before we do this operation.
> Replacement means we just want to shutdown C* process on a node and bring up 
> another instance to take over that node's token.
> However, if a node to be replaced has a lot of stored hints, its 
> HintedHandofManager seems very slow to send the hints to other nodes.  In our 
> case, we tried to replace a node and had to wait for several days before its 
> stored hints are clear out.  As mentioned above, we need all hints on this 
> node to clear out before we can terminate it and replace it by a new 
> instance/machine.
> Since this is not a decommission, I am proposing that we have the same 
> hints-streaming mechanism as in the decommission code.  Furthermore, there 
> needs to be a cmd for NodeTool to trigger this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8132) Save or stream hints to a safe place in node replacement

2014-10-16 Thread Minh Do (JIRA)

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

Minh Do updated CASSANDRA-8132:
---
Description: 
Often, we need to replace a node with a new instance in the cloud environment 
where we have all nodes are still alive. To be safe without losing data, we 
usually make sure all hints are gone before we do this operation.

Replacement means we just want to shutdown C* process on a node and bring up 
another instance to take over that node's token.

However, if a node to be replaced has a lot of stored hints, its 
HintedHandofManager seems very slow to send the hints to other nodes.  In our 
case, we tried to replace a node and had to wait for several days before its 
stored hints are clear out.  As mentioned above, we need all hints on this node 
to clear out before we can terminate it and replace it by a new node.

Since this is not a decommission, I am proposing that we have the same 
hints-streaming mechanism as in the decommission code.  Furthermore, there 
needs to be a cmd for NodeTool to trigger this.


  was:
Often, we need to replace a node with a new instance in the cloud environment 
where we have all nodes are still alive. To be safe without losing data, we 
usually make sure all hints are gone before we do this operation.

Replacement means we just want to shutdown C* process on a node and bring up 
another instance to take over that node's token.

However, if a node has a lot of stored hints, HintedHandofManager seems very 
slow to play the hints.  In our case, we tried to replace a node and had to 
wait for several days.

Since this is not a decommission, I am proposing that we have the same 
hints-streaming mechanism as in the decommission code.  Furthermore, there 
needs to be a cmd for NodeTool to trigger this.



> Save or stream hints to a safe place in node replacement
> 
>
> Key: CASSANDRA-8132
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8132
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Reporter: Minh Do
>Assignee: Minh Do
> Fix For: 2.1.1
>
>
> Often, we need to replace a node with a new instance in the cloud environment 
> where we have all nodes are still alive. To be safe without losing data, we 
> usually make sure all hints are gone before we do this operation.
> Replacement means we just want to shutdown C* process on a node and bring up 
> another instance to take over that node's token.
> However, if a node to be replaced has a lot of stored hints, its 
> HintedHandofManager seems very slow to send the hints to other nodes.  In our 
> case, we tried to replace a node and had to wait for several days before its 
> stored hints are clear out.  As mentioned above, we need all hints on this 
> node to clear out before we can terminate it and replace it by a new node.
> Since this is not a decommission, I am proposing that we have the same 
> hints-streaming mechanism as in the decommission code.  Furthermore, there 
> needs to be a cmd for NodeTool to trigger this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (CASSANDRA-7949) LCS compaction low performance, many pending compactions, nodes are almost idle

2014-10-16 Thread Nikolai Grigoriev (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174702#comment-14174702
 ] 

Nikolai Grigoriev edited comment on CASSANDRA-7949 at 10/17/14 3:57 AM:


Update:

Using the property from CASSANDRA-6621 does help to get out of this state. My 
cluster is slowly digesting the large sstables and creating bunch of nice small 
sstables from them. It is slower than using sstablesplit, I believe, because it 
actually does real compactions and, thus, processes and reprocesses different 
sets of sstables. My understanding is that every time I get new bunch of L0 
sstables there is a phase for updating other levels and it repeats and repeats.

With that property set I see that my total number of sstables grows, my number 
of "huge" sstables decreases and the average size of the sstable decreases as 
result.

My conclusions so far:

1. STCS fallback in LCS is a double-edged sword. It is needed to prevent the 
flooding the node with tons of small sstables resulting from ongoing writes. 
These small ones are often much smaller than the configured target size and hey 
need to be merged. But also the use of STCS results in generation of the 
super-sized sstables. These become a large headache when the fallback stops and 
LCS is supposed to resume normal operations.  It appears to me (my humble 
opinion) that fallback should be done to some kind of specialized "rescue" STCS 
flavor that merges the small sstables to approximately the LCS target sstable 
size BUT DOES NOT create sstables that are much larger than the target size. 
With this approach the LCS will resume normal operations much faster than the 
cause for the fallback (abnormally high write load) is gone.

2. LCS has major (performance?) issue when you have super-large sstables in the 
system. It often gets stuck with single long (many hours) compaction stream 
that, by itself, will increase the probability of another STCS fallback even 
with reasonable write load. As a possible workaround I was recommended to 
consider running multiple C* instances on our relatively powerful machines - to 
significantly reduce the amount of data per node and increase compaction 
throughput.

3. In the existing systems, depending on the severity of the STCS fallback 
"work", the fix from CASSANDRA-6621 may help to recover while keeping the nodes 
up. It will take a very long time to recover but the nodes will be online.

4. Recovery (see above) is very long. It is much much longer than the duration 
of the "stress period" that causes the condition. In my case I was writing like 
crazy for about 4 days and it's been over a week of compactions after that. I 
am still very far from 0 pending compactions. Considering this it makes sense 
to artificially throttle the write speed when generating the data (like in the 
use case I described in previous comments). Extra time spent on writing the 
data will be still significantly  shorter than the amount of time required to 
recover from the consequences of abusing the available write bandwidth.


was (Author: ngrigor...@gmail.com):
Update:

Using the property from CASSANDRA-6621 does help to get out of this state. My 
cluster is slowly digesting the large sstables and creating bunch of nice small 
sstables from them. It is slower than using sstablesplit, I believe, because it 
actually does real compactions and, thus, processes and reprocesses different 
sets of sstables. My understanding is that every time I get new bunch of L0 
sstables there is a phase for updating other levels and it repeats and repeats.

With that property set I see that my total number of sstables grows, my number 
of "huge" sstables decreases and the average size of the sstable decreases as 
result.

My conclusions so far:

1. STCS fallback in LCS is a double-edged sword. It is needed to prevent the 
flooding the node with tons of small sstables resulting from ongoing writes. 
These small ones are often much smaller than the configured target size and hey 
need to be merged. But also the use of STCS results in generation of the 
super-sized sstables. These become a large headache when the fallback stops and 
LCS is supposed to resume normal operations.  It appears to me (my humble 
opinion) that fallback should be done to some kind of specialized "rescue" STCS 
flavor that merges the small sstables to approximately the LCS target sstable 
size BUT DOES NOT create sstables that are much larger than the target size. 
With this approach the LCS will resume normal operations much faster than the 
cause for the fallback (abnormally high write load) is gone.

2. LCS has major (performance?) issue when you have super-large sstables in the 
system. It often gets stuck with single long (many hours) compaction stream 
that, by itself, will increase the probability of another STCS fallback even 
with reason

[jira] [Commented] (CASSANDRA-7949) LCS compaction low performance, many pending compactions, nodes are almost idle

2014-10-16 Thread Nikolai Grigoriev (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174702#comment-14174702
 ] 

Nikolai Grigoriev commented on CASSANDRA-7949:
--

Update:

Using the property from CASSANDRA-6621 does help to get out of this state. My 
cluster is slowly digesting the large sstables and creating bunch of nice small 
sstables from them. It is slower than using sstablesplit, I believe, because it 
actually does real compactions and, thus, processes and reprocesses different 
sets of sstables. My understanding is that every time I get new bunch of L0 
sstables there is a phase for updating other levels and it repeats and repeats.

With that property set I see that my total number of sstables grows, my number 
of "huge" sstables decreases and the average size of the sstable decreases as 
result.

My conclusions so far:

1. STCS fallback in LCS is a double-edged sword. It is needed to prevent the 
flooding the node with tons of small sstables resulting from ongoing writes. 
These small ones are often much smaller than the configured target size and hey 
need to be merged. But also the use of STCS results in generation of the 
super-sized sstables. These become a large headache when the fallback stops and 
LCS is supposed to resume normal operations.  It appears to me (my humble 
opinion) that fallback should be done to some kind of specialized "rescue" STCS 
flavor that merges the small sstables to approximately the LCS target sstable 
size BUT DOES NOT create sstables that are much larger than the target size. 
With this approach the LCS will resume normal operations much faster than the 
cause for the fallback (abnormally high write load) is gone.

2. LCS has major (performance?) issue when you have super-large sstables in the 
system. It often gets stuck with single long (many hours) compaction stream 
that, by itself, will increase the probability of another STCS fallback even 
with reasonable write load. As a possible workaround I was recommended to 
consider running multiple C* instances on our relatively powerful machines - to 
significantly reduce the amount of data per node and increase compaction 
throughput.

3. In the existing systems, depending on the severity of the STCS fallback 
"work" the fix from CASSANDRA-6621 may help to recover while keeping the nodes 
up. It will take a very long time to recover but the nodes will be online.

4. Recovery (see above) is very long. It is much much longer than the duration 
of the "stress period" that causes the condition. In my case I was writing like 
crazy for about 4 days and it's been over a week of compactions after that. I 
am still very far from 0 pending compactions. Considering this it makes sense 
to artificially throttle the write speed when generating the data (like in the 
use case I described in previous comments). Extra time spent on writing the 
data will be still significantly  shorter than the amount of time required to 
recover from the consequences of abusing the available write bandwidth.

> LCS compaction low performance, many pending compactions, nodes are almost 
> idle
> ---
>
> Key: CASSANDRA-7949
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7949
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: DSE 4.5.1-1, Cassandra 2.0.8
>Reporter: Nikolai Grigoriev
> Attachments: iostats.txt, nodetool_compactionstats.txt, 
> nodetool_tpstats.txt, pending compactions 2day.png, system.log.gz, vmstat.txt
>
>
> I've been evaluating new cluster of 15 nodes (32 core, 6x800Gb SSD disks + 
> 2x600Gb SAS, 128Gb RAM, OEL 6.5) and I've built a simulator that creates the 
> load similar to the load in our future product. Before running the simulator 
> I had to pre-generate enough data. This was done using Java code and DataStax 
> Java driver. To avoid going deep into details, two tables have been 
> generated. Each table currently has about 55M rows and between few dozens and 
> few thousands of columns in each row.
> This data generation process was generating massive amount of non-overlapping 
> data. Thus, the activity was write-only and highly parallel. This is not the 
> type of the traffic that the system will have ultimately to deal with, it 
> will be mix of reads and updates to the existing data in the future. This is 
> just to explain the choice of LCS, not mentioning the expensive SSD disk 
> space.
> At some point while generating the data I have noticed that the compactions 
> started to pile up. I knew that I was overloading the cluster but I still 
> wanted the genration test to complete. I was expecting to give the cluster 
> enough time to finish the pending compactions and get ready for real traffic.
> However, after t

[jira] [Commented] (CASSANDRA-8129) Increase max heap for sstablesplit

2014-10-16 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174637#comment-14174637
 ] 

Jonathan Ellis commented on CASSANDRA-8129:
---

It shouldn't have to read large parts of the file into memory, though.  What 
makes it OOM?

> Increase max heap for sstablesplit
> --
>
> Key: CASSANDRA-8129
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8129
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Tools
>Reporter: Matt Stump
>Priority: Minor
>
> The max heap for sstablesplit is 256m. For large files that's too small and 
> it will OOM. We should increase the max heap to something like 2-4G with the 
> understanding that sstablesplit will only most likely be invoked to split 
> large files.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7713) CommitLogTest failure causes cascading unit test failures

2014-10-16 Thread Michael Shuler (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174613#comment-14174613
 ] 

Michael Shuler commented on CASSANDRA-7713:
---

Without any recommendation on CASSANDRA-7927, since I haven't had a good look 
at it, we don't want to close this ticket without 
fixing/replacing/removing/something CommitFailurePolicy_stop leaving this 
non-writable dir behind - not only do following tests fail, things like `git 
clean -df` don't work, if this test dorks.  :)

I'd be happy if the solution was to pass in a code trigger of some sort than 
actually setting the dir read-only - whatever tests functionality properly.

> CommitLogTest failure causes cascading unit test failures
> -
>
> Key: CASSANDRA-7713
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7713
> Project: Cassandra
>  Issue Type: Test
>Reporter: Michael Shuler
>Assignee: Bogdan Kanivets
> Fix For: 2.0.11
>
> Attachments: CommitLogTest.system.log.txt
>
>
> When CommitLogTest.testCommitFailurePolicy_stop fails or times out, 
> {{commitDir.setWritable(true)}} is never reached, so the 
> build/test/cassandra/commitlog directory is left without write permissions, 
> causing cascading failure of all subsequent tests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7713) CommitLogTest failure causes cascading unit test failures

2014-10-16 Thread Joshua McKenzie (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174588#comment-14174588
 ] 

Joshua McKenzie commented on CASSANDRA-7713:


This came up while I was working on CASSANDRA-7927.  The _stop test was always 
returning true regardless of whether or not the stop case on 
CommitLog.handleCommitError actually stopped anything or not, and having that 
dangling directory w/out write permissions can cause problems (as evidenced 
here).

I've updated that unit test in that ticket to actually pass the stop error in 
rather than trying to simulate it to confirm the Gossiper is shutting down; if 
the general public is happy with that solution we can close this as duplicate / 
not a problem after that ticket.

> CommitLogTest failure causes cascading unit test failures
> -
>
> Key: CASSANDRA-7713
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7713
> Project: Cassandra
>  Issue Type: Test
>Reporter: Michael Shuler
>Assignee: Bogdan Kanivets
> Fix For: 2.0.11
>
> Attachments: CommitLogTest.system.log.txt
>
>
> When CommitLogTest.testCommitFailurePolicy_stop fails or times out, 
> {{commitDir.setWritable(true)}} is never reached, so the 
> build/test/cassandra/commitlog directory is left without write permissions, 
> causing cascading failure of all subsequent tests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8131) Short-circuited query results from collection index query

2014-10-16 Thread Michael Shuler (JIRA)

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

Michael Shuler updated CASSANDRA-8131:
--
Assignee: Sylvain Lebresne
  Labels: collections cql3 cqlsh query queryparser triaged  (was: 
collections cql3 cqlsh query queryparser)

> Short-circuited query results from collection index query
> -
>
> Key: CASSANDRA-8131
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8131
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Debian Wheezy, Oracle JDK, Cassandra 2.1
>Reporter: Catalin Alexandru Zamfir
>Assignee: Sylvain Lebresne
>  Labels: collections, cql3, cqlsh, query, queryparser, triaged
> Fix For: 2.1.0
>
>
> After watching Jonathan's 2014 summit video, I wanted to give collection 
> indexes a try as they seem to be a fit for a "search by key/values" usage 
> pattern we have in our setup. Doing some test queries that I expect users 
> would do against the table, a short-circuit behavior came up:
> Here's the whole transcript:
> {noformat}
> CREATE TABLE by_sets (id int PRIMARY KEY, datakeys set, datavars 
> set);
> CREATE INDEX by_sets_datakeys ON by_sets (datakeys);
> CREATE INDEX by_sets_datavars ON by_sets (datavars);
> INSERT INTO by_sets (id, datakeys, datavars) VALUES (1, {'a'}, {'b'});
> INSERT INTO by_sets (id, datakeys, datavars) VALUES (2, {'c'}, {'d'});
> INSERT INTO by_sets (id, datakeys, datavars) VALUES (3, {'e'}, {'f'});
> INSERT INTO by_sets (id, datakeys, datavars) VALUES (4, {'a'}, {'z'});
> SELECT * FROM by_sets;
>  id | datakeys | datavars
> +--+--
>   1 |{'a'} |{'b'}
>   2 |{'c'} |{'d'}
>   4 |{'a'} |{'z'}
>   3 |{'e'} |{'f'}
> {noformat}
> We then tried this query which short-circuited:
> {noformat}
> SELECT * FROM by_sets WHERE datakeys CONTAINS 'a' AND datakeys CONTAINS 'c';
>  id | datakeys | datavars
> +--+--
>   1 |{'a'} |{'b'}
>   4 |{'a'} |{'z'}
> (2 rows)
> {noformat}
> Instead of receveing 3 rows, which match the datakeys CONTAINS 'a' AND 
> datakeys CONTAINS 'c' we only got the first.
> Doing the same, but with CONTAINS 'c' first, ignores the second AND.
> {noformat}
> SELECT * FROM by_sets WHERE datakeys CONTAINS 'c' AND datakeys CONTAINS 'a' ;
>  id | datakeys | datavars
> +--+--
>   2 |{'c'} |{'d'}
> (1 rows)
> {noformat}
> Also, on a side-note, I have two indexes on both datakeys and datavars. But 
> when trying to run a query such as:
> {noformat}
> select * from by_sets WHERE datakeys CONTAINS 'a' AND datavars CONTAINS 'z';
> code=2200 [Invalid query] message="Cannot execute this query as it might 
> involve data filtering and thus may have unpredictable performance. 
> If you want to execute this query despite the performance unpredictability, 
> use ALLOW FILTERING"
> {noformat}
> The second column, after AND (even if I inverse the order) requires an "allow 
> filtering" clause yet the column is indexed an an in-memory "join" of the 
> primary keys of these sets on the coordinator could build up the result.
> Could anyone explain the short-circuit behavior?
> And the requirement for "allow-filtering" on a secondly indexed column?
> If they're not bugs but intended they should be documented better, at least 
> their limitations.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7713) CommitLogTest failure causes cascading unit test failures

2014-10-16 Thread Bogdan Kanivets (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174571#comment-14174571
 ] 

Bogdan Kanivets commented on CASSANDRA-7713:


Another way is to not use sleepUninterruptibly. It looks like this prevents 
'finally' block to execute in time. That was my original solution, but then 
I've noticed that there is more general problem with the test - when you remove 
'logFile.setWritable(false)' it still passes.

I'll try to look into it this weekend to get a patch (have been busy lately), 
but feel free to reassign

> CommitLogTest failure causes cascading unit test failures
> -
>
> Key: CASSANDRA-7713
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7713
> Project: Cassandra
>  Issue Type: Test
>Reporter: Michael Shuler
>Assignee: Bogdan Kanivets
> Fix For: 2.0.11
>
> Attachments: CommitLogTest.system.log.txt
>
>
> When CommitLogTest.testCommitFailurePolicy_stop fails or times out, 
> {{commitDir.setWritable(true)}} is never reached, so the 
> build/test/cassandra/commitlog directory is left without write permissions, 
> causing cascading failure of all subsequent tests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8131) Short-circuited query results from collection index query

2014-10-16 Thread Michael Shuler (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174567#comment-14174567
 ] 

Michael Shuler commented on CASSANDRA-8131:
---

On the cassandra-2.1 branch, commit 440824c, I get some different behavior:
{noformat}
mshuler@hana:~$ cqlsh 
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.1-SNAPSHOT | CQL spec 3.2.0 | Native protocol v3]
Use HELP for help.
cqlsh> CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy' , 
'replication_factor': 1 };
cqlsh> USE test ;
cqlsh:test> CREATE TABLE by_sets (id int PRIMARY KEY, datakeys set, 
datavars set);
cqlsh:test> CREATE INDEX by_sets_datakeys ON by_sets (datakeys);
cqlsh:test> CREATE INDEX by_sets_datavars ON by_sets (datavars);
cqlsh:test> INSERT INTO by_sets (id, datakeys, datavars) VALUES (1, {'a'}, 
{'b'});
cqlsh:test> INSERT INTO by_sets (id, datakeys, datavars) VALUES (2, {'c'}, 
{'d'});
cqlsh:test> INSERT INTO by_sets (id, datakeys, datavars) VALUES (3, {'e'}, 
{'f'});
cqlsh:test> INSERT INTO by_sets (id, datakeys, datavars) VALUES (4, {'a'}, 
{'z'});
cqlsh:test> SELECT * FROM by_sets;

 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  2 |{'c'} |{'d'}
  4 |{'a'} |{'z'}
  3 |{'e'} |{'f'}

(4 rows)
cqlsh:test> SELECT * FROM by_sets WHERE datakeys CONTAINS 'a' AND datakeys 
CONTAINS 'c';

 id | datakeys | datavars
+--+--

(0 rows)
cqlsh:test> SELECT * FROM by_sets WHERE datakeys CONTAINS 'c' AND datakeys 
CONTAINS 'a' ;

 id | datakeys | datavars
+--+--

(0 rows)
cqlsh:test> SELECT * FROM by_sets WHERE datakeys CONTAINS 'a';

 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  4 |{'a'} |{'z'}

(2 rows)
cqlsh:test> SELECT * FROM by_sets WHERE datakeys CONTAINS 'c';

 id | datakeys | datavars
+--+--
  2 |{'c'} |{'d'}

(1 rows)
{noformat}

> Short-circuited query results from collection index query
> -
>
> Key: CASSANDRA-8131
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8131
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Debian Wheezy, Oracle JDK, Cassandra 2.1
>Reporter: Catalin Alexandru Zamfir
>  Labels: collections, cql3, cqlsh, query, queryparser
> Fix For: 2.1.0
>
>
> After watching Jonathan's 2014 summit video, I wanted to give collection 
> indexes a try as they seem to be a fit for a "search by key/values" usage 
> pattern we have in our setup. Doing some test queries that I expect users 
> would do against the table, a short-circuit behavior came up:
> Here's the whole transcript:
> {noformat}
> CREATE TABLE by_sets (id int PRIMARY KEY, datakeys set, datavars 
> set);
> CREATE INDEX by_sets_datakeys ON by_sets (datakeys);
> CREATE INDEX by_sets_datavars ON by_sets (datavars);
> INSERT INTO by_sets (id, datakeys, datavars) VALUES (1, {'a'}, {'b'});
> INSERT INTO by_sets (id, datakeys, datavars) VALUES (2, {'c'}, {'d'});
> INSERT INTO by_sets (id, datakeys, datavars) VALUES (3, {'e'}, {'f'});
> INSERT INTO by_sets (id, datakeys, datavars) VALUES (4, {'a'}, {'z'});
> SELECT * FROM by_sets;
>  id | datakeys | datavars
> +--+--
>   1 |{'a'} |{'b'}
>   2 |{'c'} |{'d'}
>   4 |{'a'} |{'z'}
>   3 |{'e'} |{'f'}
> {noformat}
> We then tried this query which short-circuited:
> {noformat}
> SELECT * FROM by_sets WHERE datakeys CONTAINS 'a' AND datakeys CONTAINS 'c';
>  id | datakeys | datavars
> +--+--
>   1 |{'a'} |{'b'}
>   4 |{'a'} |{'z'}
> (2 rows)
> {noformat}
> Instead of receveing 3 rows, which match the datakeys CONTAINS 'a' AND 
> datakeys CONTAINS 'c' we only got the first.
> Doing the same, but with CONTAINS 'c' first, ignores the second AND.
> {noformat}
> SELECT * FROM by_sets WHERE datakeys CONTAINS 'c' AND datakeys CONTAINS 'a' ;
>  id | datakeys | datavars
> +--+--
>   2 |{'c'} |{'d'}
> (1 rows)
> {noformat}
> Also, on a side-note, I have two indexes on both datakeys and datavars. But 
> when trying to run a query such as:
> {noformat}
> select * from by_sets WHERE datakeys CONTAINS 'a' AND datavars CONTAINS 'z';
> code=2200 [Invalid query] message="Cannot execute this query as it might 
> involve data filtering and thus may have unpredictable performance. 
> If you want to execute this query despite the performance unpredictability, 
> use ALLOW FILTERING"
> {noformat}
> The second column, after AND (even if I inverse the order) requires an "allow 
> filtering" clause yet the column is indexed an an in-memory "join" of the 
> primary keys of these sets on the coordinator could build up the result.
> Could anyon

[jira] [Resolved] (CASSANDRA-7446) Batchlog should be streamed to a different node on decom

2014-10-16 Thread Aleksey Yeschenko (JIRA)

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

Aleksey Yeschenko resolved CASSANDRA-7446.
--
   Resolution: Fixed
Fix Version/s: (was: 2.1.2)
   2.1.1
   2.0.11

Committed, thanks

> Batchlog should be streamed to a different node on decom
> 
>
> Key: CASSANDRA-7446
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7446
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Aleksey Yeschenko
>Assignee: Branimir Lambov
> Fix For: 2.0.11, 2.1.1
>
> Attachments: 7446-2.0.txt
>
>
> Just like we stream hints on decom, we should also stream the contents of the 
> batchlog - even though we do replicate the batch to at least two nodes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


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

2014-10-16 Thread aleksey
Merge branch 'cassandra-2.0' into cassandra-2.1

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


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

Branch: refs/heads/trunk
Commit: 440824c1a60a344bc3e8a5ad35ae2fac879bd61d
Parents: 014d328 e916dff
Author: Aleksey Yeschenko 
Authored: Fri Oct 17 03:40:17 2014 +0300
Committer: Aleksey Yeschenko 
Committed: Fri Oct 17 03:40:17 2014 +0300

--
 CHANGES.txt |  1 +
 .../apache/cassandra/db/BatchlogManager.java| 64 ++--
 .../cassandra/service/StorageService.java   | 25 ++--
 .../cassandra/db/BatchlogManagerTest.java   |  8 +--
 4 files changed, 57 insertions(+), 41 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/440824c1/CHANGES.txt
--
diff --cc CHANGES.txt
index b40e14b,73aaab0..d7a8904
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,89 -1,5 +1,90 @@@
 -2.0.11:
 +2.1.1
 + * Fix IllegalArgumentException when a list of IN values containing tuples
 +   is passed as a single arg to a prepared statement with the v1 or v2
 +   protocol (CASSANDRA-8062)
 + * Fix ClassCastException in DISTINCT query on static columns with
 +   query paging (CASSANDRA-8108)
 + * Fix NPE on null nested UDT inside a set (CASSANDRA-8105)
 + * Fix exception when querying secondary index on set items or map keys
 +   when some clustering columns are specified (CASSANDRA-8073)
 + * Send proper error response when there is an error during native
 +   protocol message decode (CASSANDRA-8118)
 + * Gossip should ignore generation numbers too far in the future 
(CASSANDRA-8113)
 + * Fix NPE when creating a table with frozen sets, lists (CASSANDRA-8104)
 + * Fix high memory use due to tracking reads on incrementally opened sstable
 +   readers (CASSANDRA-8066)
 + * Fix EXECUTE request with skipMetadata=false returning no metadata
 +   (CASSANDRA-8054)
 + * Allow concurrent use of CQLBulkOutputFormat (CASSANDRA-7776)
 + * Shutdown JVM on OOM (CASSANDRA-7507)
 + * Upgrade netty version and enable epoll event loop (CASSANDRA-7761)
 + * Don't duplicate sstables smaller than split size when using
 +   the sstablesplitter tool (CASSANDRA-7616)
 + * Avoid re-parsing already prepared statements (CASSANDRA-7923)
 + * Fix some Thrift slice deletions and updates of COMPACT STORAGE
 +   tables with some clustering columns omitted (CASSANDRA-7990)
 + * Fix filtering for CONTAINS on sets (CASSANDRA-8033)
 + * Properly track added size (CASSANDRA-7239)
 + * Allow compilation in java 8 (CASSANDRA-7208)
 + * Fix Assertion error on RangeTombstoneList diff (CASSANDRA-8013)
 + * Release references to overlapping sstables during compaction 
(CASSANDRA-7819)
 + * Send notification when opening compaction results early (CASSANDRA-8034)
 + * Make native server start block until properly bound (CASSANDRA-7885)
 + * (cqlsh) Fix IPv6 support (CASSANDRA-7988)
 + * Ignore fat clients when checking for endpoint collision (CASSANDRA-7939)
 + * Make sstablerepairedset take a list of files (CASSANDRA-7995)
 + * (cqlsh) Tab completeion for indexes on map keys (CASSANDRA-7972)
 + * (cqlsh) Fix UDT field selection in select clause (CASSANDRA-7891)
 + * Fix resource leak in event of corrupt sstable
 + * (cqlsh) Add command line option for cqlshrc file path (CASSANDRA-7131)
 + * Provide visibility into prepared statements churn (CASSANDRA-7921, 
CASSANDRA-7930)
 + * Invalidate prepared statements when their keyspace or table is
 +   dropped (CASSANDRA-7566)
 + * cassandra-stress: fix support for NetworkTopologyStrategy (CASSANDRA-7945)
 + * Fix saving caches when a table is dropped (CASSANDRA-7784)
 + * Add better error checking of new stress profile (CASSANDRA-7716)
 + * Use ThreadLocalRandom and remove FBUtilities.threadLocalRandom 
(CASSANDRA-7934)
 + * Prevent operator mistakes due to simultaneous bootstrap (CASSANDRA-7069)
 + * cassandra-stress supports whitelist mode for node config (CASSANDRA-7658)
 + * GCInspector more closely tracks GC; cassandra-stress and nodetool report 
it (CASSANDRA-7916)
 + * nodetool won't output bogus ownership info without a keyspace 
(CASSANDRA-7173)
 + * Add human readable option to nodetool commands (CASSANDRA-5433)
 + * Don't try to set repairedAt on old sstables (CASSANDRA-7913)
 + * Add metrics for tracking PreparedStatement use (CASSANDRA-7719)
 + * (cqlsh) tab-completion for triggers (CASSANDRA-7824)
 + * (cqlsh) Support for query paging (CASSANDRA-7514)
 + * (cqlsh) Show progress of COPY operations (CASSANDRA-7789)
 + * Add syntax to remove mul

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

2014-10-16 Thread aleksey
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 0ca6beb6823bcf6f31c69454da98c1f53cd88780
Parents: 543fbc3 440824c
Author: Aleksey Yeschenko 
Authored: Fri Oct 17 03:40:46 2014 +0300
Committer: Aleksey Yeschenko 
Committed: Fri Oct 17 03:40:46 2014 +0300

--
 CHANGES.txt |  1 +
 .../apache/cassandra/db/BatchlogManager.java| 63 ++--
 .../cassandra/service/StorageService.java   | 25 ++--
 .../cassandra/db/BatchlogManagerTest.java   |  8 +--
 4 files changed, 57 insertions(+), 40 deletions(-)
--


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

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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0ca6beb6/test/unit/org/apache/cassandra/db/BatchlogManagerTest.java
--



[1/3] git commit: Force batchlog replay before decommissioning a node

2014-10-16 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 543fbc374 -> 0ca6beb68


Force batchlog replay before decommissioning a node

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


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

Branch: refs/heads/trunk
Commit: e916dff8ba032d878ad4435eb7175c6a56f79ef4
Parents: 67db1bf
Author: Branimir Lambov 
Authored: Fri Oct 17 03:18:37 2014 +0300
Committer: Aleksey Yeschenko 
Committed: Fri Oct 17 03:18:37 2014 +0300

--
 CHANGES.txt |  1 +
 .../apache/cassandra/db/BatchlogManager.java| 63 ++--
 .../cassandra/service/StorageService.java   | 25 ++--
 .../cassandra/db/BatchlogManagerTest.java   |  8 +--
 4 files changed, 57 insertions(+), 40 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e916dff8/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index cd4b6bb..73aaab0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.11:
+ * Force batchlog replay before decommissioning a node (CASSANDRA-7446)
  * Fix hint replay with many accumulated expired hints (CASSANDRA-6998)
  * Fix duplicate results in DISTINCT queries on static columns with query
paging (CASSANDRA-8108)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e916dff8/src/java/org/apache/cassandra/db/BatchlogManager.java
--
diff --git a/src/java/org/apache/cassandra/db/BatchlogManager.java 
b/src/java/org/apache/cassandra/db/BatchlogManager.java
index b92c217..48f4c3c 100644
--- a/src/java/org/apache/cassandra/db/BatchlogManager.java
+++ b/src/java/org/apache/cassandra/db/BatchlogManager.java
@@ -25,7 +25,6 @@ import java.net.InetAddress;
 import java.nio.ByteBuffer;
 import java.util.*;
 import java.util.concurrent.*;
-import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
@@ -69,8 +68,8 @@ public class BatchlogManager implements BatchlogManagerMBean
 public static final BatchlogManager instance = new BatchlogManager();
 
 private final AtomicLong totalBatchesReplayed = new AtomicLong();
-private final AtomicBoolean isReplaying = new AtomicBoolean();
 
+// Single-thread executor service for scheduling and serializing log 
replay.
 public static final ScheduledExecutorService batchlogTasks = new 
DebuggableScheduledThreadPoolExecutor("BatchlogTasks");
 
 public void start()
@@ -108,6 +107,11 @@ public class BatchlogManager implements 
BatchlogManagerMBean
 
 public void forceBatchlogReplay()
 {
+startBatchlogReplay();
+}
+
+public Future startBatchlogReplay()
+{
 Runnable runnable = new WrappedRunnable()
 {
 public void runMayThrow() throws ExecutionException, 
InterruptedException
@@ -115,7 +119,8 @@ public class BatchlogManager implements BatchlogManagerMBean
 replayAllFailedBatches();
 }
 };
-batchlogTasks.execute(runnable);
+// If a replay is already in progress this request will be executed 
after it completes.
+return batchlogTasks.submit(runnable);
 }
 
 public static RowMutation getBatchlogMutationFor(Collection 
mutations, UUID uuid)
@@ -156,12 +161,8 @@ public class BatchlogManager implements 
BatchlogManagerMBean
 return ByteBuffer.wrap(bos.toByteArray());
 }
 
-@VisibleForTesting
-void replayAllFailedBatches() throws ExecutionException, 
InterruptedException
+private void replayAllFailedBatches() throws ExecutionException, 
InterruptedException
 {
-if (!isReplaying.compareAndSet(false, true))
-return;
-
 logger.debug("Started replayAllFailedBatches");
 
 // rate limit is in bytes per second. Uses Double.MAX_VALUE if 
disabled (set to 0 in cassandra.yaml).
@@ -169,34 +170,27 @@ public class BatchlogManager implements 
BatchlogManagerMBean
 int throttleInKB = DatabaseDescriptor.getBatchlogReplayThrottleInKB() 
/ StorageService.instance.getTokenMetadata().getAllEndpoints().size();
 RateLimiter rateLimiter = RateLimiter.create(throttleInKB == 0 ? 
Double.MAX_VALUE : throttleInKB * 1024);
 
-try
-{
-UntypedResultSet page = process("SELECT id, data, written_at, 
version FROM %s.%s LIMIT %d",
-Keyspace.SYSTEM_KS,
-SystemKey

[1/2] git commit: Force batchlog replay before decommissioning a node

2014-10-16 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 014d328f4 -> 440824c1a


Force batchlog replay before decommissioning a node

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


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

Branch: refs/heads/cassandra-2.1
Commit: e916dff8ba032d878ad4435eb7175c6a56f79ef4
Parents: 67db1bf
Author: Branimir Lambov 
Authored: Fri Oct 17 03:18:37 2014 +0300
Committer: Aleksey Yeschenko 
Committed: Fri Oct 17 03:18:37 2014 +0300

--
 CHANGES.txt |  1 +
 .../apache/cassandra/db/BatchlogManager.java| 63 ++--
 .../cassandra/service/StorageService.java   | 25 ++--
 .../cassandra/db/BatchlogManagerTest.java   |  8 +--
 4 files changed, 57 insertions(+), 40 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e916dff8/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index cd4b6bb..73aaab0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.11:
+ * Force batchlog replay before decommissioning a node (CASSANDRA-7446)
  * Fix hint replay with many accumulated expired hints (CASSANDRA-6998)
  * Fix duplicate results in DISTINCT queries on static columns with query
paging (CASSANDRA-8108)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e916dff8/src/java/org/apache/cassandra/db/BatchlogManager.java
--
diff --git a/src/java/org/apache/cassandra/db/BatchlogManager.java 
b/src/java/org/apache/cassandra/db/BatchlogManager.java
index b92c217..48f4c3c 100644
--- a/src/java/org/apache/cassandra/db/BatchlogManager.java
+++ b/src/java/org/apache/cassandra/db/BatchlogManager.java
@@ -25,7 +25,6 @@ import java.net.InetAddress;
 import java.nio.ByteBuffer;
 import java.util.*;
 import java.util.concurrent.*;
-import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
@@ -69,8 +68,8 @@ public class BatchlogManager implements BatchlogManagerMBean
 public static final BatchlogManager instance = new BatchlogManager();
 
 private final AtomicLong totalBatchesReplayed = new AtomicLong();
-private final AtomicBoolean isReplaying = new AtomicBoolean();
 
+// Single-thread executor service for scheduling and serializing log 
replay.
 public static final ScheduledExecutorService batchlogTasks = new 
DebuggableScheduledThreadPoolExecutor("BatchlogTasks");
 
 public void start()
@@ -108,6 +107,11 @@ public class BatchlogManager implements 
BatchlogManagerMBean
 
 public void forceBatchlogReplay()
 {
+startBatchlogReplay();
+}
+
+public Future startBatchlogReplay()
+{
 Runnable runnable = new WrappedRunnable()
 {
 public void runMayThrow() throws ExecutionException, 
InterruptedException
@@ -115,7 +119,8 @@ public class BatchlogManager implements BatchlogManagerMBean
 replayAllFailedBatches();
 }
 };
-batchlogTasks.execute(runnable);
+// If a replay is already in progress this request will be executed 
after it completes.
+return batchlogTasks.submit(runnable);
 }
 
 public static RowMutation getBatchlogMutationFor(Collection 
mutations, UUID uuid)
@@ -156,12 +161,8 @@ public class BatchlogManager implements 
BatchlogManagerMBean
 return ByteBuffer.wrap(bos.toByteArray());
 }
 
-@VisibleForTesting
-void replayAllFailedBatches() throws ExecutionException, 
InterruptedException
+private void replayAllFailedBatches() throws ExecutionException, 
InterruptedException
 {
-if (!isReplaying.compareAndSet(false, true))
-return;
-
 logger.debug("Started replayAllFailedBatches");
 
 // rate limit is in bytes per second. Uses Double.MAX_VALUE if 
disabled (set to 0 in cassandra.yaml).
@@ -169,34 +170,27 @@ public class BatchlogManager implements 
BatchlogManagerMBean
 int throttleInKB = DatabaseDescriptor.getBatchlogReplayThrottleInKB() 
/ StorageService.instance.getTokenMetadata().getAllEndpoints().size();
 RateLimiter rateLimiter = RateLimiter.create(throttleInKB == 0 ? 
Double.MAX_VALUE : throttleInKB * 1024);
 
-try
-{
-UntypedResultSet page = process("SELECT id, data, written_at, 
version FROM %s.%s LIMIT %d",
-Keyspace.SYSTEM_KS,
- 

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

2014-10-16 Thread aleksey
Merge branch 'cassandra-2.0' into cassandra-2.1

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


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

Branch: refs/heads/cassandra-2.1
Commit: 440824c1a60a344bc3e8a5ad35ae2fac879bd61d
Parents: 014d328 e916dff
Author: Aleksey Yeschenko 
Authored: Fri Oct 17 03:40:17 2014 +0300
Committer: Aleksey Yeschenko 
Committed: Fri Oct 17 03:40:17 2014 +0300

--
 CHANGES.txt |  1 +
 .../apache/cassandra/db/BatchlogManager.java| 64 ++--
 .../cassandra/service/StorageService.java   | 25 ++--
 .../cassandra/db/BatchlogManagerTest.java   |  8 +--
 4 files changed, 57 insertions(+), 41 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/440824c1/CHANGES.txt
--
diff --cc CHANGES.txt
index b40e14b,73aaab0..d7a8904
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,89 -1,5 +1,90 @@@
 -2.0.11:
 +2.1.1
 + * Fix IllegalArgumentException when a list of IN values containing tuples
 +   is passed as a single arg to a prepared statement with the v1 or v2
 +   protocol (CASSANDRA-8062)
 + * Fix ClassCastException in DISTINCT query on static columns with
 +   query paging (CASSANDRA-8108)
 + * Fix NPE on null nested UDT inside a set (CASSANDRA-8105)
 + * Fix exception when querying secondary index on set items or map keys
 +   when some clustering columns are specified (CASSANDRA-8073)
 + * Send proper error response when there is an error during native
 +   protocol message decode (CASSANDRA-8118)
 + * Gossip should ignore generation numbers too far in the future 
(CASSANDRA-8113)
 + * Fix NPE when creating a table with frozen sets, lists (CASSANDRA-8104)
 + * Fix high memory use due to tracking reads on incrementally opened sstable
 +   readers (CASSANDRA-8066)
 + * Fix EXECUTE request with skipMetadata=false returning no metadata
 +   (CASSANDRA-8054)
 + * Allow concurrent use of CQLBulkOutputFormat (CASSANDRA-7776)
 + * Shutdown JVM on OOM (CASSANDRA-7507)
 + * Upgrade netty version and enable epoll event loop (CASSANDRA-7761)
 + * Don't duplicate sstables smaller than split size when using
 +   the sstablesplitter tool (CASSANDRA-7616)
 + * Avoid re-parsing already prepared statements (CASSANDRA-7923)
 + * Fix some Thrift slice deletions and updates of COMPACT STORAGE
 +   tables with some clustering columns omitted (CASSANDRA-7990)
 + * Fix filtering for CONTAINS on sets (CASSANDRA-8033)
 + * Properly track added size (CASSANDRA-7239)
 + * Allow compilation in java 8 (CASSANDRA-7208)
 + * Fix Assertion error on RangeTombstoneList diff (CASSANDRA-8013)
 + * Release references to overlapping sstables during compaction 
(CASSANDRA-7819)
 + * Send notification when opening compaction results early (CASSANDRA-8034)
 + * Make native server start block until properly bound (CASSANDRA-7885)
 + * (cqlsh) Fix IPv6 support (CASSANDRA-7988)
 + * Ignore fat clients when checking for endpoint collision (CASSANDRA-7939)
 + * Make sstablerepairedset take a list of files (CASSANDRA-7995)
 + * (cqlsh) Tab completeion for indexes on map keys (CASSANDRA-7972)
 + * (cqlsh) Fix UDT field selection in select clause (CASSANDRA-7891)
 + * Fix resource leak in event of corrupt sstable
 + * (cqlsh) Add command line option for cqlshrc file path (CASSANDRA-7131)
 + * Provide visibility into prepared statements churn (CASSANDRA-7921, 
CASSANDRA-7930)
 + * Invalidate prepared statements when their keyspace or table is
 +   dropped (CASSANDRA-7566)
 + * cassandra-stress: fix support for NetworkTopologyStrategy (CASSANDRA-7945)
 + * Fix saving caches when a table is dropped (CASSANDRA-7784)
 + * Add better error checking of new stress profile (CASSANDRA-7716)
 + * Use ThreadLocalRandom and remove FBUtilities.threadLocalRandom 
(CASSANDRA-7934)
 + * Prevent operator mistakes due to simultaneous bootstrap (CASSANDRA-7069)
 + * cassandra-stress supports whitelist mode for node config (CASSANDRA-7658)
 + * GCInspector more closely tracks GC; cassandra-stress and nodetool report 
it (CASSANDRA-7916)
 + * nodetool won't output bogus ownership info without a keyspace 
(CASSANDRA-7173)
 + * Add human readable option to nodetool commands (CASSANDRA-5433)
 + * Don't try to set repairedAt on old sstables (CASSANDRA-7913)
 + * Add metrics for tracking PreparedStatement use (CASSANDRA-7719)
 + * (cqlsh) tab-completion for triggers (CASSANDRA-7824)
 + * (cqlsh) Support for query paging (CASSANDRA-7514)
 + * (cqlsh) Show progress of COPY operations (CASSANDRA-7789)
 + * Add syntax to re

git commit: Force batchlog replay before decommissioning a node

2014-10-16 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 67db1bf27 -> e916dff8b


Force batchlog replay before decommissioning a node

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


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

Branch: refs/heads/cassandra-2.0
Commit: e916dff8ba032d878ad4435eb7175c6a56f79ef4
Parents: 67db1bf
Author: Branimir Lambov 
Authored: Fri Oct 17 03:18:37 2014 +0300
Committer: Aleksey Yeschenko 
Committed: Fri Oct 17 03:18:37 2014 +0300

--
 CHANGES.txt |  1 +
 .../apache/cassandra/db/BatchlogManager.java| 63 ++--
 .../cassandra/service/StorageService.java   | 25 ++--
 .../cassandra/db/BatchlogManagerTest.java   |  8 +--
 4 files changed, 57 insertions(+), 40 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e916dff8/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index cd4b6bb..73aaab0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.11:
+ * Force batchlog replay before decommissioning a node (CASSANDRA-7446)
  * Fix hint replay with many accumulated expired hints (CASSANDRA-6998)
  * Fix duplicate results in DISTINCT queries on static columns with query
paging (CASSANDRA-8108)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e916dff8/src/java/org/apache/cassandra/db/BatchlogManager.java
--
diff --git a/src/java/org/apache/cassandra/db/BatchlogManager.java 
b/src/java/org/apache/cassandra/db/BatchlogManager.java
index b92c217..48f4c3c 100644
--- a/src/java/org/apache/cassandra/db/BatchlogManager.java
+++ b/src/java/org/apache/cassandra/db/BatchlogManager.java
@@ -25,7 +25,6 @@ import java.net.InetAddress;
 import java.nio.ByteBuffer;
 import java.util.*;
 import java.util.concurrent.*;
-import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
@@ -69,8 +68,8 @@ public class BatchlogManager implements BatchlogManagerMBean
 public static final BatchlogManager instance = new BatchlogManager();
 
 private final AtomicLong totalBatchesReplayed = new AtomicLong();
-private final AtomicBoolean isReplaying = new AtomicBoolean();
 
+// Single-thread executor service for scheduling and serializing log 
replay.
 public static final ScheduledExecutorService batchlogTasks = new 
DebuggableScheduledThreadPoolExecutor("BatchlogTasks");
 
 public void start()
@@ -108,6 +107,11 @@ public class BatchlogManager implements 
BatchlogManagerMBean
 
 public void forceBatchlogReplay()
 {
+startBatchlogReplay();
+}
+
+public Future startBatchlogReplay()
+{
 Runnable runnable = new WrappedRunnable()
 {
 public void runMayThrow() throws ExecutionException, 
InterruptedException
@@ -115,7 +119,8 @@ public class BatchlogManager implements BatchlogManagerMBean
 replayAllFailedBatches();
 }
 };
-batchlogTasks.execute(runnable);
+// If a replay is already in progress this request will be executed 
after it completes.
+return batchlogTasks.submit(runnable);
 }
 
 public static RowMutation getBatchlogMutationFor(Collection 
mutations, UUID uuid)
@@ -156,12 +161,8 @@ public class BatchlogManager implements 
BatchlogManagerMBean
 return ByteBuffer.wrap(bos.toByteArray());
 }
 
-@VisibleForTesting
-void replayAllFailedBatches() throws ExecutionException, 
InterruptedException
+private void replayAllFailedBatches() throws ExecutionException, 
InterruptedException
 {
-if (!isReplaying.compareAndSet(false, true))
-return;
-
 logger.debug("Started replayAllFailedBatches");
 
 // rate limit is in bytes per second. Uses Double.MAX_VALUE if 
disabled (set to 0 in cassandra.yaml).
@@ -169,34 +170,27 @@ public class BatchlogManager implements 
BatchlogManagerMBean
 int throttleInKB = DatabaseDescriptor.getBatchlogReplayThrottleInKB() 
/ StorageService.instance.getTokenMetadata().getAllEndpoints().size();
 RateLimiter rateLimiter = RateLimiter.create(throttleInKB == 0 ? 
Double.MAX_VALUE : throttleInKB * 1024);
 
-try
-{
-UntypedResultSet page = process("SELECT id, data, written_at, 
version FROM %s.%s LIMIT %d",
-Keyspace.SYSTEM_KS,
- 

[jira] [Commented] (CASSANDRA-7713) CommitLogTest failure causes cascading unit test failures

2014-10-16 Thread Michael Shuler (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174435#comment-14174435
 ] 

Michael Shuler commented on CASSANDRA-7713:
---

I'm half-way thinking that the way to handle this timeout problem is to simply 
add a test that is run immediately after CommitLogTest that simply resets 
{{commitDir.setWritable(true);}}

> CommitLogTest failure causes cascading unit test failures
> -
>
> Key: CASSANDRA-7713
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7713
> Project: Cassandra
>  Issue Type: Test
>Reporter: Michael Shuler
>Assignee: Bogdan Kanivets
> Fix For: 2.0.11
>
> Attachments: CommitLogTest.system.log.txt
>
>
> When CommitLogTest.testCommitFailurePolicy_stop fails or times out, 
> {{commitDir.setWritable(true)}} is never reached, so the 
> build/test/cassandra/commitlog directory is left without write permissions, 
> causing cascading failure of all subsequent tests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7713) CommitLogTest failure causes cascading unit test failures

2014-10-16 Thread Michael Shuler (JIRA)

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

Michael Shuler updated CASSANDRA-7713:
--
Reproduced In: 2.1.0, 2.0.10
Since Version: 2.0.6
   Tester: Michael Shuler

> CommitLogTest failure causes cascading unit test failures
> -
>
> Key: CASSANDRA-7713
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7713
> Project: Cassandra
>  Issue Type: Test
>Reporter: Michael Shuler
>Assignee: Bogdan Kanivets
> Fix For: 2.0.11
>
> Attachments: CommitLogTest.system.log.txt
>
>
> When CommitLogTest.testCommitFailurePolicy_stop fails or times out, 
> {{commitDir.setWritable(true)}} is never reached, so the 
> build/test/cassandra/commitlog directory is left without write permissions, 
> causing cascading failure of all subsequent tests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7713) CommitLogTest failure causes cascading unit test failures

2014-10-16 Thread Michael Shuler (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174392#comment-14174392
 ] 

Michael Shuler commented on CASSANDRA-7713:
---

[~dankan] have you had any luck with this?

> CommitLogTest failure causes cascading unit test failures
> -
>
> Key: CASSANDRA-7713
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7713
> Project: Cassandra
>  Issue Type: Test
>Reporter: Michael Shuler
>Assignee: Bogdan Kanivets
> Fix For: 2.0.11
>
> Attachments: CommitLogTest.system.log.txt
>
>
> When CommitLogTest.testCommitFailurePolicy_stop fails or times out, 
> {{commitDir.setWritable(true)}} is never reached, so the 
> build/test/cassandra/commitlog directory is left without write permissions, 
> causing cascading failure of all subsequent tests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7713) CommitLogTest failure causes cascading unit test failures

2014-10-16 Thread Michael Shuler (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174391#comment-14174391
 ] 

Michael Shuler commented on CASSANDRA-7713:
---

An @AfterClass didn't help, either..
{noformat}
diff --git a/test/unit/org/apache/cassandra/db/CommitLogTest.java 
b/test/unit/org/apache/cassandra/db/CommitLogTest.java
index 1be29a6..19faace 100644
--- a/test/unit/org/apache/cassandra/db/CommitLogTest.java
+++ b/test/unit/org/apache/cassandra/db/CommitLogTest.java
@@ -29,6 +29,7 @@ import java.util.zip.Checksum;
 
 import com.google.common.util.concurrent.Uninterruptibles;
 import org.junit.Assert;
+import org.junit.AfterClass;
 import org.junit.Test;
 
 import org.apache.cassandra.SchemaLoader;
@@ -48,6 +49,15 @@ import static 
org.apache.cassandra.utils.ByteBufferUtil.bytes;
 
 public class CommitLogTest extends SchemaLoader
 {
+@AfterClass
+public static void resetCommitLogDir()
+{
+// junit timeout leaves commitDir non-writable - CASSANDRA-7713
+File commitDir = new File(DatabaseDescriptor.getCommitLogLocation());
+commitDir.setWritable(true);
+System.out.println("reset commitlogdir: " + commitDir);
+}
+
 @Test
 public void testRecoveryWithEmptyLog() throws Exception
 {
{noformat}

> CommitLogTest failure causes cascading unit test failures
> -
>
> Key: CASSANDRA-7713
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7713
> Project: Cassandra
>  Issue Type: Test
>Reporter: Michael Shuler
>Assignee: Bogdan Kanivets
> Fix For: 2.0.11
>
> Attachments: CommitLogTest.system.log.txt
>
>
> When CommitLogTest.testCommitFailurePolicy_stop fails or times out, 
> {{commitDir.setWritable(true)}} is never reached, so the 
> build/test/cassandra/commitlog directory is left without write permissions, 
> causing cascading failure of all subsequent tests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8028) Unable to compute when histogram overflowed

2014-10-16 Thread Cameron Hatfield (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174385#comment-14174385
 ] 

Cameron Hatfield commented on CASSANDRA-8028:
-

Looks like this doesn't fully resolve the issue. According to running 
sstablemetadata on a 2.1.0 sstable file, as well as MetadataCollector.java: 
https://github.com/apache/cassandra/blob/8d8fed52242c34b477d0384ba1d1ce3978efbbe8/src/java/org/apache/cassandra/io/sstable/metadata/MetadataCollector.java#L59

the sstable metadata persisted for these histograms are actually stored with a 
larger number of buckets then 90. The issue seems to be both the nodetool, 
https://github.com/apache/cassandra/blob/810c2d5fe64333c0bcfe0b2ed3ea2c8f6aaf89b7/src/java/org/apache/cassandra/tools/NodeTool.java#L892,
 as well as ColumnFamilyMetrics 
https://github.com/apache/cassandra/blob/ed1f39480606c95ff6595aad0aad9c1af7460f74/src/java/org/apache/cassandra/metrics/ColumnFamilyMetrics.java#L220
 have a hardcoded value of 90. If that was raised, then we would be able to 
display the non-overflowed histograms stored in the metadata.

Example output from sstablemetadata (notice that number of rows is 115 and 150, 
not 90 and 90) :
[cameron@cass-db01 ]$ sstablemetadata --ka-33-Data.db
SSTable: ./--ka-33
Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
Bloom Filter FP chance: 0.01
Minimum timestamp: 1413408134518716
Maximum timestamp: 1413410874004562
SSTable max local deletion time: 2147483647
Compression ratio: 0.2157516194949938
Estimated droppable tombstones: 0.026257982293749805
SSTable Level: 0
Repaired at: 0
ReplayPosition(segmentId=1413409259260, position=15051162)
Estimated tombstone drop times:%n
1413408139:  1647
1413408151:  2451
1413408165:  3151
1413408180:  3400
1413408199:  3027
1413408214:  2769
1413408228:  2064
1413408244:  1779
1413408261:  3817
1413408280:  7265
1413408302:  1911
1413408319:  1512
1413408337:  1582
1413408354:  1712
1413408375:  1577
1413408393:  2507
1413408411:  1410
1413408431:   761
1413408447:   507
1413408466:  2593
1413408483:  3840
1413408503:  1557
1413408523:   819
1413409632:   742
1413409646:   641
1413409662:   473
1413409684:   704
1413409700:   762
1413409716:   601
1413409728:   125
1413409744:  1190
1413409763:  1181
1413409783:  1768
1413409800:  1730
1413409820:  1326
1413409837:  1273
1413409856:  1299
1413409871:  2663
1413409887:  2197
1413409901:  1776
1413409917:   871
1413409934:  1449
1413409952:  1700
1413409969:  1301
1413409984:  2100
1413410002:  2103
1413410021:  1208
1413410039:   923
1413410052:  1425
1413410068:  1796
1413410081:  2263
1413410095:  2664
1413410110:  3019
1413410128:  2823
1413410146:  3801
1413410160:  3864
1413410175:  3252
1413410188:  8337
1413410204:  9375
1413410219:  6125
1413410235:  7954
1413410254: 11019
1413410271: 12703
1413410287: 12274
1413410303: 12199
1413410317: 10751
1413410330: 11369
1413410343: 10552
1413410355:  8157
1413410369:  8776
1413410384:  7504
1413410400:  7312
1413410418:  7472
1413410434:  7032
1413410448:  6338
1413410465:  5335
1413410484:  6427
1413410504:  7897
1413410523:  8515
1413410539:  4886
1413410557:  4847
1413410576:  4987
1413410591:  7630
1413410611:  8553
1413410628: 12157
1413410645: 12740
1413410663: 13756
1413410679: 19249
1413410695: 19374
1413410713: 15390
1413410732: 13493
1413410746: 13793
1413410760: 16937
1413410775: 19841
1413410791: 16595
1413410808: 19050
1413410823: 18450
1413410840: 22497
1413410861: 34027
1413410872:16
Count   Row SizeCell Count
1  0 0
2  0 0
3  0 0
4  016
5  0 0
6  0 0
7  0 0
8  035
10 0 0
12 017
14 0 0
17 029
20 014
24 021
29 012
35 013
42 040
50 019
60 030
72 032
86

[jira] [Commented] (CASSANDRA-8133) BulkLoader does not use rpc_endpoints

2014-10-16 Thread Brandon Williams (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8133?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174378#comment-14174378
 ] 

Brandon Williams commented on CASSANDRA-8133:
-

bq. sstableloader appears to stream to listen_addresses instead of rpc_addresses

It needs to, though.  It's streaming sstables straight into Cassandra, not 
sending rpc writes.  listen_address can't bind multiple interfaces, so it's the 
only possible choice.

> BulkLoader does not use rpc_endpoints
> -
>
> Key: CASSANDRA-8133
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8133
> Project: Cassandra
>  Issue Type: Bug
>  Components: Tools
>Reporter: Umair Mufti
>  Labels: lhf
> Attachments: 0001-BulkLoader-with-rpc_endpoints.patch
>
>
> sstableloader appears to stream to listen_addresses instead of rpc_addresses. 
> This causes sstableloader to fail when streaming to nodes which bind to 
> multiple interfaces.
>  
> The problem seems to stem from BulkLoader populating the endpointToRanges map 
> with incorrect values. BulkLoader always uses the TokenRange's endpoints 
> list. 
>  
> Attached is a patch which uses the rpc_endpoints list of the TokenRange if it 
> exists. Otherwise, it uses the standard endpoints list.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CASSANDRA-8133) BulkLoader does not use rpc_endpoints

2014-10-16 Thread Umair Mufti (JIRA)
Umair Mufti created CASSANDRA-8133:
--

 Summary: BulkLoader does not use rpc_endpoints
 Key: CASSANDRA-8133
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8133
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Umair Mufti
 Attachments: 0001-BulkLoader-with-rpc_endpoints.patch

sstableloader appears to stream to listen_addresses instead of rpc_addresses. 
This causes sstableloader to fail when streaming to nodes which bind to 
multiple interfaces.
 
The problem seems to stem from BulkLoader populating the endpointToRanges map 
with incorrect values. BulkLoader always uses the TokenRange's endpoints list. 
 
Attached is a patch which uses the rpc_endpoints list of the TokenRange if it 
exists. Otherwise, it uses the standard endpoints list.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7713) CommitLogTest failure causes cascading unit test failures

2014-10-16 Thread Michael Shuler (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174345#comment-14174345
 ] 

Michael Shuler commented on CASSANDRA-7713:
---

I tried adding an @After block to the test, which appears to not be run when 
timeout occurs..  :(
{noformat}
diff --git a/test/unit/org/apache/cassandra/db/CommitLogTest.java 
b/test/unit/org/apache/cassandra/db/CommitLogTest.java
index 1be29a6..f30d527 100644
--- a/test/unit/org/apache/cassandra/db/CommitLogTest.java
+++ b/test/unit/org/apache/cassandra/db/CommitLogTest.java
@@ -30,6 +30,7 @@ import java.util.zip.Checksum;
 import com.google.common.util.concurrent.Uninterruptibles;
 import org.junit.Assert;
 import org.junit.Test;
+import org.junit.After;
 
 import org.apache.cassandra.SchemaLoader;
 import org.apache.cassandra.Util;
@@ -318,4 +319,12 @@ public class CommitLogTest extends SchemaLoader
 row = command.getRow(notDurableKs);
 Assert.assertEquals(null, row.cf);
 }
+
+@After
+public void resetCommitLogDir()
+{
+File commitDir = new File(DatabaseDescriptor.getCommitLogLocation());
+commitDir.setWritable(true);
+System.out.println("reset commitlogdir: " + commitDir);
+}
 }
{noformat}

(System.out.println was just for debugging, and this is output during a 
successful run)

> CommitLogTest failure causes cascading unit test failures
> -
>
> Key: CASSANDRA-7713
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7713
> Project: Cassandra
>  Issue Type: Test
>Reporter: Michael Shuler
>Assignee: Bogdan Kanivets
> Fix For: 2.0.11
>
> Attachments: CommitLogTest.system.log.txt
>
>
> When CommitLogTest.testCommitFailurePolicy_stop fails or times out, 
> {{commitDir.setWritable(true)}} is never reached, so the 
> build/test/cassandra/commitlog directory is left without write permissions, 
> causing cascading failure of all subsequent tests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8132) Save or stream hints to a safe place in node replacement

2014-10-16 Thread Brandon Williams (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174327#comment-14174327
 ] 

Brandon Williams commented on CASSANDRA-8132:
-

I don't understand.  When you replace a node it has the same host id so the 
existing hints are replayed from wherever they exist.  Where are you proposing 
we stream them and to what end?

> Save or stream hints to a safe place in node replacement
> 
>
> Key: CASSANDRA-8132
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8132
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Reporter: Minh Do
>Assignee: Minh Do
> Fix For: 2.1.1
>
>
> Often, we need to replace a node with a new instance in the cloud environment 
> where we have all nodes are still alive. To be safe without losing data, we 
> usually make sure all hints are gone before we do this operation.
> Replacement means we just want to shutdown C* process on a node and bring up 
> another instance to take over that node's token.
> However, if a node has a lot of stored hints, HintedHandofManager seems very 
> slow to play the hints.  In our case, we tried to replace a node and had to 
> wait for several days.
> Since this is not a decommission, I am proposing that we have the same 
> hints-streaming mechanism as in the decommission code.  Furthermore, there 
> needs to be a cmd for NodeTool to trigger this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CASSANDRA-8132) Save or stream hints to a safe place in node replacement

2014-10-16 Thread Minh Do (JIRA)
Minh Do created CASSANDRA-8132:
--

 Summary: Save or stream hints to a safe place in node replacement
 Key: CASSANDRA-8132
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8132
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Minh Do
Assignee: Minh Do
 Fix For: 2.1.1


Often, we need to replace a node with a new instance in the cloud environment 
where we have all nodes are still alive. To be safe without losing data, we 
usually make sure all hints are gone before we do this operation.

Replacement means we just want to shutdown C* process on a node and bring up 
another instance to take over that node's token.

However, if a node has a lot of stored hints, HintedHandofManager seems very 
slow to play the hints.  In our case, we tried to replace a node and had to 
wait for several days.

Since this is not a decommission, I am proposing that we have the same 
hints-streaming mechanism as in the decommission code.  Furthermore, there 
needs to be a cmd for NodeTool to trigger this.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8131) Short-circuited query results from collection index query

2014-10-16 Thread Catalin Alexandru Zamfir (JIRA)

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

Catalin Alexandru Zamfir updated CASSANDRA-8131:

Description: 
After watching Jonathan's 2014 summit video, I wanted to give collection 
indexes a try as they seem to be a fit for a "search by key/values" usage 
pattern we have in our setup. Doing some test queries that I expect users would 
do against the table, a short-circuit behavior came up:

Here's the whole transcript:
{noformat}
CREATE TABLE by_sets (id int PRIMARY KEY, datakeys set, datavars 
set);
CREATE INDEX by_sets_datakeys ON by_sets (datakeys);
CREATE INDEX by_sets_datavars ON by_sets (datavars);
INSERT INTO by_sets (id, datakeys, datavars) VALUES (1, {'a'}, {'b'});
INSERT INTO by_sets (id, datakeys, datavars) VALUES (2, {'c'}, {'d'});
INSERT INTO by_sets (id, datakeys, datavars) VALUES (3, {'e'}, {'f'});
INSERT INTO by_sets (id, datakeys, datavars) VALUES (4, {'a'}, {'z'});
SELECT * FROM by_sets;

 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  2 |{'c'} |{'d'}
  4 |{'a'} |{'z'}
  3 |{'e'} |{'f'}

{noformat}
We then tried this query which short-circuited:
{noformat}
SELECT * FROM by_sets WHERE datakeys CONTAINS 'a' AND datakeys CONTAINS 'c';

 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  4 |{'a'} |{'z'}

(2 rows)
{noformat}
Instead of receveing 3 rows, which match the datakeys CONTAINS 'a' AND datakeys 
CONTAINS 'c' we only got the first.

Doing the same, but with CONTAINS 'c' first, ignores the second AND.
{noformat}
SELECT * FROM by_sets WHERE datakeys CONTAINS 'c' AND datakeys CONTAINS 'a' ;

 id | datakeys | datavars
+--+--
  2 |{'c'} |{'d'}

(1 rows)
{noformat}
Also, on a side-note, I have two indexes on both datakeys and datavars. But 
when trying to run a query such as:
{noformat}
select * from by_sets WHERE datakeys CONTAINS 'a' AND datavars CONTAINS 'z';
code=2200 [Invalid query] message="Cannot execute this query as it might 
involve data filtering and thus may have unpredictable performance. 
If you want to execute this query despite the performance unpredictability, use 
ALLOW FILTERING"
{noformat}
The second column, after AND (even if I inverse the order) requires an "allow 
filtering" clause yet the column is indexed an an in-memory "join" of the 
primary keys of these sets on the coordinator could build up the result.

Could anyone explain the short-circuit behavior?
And the requirement for "allow-filtering" on a secondly indexed column?

If they're not bugs but intended they should be documented better, at least 
their limitations.

  was:
After watching Jonathan's 2014 summit video, I wanted to give collection 
indexes a try as they seem to be a fit for a "search by key/values" usage 
pattern we have in our setup. Doing some test queries that I expect users would 
do against the table, a short-circuit behavior came up:

Here's the whole transcript:
{noformat}
CREATE TABLE by_sets (id int PRIMARY KEY, datakeys set, datavars 
set);
CREATE INDEX by_sets_datakeys ON by_sets (datakeys);
CREATE INDEX by_sets_datavars ON by_sets (datavars);
INSERT INTO by_sets (id, datakeys, datavars) VALUES (1, {'a'}, {'b'});
INSERT INTO by_sets (id, datakeys, datavars) VALUES (2, {'c'}, {'d'});
INSERT INTO by_sets (id, datakeys, datavars) VALUES (3, {'e'}, {'f'});
INSERT INTO by_sets (id, datakeys, datavars) VALUES (4, {'a'}, {'z'});
SELECT * FROM by_sets;


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  2 |{'c'} |{'d'}
  4 |{'a'} |{'z'}
  3 |{'e'} |{'f'}

{noformat}
We then tried this query which short-circuited:
{noformat}
SELECT * FROM by_sets WHERE datakeys CONTAINS 'a' AND datakeys CONTAINS 'c';


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  4 |{'a'} |{'z'}

(2 rows)

{noformat}
Instead of receveing 3 rows, which match the datakeys CONTAINS 'a' AND datakeys 
CONTAINS 'c' we only got the first.

Doing the same, but with CONTAINS 'c' first, ignores the second AND.
{noformat}
#> SELECT * FROM by_sets WHERE datakeys CONTAINS 'c' AND datakeys CONTAINS 'a' ;


 id | datakeys | datavars
+--+--
  2 |{'c'} |{'d'}

(1 rows)

{noformat}
Also, on a side-note, I have two indexes on both datakeys and datavars. But 
when trying to run a query such as:
{noformat}
#> select * from by_sets WHERE datakeys CONTAINS 'a' AND datavars CONTAINS 'z';
code=2200 [Invalid query] message="Cannot execute this query as it might 
involve data filtering and thus may have unpredictable performance. 
If you want to execute this query despite the performance unpredictability, use 
ALLOW FILTERING"
{noformat}
The second column, after AND (even if I inverse the order) requires an "allow 
filtering" clause yet the column 

[jira] [Updated] (CASSANDRA-8131) Short-circuited query results from collection index query

2014-10-16 Thread Catalin Alexandru Zamfir (JIRA)

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

Catalin Alexandru Zamfir updated CASSANDRA-8131:

Description: 
After watching Jonathan's 2014 summit video, I wanted to give collection 
indexes a try as they seem to be a fit for a "search by key/values" usage 
pattern we have in our setup. Doing some test queries that I expect users would 
do against the table, a short-circuit behavior came up:

Here's the whole transcript:
{noformat}
CREATE TABLE by_sets (id int PRIMARY KEY, datakeys set, datavars 
set);
CREATE INDEX by_sets_datakeys ON by_sets (datakeys);
CREATE INDEX by_sets_datavars ON by_sets (datavars);
INSERT INTO by_sets (id, datakeys, datavars) VALUES (1, {'a'}, {'b'});
INSERT INTO by_sets (id, datakeys, datavars) VALUES (2, {'c'}, {'d'});
INSERT INTO by_sets (id, datakeys, datavars) VALUES (3, {'e'}, {'f'});
INSERT INTO by_sets (id, datakeys, datavars) VALUES (4, {'a'}, {'z'});
SELECT * FROM by_sets;


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  2 |{'c'} |{'d'}
  4 |{'a'} |{'z'}
  3 |{'e'} |{'f'}

{noformat}
We then tried this query which short-circuited:
{noformat}
SELECT * FROM by_sets WHERE datakeys CONTAINS 'a' AND datakeys CONTAINS 'c';


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  4 |{'a'} |{'z'}

(2 rows)

{noformat}
Instead of receveing 3 rows, which match the datakeys CONTAINS 'a' AND datakeys 
CONTAINS 'c' we only got the first.

Doing the same, but with CONTAINS 'c' first, ignores the second AND.
{noformat}
#> SELECT * FROM by_sets WHERE datakeys CONTAINS 'c' AND datakeys CONTAINS 'a' ;


 id | datakeys | datavars
+--+--
  2 |{'c'} |{'d'}

(1 rows)

{noformat}
Also, on a side-note, I have two indexes on both datakeys and datavars. But 
when trying to run a query such as:
{noformat}
#> select * from by_sets WHERE datakeys CONTAINS 'a' AND datavars CONTAINS 'z';
code=2200 [Invalid query] message="Cannot execute this query as it might 
involve data filtering and thus may have unpredictable performance. 
If you want to execute this query despite the performance unpredictability, use 
ALLOW FILTERING"
{noformat}
The second column, after AND (even if I inverse the order) requires an "allow 
filtering" clause yet the column is indexed an an in-memory "join" of the 
primary keys of these sets on the coordinator could build up the result.

Could anyone explain the short-circuit behavior?
And the requirement for "allow-filtering" on a secondly indexed column?

If they're not bugs but intended they should be documented better, at least 
their limitations.

  was:
After watching Jonathan's 2014 summit video, I wanted to give collection 
indexes a try as they seem to be a fit for a "search by key/values" usage 
pattern we have in our setup. Doing some test queries that I expect users would 
do against the table, a short-circuit behavior came up:

Here's the whole transcript:
{noformat}
create table by_sets (id int PRIMARY KEY, datakeys set, datavars 
set);
CREATE INDEX by_sets_datakeys ON by_sets (datakeys);
CREATE INDEX by_sets_datavars ON by_sets (datavars);
insert into by_sets (id, datakeys, datavars) values (1, {'a'}, {'b'});
insert into by_sets (id, datakeys, datavars) values (2, {'c'}, {'d'});
insert into by_sets (id, datakeys, datavars) values (3, {'e'}, {'f'});
insert into by_sets (id, datakeys, datavars) values (4, {'a'}, {'z'});
select * from by_sets;


 id | datakeys | datavars
+--+--
 1 |{'a'} |{'b'}
  2 |{'c'} |{'d'}
  4 |{'a'} |{'z'}
  3 |{'e'} |{'f'}

{noformat}
We then tried this query which short-circuited:
{noformat}
select * from by_sets WHERE datakeys cONTAINS 'a' AND datakeys CONTAINS 'c';


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  4 |{'a'} |{'z'}

(2 rows)

{noformat}
Instead of receveing 3 rows, which match the datakeys CONTAINS 'a' AND datakeys 
CONTAINS 'c' we only got the first.

Doing the same, but with CONTAINS 'c' first, ignores the second AND.
{noformat}
#> select * from by_sets WHERE datakeys cONTAINS 'c' AND datakeys CONTAINS 'a' ;


 id | datakeys | datavars
+--+--
  2 |{'c'} |{'d'}

(1 rows)

{noformat}
Also, on a side-note, I have two indexes on both datakeys and datavars. But 
when trying to run a query such as:
{noformat}
#> select * from by_sets WHERE datakeys CONTAINS 'a' AND datavars CONTAINS 'z';
code=2200 [Invalid query] message="Cannot execute this query as it might 
involve data filtering and thus may have unpredictable performance. If you want 
to execute this query despite the performance unpredictability, use ALLOW 
FILTERING"
{noformat}
The second column, after AND (even if I inverse the order) requires an "allow 

[jira] [Updated] (CASSANDRA-8131) Short-circuited query results from collection index query

2014-10-16 Thread Catalin Alexandru Zamfir (JIRA)

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

Catalin Alexandru Zamfir updated CASSANDRA-8131:

Description: 
After watching Jonathan's 2014 summit video, I wanted to give collection 
indexes a try as they seem to be a fit for a "search by key/values" usage 
pattern we have in our setup. Doing some test queries that I expect users would 
do against the table, a short-circuit behavior came up:

Here's the whole transcript:
{noformat}
create table by_sets (id int PRIMARY KEY, datakeys set, datavars 
set);
CREATE INDEX by_sets_datakeys ON by_sets (datakeys);
CREATE INDEX by_sets_datavars ON by_sets (datavars);
insert into by_sets (id, datakeys, datavars) values (1, {'a'}, {'b'});
insert into by_sets (id, datakeys, datavars) values (2, {'c'}, {'d'});
insert into by_sets (id, datakeys, datavars) values (3, {'e'}, {'f'});
insert into by_sets (id, datakeys, datavars) values (4, {'a'}, {'z'});
select * from by_sets;


 id | datakeys | datavars
+--+--
 1 |{'a'} |{'b'}
  2 |{'c'} |{'d'}
  4 |{'a'} |{'z'}
  3 |{'e'} |{'f'}

{noformat}
We then tried this query which short-circuited:
{noformat}
select * from by_sets WHERE datakeys cONTAINS 'a' AND datakeys CONTAINS 'c';


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  4 |{'a'} |{'z'}

(2 rows)

{noformat}
Instead of receveing 3 rows, which match the datakeys CONTAINS 'a' AND datakeys 
CONTAINS 'c' we only got the first.

Doing the same, but with CONTAINS 'c' first, ignores the second AND.
{noformat}
#> select * from by_sets WHERE datakeys cONTAINS 'c' AND datakeys CONTAINS 'a' ;


 id | datakeys | datavars
+--+--
  2 |{'c'} |{'d'}

(1 rows)

{noformat}
Also, on a side-note, I have two indexes on both datakeys and datavars. But 
when trying to run a query such as:
{noformat}
#> select * from by_sets WHERE datakeys CONTAINS 'a' AND datavars CONTAINS 'z';
code=2200 [Invalid query] message="Cannot execute this query as it might 
involve data filtering and thus may have unpredictable performance. If you want 
to execute this query despite the performance unpredictability, use ALLOW 
FILTERING"
{noformat}
The second column, after AND (even if I inverse the order) requires an "allow 
filtering" clause yet the column is indexed an an in-memory "join" of the 
primary keys of these sets on the coordinator could build up the result.

Could anyone explain the short-circuit behavior?
And the requirement for "allow-filtering" on a secondly indexed column?

If they're not bugs but intended they should be documented better, at least 
their limitations.

  was:
After watching Jonathan's 2014 summit video, I wanted to give collection 
indexes a try as they seem to be a fit for a "search by key/values" usage 
pattern we have in our setup. Doing some test queries that I expect users would 
do against the table, a short-circuit behavior came up:

Here's the whole transcript:cqlsh:
create table by_sets (id int PRIMARY KEY, datakeys set, datavars 
set);
CREATE INDEX by_sets_datakeys ON by_sets (datakeys);
CREATE INDEX by_sets_datavars ON by_sets (datavars);
insert into by_sets (id, datakeys, datavars) values (1, {'a'}, {'b'});
insert into by_sets (id, datakeys, datavars) values (2, {'c'}, {'d'});
insert into by_sets (id, datakeys, datavars) values (3, {'e'}, {'f'});
insert into by_sets (id, datakeys, datavars) values (4, {'a'}, {'z'});
select * from by_sets;


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  2 |{'c'} |{'d'}
  4 |{'a'} |{'z'}
  3 |{'e'} |{'f'}


We then tried this query which short-circuited:

select * from by_sets WHERE datakeys cONTAINS 'a' AND datakeys CONTAINS 'c';


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  4 |{'a'} |{'z'}

(2 rows)


Instead of receveing 3 rows, which match the datakeys CONTAINS 'a' AND datakeys 
CONTAINS 'c' we only got the first.

Doing the same, but with CONTAINS 'c' first, ignores the second AND.

#> select * from by_sets WHERE datakeys cONTAINS 'c' AND datakeys CONTAINS 'a' ;


 id | datakeys | datavars
+--+--
  2 |{'c'} |{'d'}

(1 rows)


Also, on a side-note, I have two indexes on both datakeys and datavars. But 
when trying to run a query such as:

#> select * from by_sets WHERE datakeys CONTAINS 'a' AND datavars CONTAINS 'z';
code=2200 [Invalid query] message="Cannot execute this query as it might 
involve data filtering and thus may have unpredictable performance. If you want 
to execute this query despite the performance unpredictability, use ALLOW 
FILTERING"

The second column, after AND (even if I inverse the order) requires an "allow 
filtering" clause yet the column is indexed an an in-memory "join" of the 

[jira] [Commented] (CASSANDRA-7623) Altering keyspace truncates DESCRIBE output until you reconnect.

2014-10-16 Thread Tyler Hobbs (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174294#comment-14174294
 ] 

Tyler Hobbs commented on CASSANDRA-7623:


[PYTHON-173|https://datastax-oss.atlassian.net/browse/PYTHON-173] is the cause. 
 I'm guessing this is not related to CASSANDRA-8012.

> Altering keyspace truncates DESCRIBE output until you reconnect.
> 
>
> Key: CASSANDRA-7623
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7623
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Ryan McGuire
>Assignee: Tyler Hobbs
>Priority: Minor
>  Labels: cqlsh
> Fix For: 2.1.2
>
>
> Run DESCRIBE on a keyspace:
> {code}
> cqlsh> DESCRIBE KEYSPACE system_traces ;
> CREATE KEYSPACE system_traces WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '2'}  AND durable_writes = true;
> CREATE TABLE system_traces.events (
> session_id uuid,
> event_id timeuuid,
> activity text,
> source inet,
> source_elapsed int,
> thread text,
> PRIMARY KEY (session_id, event_id)
> ) WITH CLUSTERING ORDER BY (event_id ASC)
> AND bloom_filter_fp_chance = 0.01
> AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
> AND comment = ''
> AND compaction = {'min_threshold': '4', 'class': 
> 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 
> 'max_threshold': '32'}
> AND compression = {'sstable_compression': 
> 'org.apache.cassandra.io.compress.LZ4Compressor'}
> AND dclocal_read_repair_chance = 0.0
> AND default_time_to_live = 0
> AND gc_grace_seconds = 0
> AND max_index_interval = 2048
> AND memtable_flush_period_in_ms = 360
> AND min_index_interval = 128
> AND read_repair_chance = 0.0
> AND speculative_retry = '99.0PERCENTILE';
> CREATE TABLE system_traces.sessions (
> session_id uuid PRIMARY KEY,
> coordinator inet,
> duration int,
> parameters map,
> request text,
> started_at timestamp
> ) WITH bloom_filter_fp_chance = 0.01
> AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
> AND comment = 'traced sessions'
> AND compaction = {'min_threshold': '4', 'class': 
> 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 
> 'max_threshold': '32'}
> AND compression = {'sstable_compression': 
> 'org.apache.cassandra.io.compress.LZ4Compressor'}
> AND dclocal_read_repair_chance = 0.0
> AND default_time_to_live = 0
> AND gc_grace_seconds = 0
> AND max_index_interval = 2048
> AND memtable_flush_period_in_ms = 360
> AND min_index_interval = 128
> AND read_repair_chance = 0.0
> AND speculative_retry = '99.0PERCENTILE';
> {code}
> Alter it and run DESCRIBE again: 
> {code}
> cqlsh> ALTER KEYSPACE system_traces WITH durable_writes = false;
> cqlsh> DESCRIBE KEYSPACE system_traces ;
> CREATE KEYSPACE system_traces WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '2'}  AND durable_writes = false;
> {code}
> You can issue the DESCRIBE command multiple times and get the same output. 
> You have to disconnect and reconnect to get the table definition output to 
> show again.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8131) Short-circuited query results from collection index query

2014-10-16 Thread Catalin Alexandru Zamfir (JIRA)

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

Catalin Alexandru Zamfir updated CASSANDRA-8131:

Description: 
After watching Jonathan's 2014 summit video, I wanted to give collection 
indexes a try as they seem to be a fit for a "search by key/values" usage 
pattern we have in our setup. Doing some test queries that I expect users would 
do against the table, a short-circuit behavior came up:

Here's the whole transcript:cqlsh:
create table by_sets (id int PRIMARY KEY, datakeys set, datavars 
set);
CREATE INDEX by_sets_datakeys ON by_sets (datakeys);
CREATE INDEX by_sets_datavars ON by_sets (datavars);
insert into by_sets (id, datakeys, datavars) values (1, {'a'}, {'b'});
insert into by_sets (id, datakeys, datavars) values (2, {'c'}, {'d'});
insert into by_sets (id, datakeys, datavars) values (3, {'e'}, {'f'});
insert into by_sets (id, datakeys, datavars) values (4, {'a'}, {'z'});
select * from by_sets;


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  2 |{'c'} |{'d'}
  4 |{'a'} |{'z'}
  3 |{'e'} |{'f'}


We then tried this query which short-circuited:

select * from by_sets WHERE datakeys cONTAINS 'a' AND datakeys CONTAINS 'c';


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  4 |{'a'} |{'z'}

(2 rows)


Instead of receveing 3 rows, which match the datakeys CONTAINS 'a' AND datakeys 
CONTAINS 'c' we only got the first.

Doing the same, but with CONTAINS 'c' first, ignores the second AND.

#> select * from by_sets WHERE datakeys cONTAINS 'c' AND datakeys CONTAINS 'a' ;


 id | datakeys | datavars
+--+--
  2 |{'c'} |{'d'}

(1 rows)


Also, on a side-note, I have two indexes on both datakeys and datavars. But 
when trying to run a query such as:

#> select * from by_sets WHERE datakeys CONTAINS 'a' AND datavars CONTAINS 'z';
code=2200 [Invalid query] message="Cannot execute this query as it might 
involve data filtering and thus may have unpredictable performance. If you want 
to execute this query despite the performance unpredictability, use ALLOW 
FILTERING"

The second column, after AND (even if I inverse the order) requires an "allow 
filtering" clause yet the column is indexed an an in-memory "join" of the 
primary keys of these sets on the coordinator could build up the result.

Could anyone explain the short-circuit behavior?
And the requirement for "allow-filtering" on a secondly indexed column?

If they're not bugs but intended they should be documented better, at least 
their limitations.

  was:
After watching Jonathan's 2014 summit video, I wanted to give collection 
indexes a try as they seem to be a fit for a "search by key/values" usage 
pattern we have in our setup. Doing some test queries that I expect users would 
do against the table, a short-circuit behavior came up:

Here's the whole transcript:cqlsh:
create table by_sets (id int PRIMARY KEY, datakeys set, datavars 
set);
CREATE INDEX by_sets_datakeys ON by_sets (datakeys);
CREATE INDEX by_sets_datavars ON by_sets (datavars);
insert into by_sets (id, datakeys, datavars) values (1, {'a'}, {'b'});
insert into by_sets (id, datakeys, datavars) values (2, {'c'}, {'d'});
insert into by_sets (id, datakeys, datavars) values (3, {'e'}, {'f'});
insert into by_sets (id, datakeys, datavars) values (4, {'a'}, {'z'});
select * from by_sets;


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  2 |{'c'} |{'d'}
  4 |{'a'} |{'z'}
  3 |{'e'} |{'f'}


We then tried this query which short-circuited:

select * from by_sets WHERE datakeys cONTAINS 'a' AND datakeys CONTAINS 'c';


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  4 |{'a'} |{'z'}

(2 rows)


Instead of receveing 3 rows, which match the datakeys CONTAINS 'a' AND datakeys 
CONTAINS 'c' we only got the first.

Doing the same, but with CONTAINS 'c' first, ignores the second AND.

#> select * from by_sets WHERE datakeys cONTAINS 'c' AND datakeys CONTAINS 'a' ;


 id | datakeys | datavars
+--+--
  2 |{'c'} |{'d'}

(1 rows)


Also, on a side-note, I have two indexes on both datakeys and datavars. But 
when trying to run a query such as:

cqlsh:etsv2> select * from by_sets WHERE datakeys cONTAINS 'a' AND datavars 
CONTAINS 'z';
code=2200 [Invalid query] message="Cannot execute this query as it might 
involve data filtering and thus may have unpredictable performance. If you want 
to execute this query despite the performance unpredictability, use ALLOW 
FILTERING"

The second column, after AND (even if I inverse the order) requires an "allow 
filtering" clause yet the column is indexed an an in-memory "join" of the 
primary keys of these sets on the co-ordonator could build up 

[jira] [Created] (CASSANDRA-8131) Short-circuited query results from collection index query

2014-10-16 Thread Catalin Alexandru Zamfir (JIRA)
Catalin Alexandru Zamfir created CASSANDRA-8131:
---

 Summary: Short-circuited query results from collection index query
 Key: CASSANDRA-8131
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8131
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: Debian Wheezy, Oracle JDK, Cassandra 2.1
Reporter: Catalin Alexandru Zamfir
 Fix For: 2.1.0


After watching Jonathan's 2014 summit video, I wanted to give collection 
indexes a try as they seem to be a fit for a "search by key/values" usage 
pattern we have in our setup. Doing some test queries that I expect users would 
do against the table, a short-circuit behavior came up:

Here's the whole transcript:cqlsh:
create table by_sets (id int PRIMARY KEY, datakeys set, datavars 
set);
CREATE INDEX by_sets_datakeys ON by_sets (datakeys);
CREATE INDEX by_sets_datavars ON by_sets (datavars);
insert into by_sets (id, datakeys, datavars) values (1, {'a'}, {'b'});
insert into by_sets (id, datakeys, datavars) values (2, {'c'}, {'d'});
insert into by_sets (id, datakeys, datavars) values (3, {'e'}, {'f'});
insert into by_sets (id, datakeys, datavars) values (4, {'a'}, {'z'});
select * from by_sets;


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  2 |{'c'} |{'d'}
  4 |{'a'} |{'z'}
  3 |{'e'} |{'f'}


We then tried this query which short-circuited:

select * from by_sets WHERE datakeys cONTAINS 'a' AND datakeys CONTAINS 'c';


 id | datakeys | datavars
+--+--
  1 |{'a'} |{'b'}
  4 |{'a'} |{'z'}

(2 rows)


Instead of receveing 3 rows, which match the datakeys CONTAINS 'a' AND datakeys 
CONTAINS 'c' we only got the first.

Doing the same, but with CONTAINS 'c' first, ignores the second AND.

#> select * from by_sets WHERE datakeys cONTAINS 'c' AND datakeys CONTAINS 'a' ;


 id | datakeys | datavars
+--+--
  2 |{'c'} |{'d'}

(1 rows)


Also, on a side-note, I have two indexes on both datakeys and datavars. But 
when trying to run a query such as:

cqlsh:etsv2> select * from by_sets WHERE datakeys cONTAINS 'a' AND datavars 
CONTAINS 'z';
code=2200 [Invalid query] message="Cannot execute this query as it might 
involve data filtering and thus may have unpredictable performance. If you want 
to execute this query despite the performance unpredictability, use ALLOW 
FILTERING"

The second column, after AND (even if I inverse the order) requires an "allow 
filtering" clause yet the column is indexed an an in-memory "join" of the 
primary keys of these sets on the co-ordonator could build up the result.

Could anyone explain the short-circuit behavior?
And the requirement for "allow-filtering" on a secondly indexed column?

If they're not bugs but intended they should be documented better, at least 
their limitations.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (CASSANDRA-7712) temporary files need to be cleaned by unit tests

2014-10-16 Thread Michael Shuler (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174262#comment-14174262
 ] 

Michael Shuler edited comment on CASSANDRA-7712 at 10/16/14 9:27 PM:
-

cassandra-2.0 ant test = BUILD SUCCESSFUL - I do still have a good number of 
unit test related /tmp/ data dirs and files:

{noformat}
mshuler@hana:~$ diff utest-prerun-tmp-ls.txt utest-postrun-tmp-ls.txt | grep '>'
> total 13124
> drwxrwxrwt 43 rootroot1089536 Oct 16 16:25 .
> drwxr-xr-x  2 mshuler mshuler4096 Oct 16 15:59 1413493171580-0
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 15:59 1413493171699-0
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 15:59 1413493193793-0
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace11151002594308015529Counter1
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace11599882418925729405Standard1
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:04 
> Keyspace11629141255351575538Counter1
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace11707160731940439205Standard1
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace12479573729045096761Counter1
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace13188027533114189105Standard1
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace13537085006164740065Super4
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace13552747847152420085Standard1
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace13765397797228357038Standard1
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace13850859261864741561ValuesWithQuotes
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace13958837569092782804Standard1
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace14244544246771294094Super4
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:04 
> Keyspace14896282513423138739Counter1
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace16033616767223568836Standard1
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace17379306356946300363Standard1
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:04 
> Keyspace17392859057498785197Counter1
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace17734442112141636779UUIDKeys
> drwxr-xr-x  3 mshuler mshuler4096 Oct 16 16:05 
> Keyspace18327561120308012372Standard1
> drwxr-xr-x  2 mshuler mshuler4096 Oct 16 16:06 hsperfdata_mshuler
> -rw-r--r--  1 mshuler mshuler  97 Oct 16 16:05 
> CFWithColumnNameEqualToDefaultKeyAlias1352052296559090082.json
> -rw-r--r--  1 mshuler mshuler 202 Oct 16 16:05 
> CFWithDeletionInfo6821352692246723039.json
> -rw-r--r--  1 mshuler mshuler 164 Oct 16 16:05 
> Counter16133384777473446457.json
> -rw-r--r--  1 mshuler mshuler  73 Oct 16 16:05 
> Standard13497963750024141166.json
> -rw-r--r--  1 mshuler mshuler 212 Oct 16 16:05 
> Standard16498036137584406114.json
> -rw-r--r--  1 mshuler mshuler  18 Oct 16 16:05 
> Standard17653206436081170668.txt
> -rw-r--r--  1 mshuler mshuler  72 Oct 16 16:05 
> ValuesWithQuotes5950169076917583577.json
> -rw-r--r--  1 mshuler mshuler   0 Oct 16 16:04 
> cassandra3334695142197245525unittest
> -rw-r--r--  1 mshuler mshuler   0 Oct 16 16:04 
> cassandra501609141610521005unittest
> -rw-r--r--  1 mshuler mshuler   0 Oct 16 16:04 
> cassandra5466512109259350063unittest
> -rw-r--r--  1 mshuler mshuler   0 Oct 16 16:04 
> cassandra6680141275408996567unittest
> -rw-r--r--  1 mshuler mshuler   0 Oct 16 16:04 
> cassandra8802165868016413651unittest
> -rw-r--r--  1 mshuler mshuler2038 Oct 16 16:04 
> ks-cf-ib-1-CompressionInfo.db
> -rw-r--r--  1 mshuler mshuler7388 Oct 16 16:04 ks-cf-ib-1-Data.db
> -rw-r--r--  1 mshuler mshuler  163840 Oct 16 16:00 
> lengthtest2172098199453929105bin
> -rw-r--r--  1 mshuler mshuler   65536 Oct 16 16:00 
> readtest5611485117038557908bin
> -rw-r--r--  1 mshuler mshuler   0 Oct 16 16:00 
> set_length_during_read_mode615047735510069936bin
> -rw-r--r--  1 mshuler mshuler   0 Oct 16 16:00 
> set_negative_length7812195015686662874bin
> -rwxr-xr-x  1 mshuler mshuler   48432 Oct 16 15:48 
> snappy-1.0.5-libsnappyjava.so
{noformat}


was (Author: mshuler):
cassandra-2.0 ant test = BUILD SUCCESSFUL

lgtm!

> temporary files need to be cleaned by unit tests
> 
>
> Key: CASSANDRA-7712
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7712
> Project: Cassandra
>  Issue Type: Test
>  Components: Tests
>Reporter: Michael Shuler
>Priority: Minor
>  Labels: bootcamp, lhf
> Fix For: 2.0.11
>
> Attachments: 7712-hung-CliTest_system.log.gz, 7712-v2.txt, 
> 7712-v3.txt, CASSANDRA-7712_apache_cassandra_2.0.txt
>
>
> There ar

[jira] [Updated] (CASSANDRA-8109) Avoid constant boxing in ColumnStats.{Min/Max}Tracker

2014-10-16 Thread Rajanarayanan Thottuvaikkatumana (JIRA)

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

Rajanarayanan Thottuvaikkatumana updated CASSANDRA-8109:

Attachment: cassandra-trunk-8109.txt

Please find attached the patch for CASSANDRA-8109 on the trunk

> Avoid constant boxing in ColumnStats.{Min/Max}Tracker
> -
>
> Key: CASSANDRA-8109
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8109
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Sylvain Lebresne
>Assignee: Rajanarayanan Thottuvaikkatumana
>Priority: Minor
>  Labels: lhf
> Fix For: 3.0
>
> Attachments: cassandra-trunk-8109.txt
>
>
> We use the {{ColumnStats.MinTracker}} and {{ColumnStats.MaxTracker}} to track 
> timestamps and deletion times in sstable. Those classes are generics but we 
> really ever use them for longs and integers. The consequence is that every 
> call to their {{update}} method (called for every cell during sstable write) 
> box it's argument (since we don't store the cell timestamps and deletion time 
> boxed). That feels like a waste that is easy to fix: we could just make those 
> work on longs only for instance and convert back to int at the end when 
> that's what we need.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7712) temporary files need to be cleaned by unit tests

2014-10-16 Thread Michael Shuler (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174262#comment-14174262
 ] 

Michael Shuler commented on CASSANDRA-7712:
---

cassandra-2.0 ant test = BUILD SUCCESSFUL

lgtm!

> temporary files need to be cleaned by unit tests
> 
>
> Key: CASSANDRA-7712
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7712
> Project: Cassandra
>  Issue Type: Test
>  Components: Tests
>Reporter: Michael Shuler
>Priority: Minor
>  Labels: bootcamp, lhf
> Fix For: 2.0.11
>
> Attachments: 7712-hung-CliTest_system.log.gz, 7712-v2.txt, 
> 7712-v3.txt, CASSANDRA-7712_apache_cassandra_2.0.txt
>
>
> There are many unit test temporary files left behind after test runs. In the 
> case of CI servers, I have seen >70,000 files accumulate in /tmp over a 
> period of time. Each unit test should make an effort to remove its temporary 
> files when the test is completed.
> My current unit test cleanup block:
> {noformat}
> # clean up after unit tests..
> rm -rf  /tmp/140*-0 /tmp/CFWith* /tmp/Counter1* /tmp/DescriptorTest* 
> /tmp/Keyspace1* \
> /tmp/KeyStreamingTransferTestSpace* /tmp/SSTableExportTest* 
> /tmp/SSTableImportTest* \
> /tmp/Standard1* /tmp/Statistics.db* /tmp/StreamingTransferTest* 
> /tmp/ValuesWithQuotes* \
> /tmp/cassandra* /tmp/jna-* /tmp/ks-cf-ib-1-* /tmp/lengthtest* 
> /tmp/liblz4-java*.so /tmp/readtest* \
> /tmp/set_length_during_read_mode* /tmp/set_negative_length* 
> /tmp/snappy-*.so
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CASSANDRA-8130) upgrade tests should run upgradesstables less eagerly

2014-10-16 Thread Russ Hatch (JIRA)
Russ Hatch created CASSANDRA-8130:
-

 Summary: upgrade tests should run upgradesstables less eagerly
 Key: CASSANDRA-8130
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8130
 Project: Cassandra
  Issue Type: Test
Reporter: Russ Hatch


Currently the cassandra upgrade tests in cassandra-dtest are doing an upgrade 
then running upgradesstables soon after. We are missing some potential coverage 
with the current approach.

Instead of upgrading sstables "early", we should be waiting until absolutely 
necessary to run upgradesstables to test the guarantee that a version can read 
sstables from the previous version. This will give tests more time to interact 
with reading previous version sstables and hopefully increase chances of 
catching a bug.

Each version of cassandra should be able to read sstables from the previous 
version (so 2.1.x can read 2.0.x, but is not guaranteed to read 1.2.x), and 
therefore can work just fine reading and writing data. Writes of course will 
happen in the current sstable version, so old sstables may be supplanted by 
current ones over time (subject to write volume and compaction), potentially 
obviating the need for an sstable upgrade.

upgradesstables must be run before upgrading when the system could contain 
sstables from two versions back since read compatibility is not guaranteed (so 
we must run upgradesstables before upgrading to 2.1.x if there is a chance that 
sstables still exist from 1.2.x; because this is two versions back).

This is all a long-winded way of saying that we should keep track in the dtests 
if we are about to be 2 versions behind for an impending upgrade, and only run 
upgradesstables at that point.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7623) Altering keyspace truncates DESCRIBE output until you reconnect.

2014-10-16 Thread Philip Thompson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174248#comment-14174248
 ] 

Philip Thompson commented on CASSANDRA-7623:


Still happening on 2.1.1. Might be related to 8012.

> Altering keyspace truncates DESCRIBE output until you reconnect.
> 
>
> Key: CASSANDRA-7623
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7623
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Ryan McGuire
>Priority: Minor
>  Labels: cqlsh
> Fix For: 2.1.2
>
>
> Run DESCRIBE on a keyspace:
> {code}
> cqlsh> DESCRIBE KEYSPACE system_traces ;
> CREATE KEYSPACE system_traces WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '2'}  AND durable_writes = true;
> CREATE TABLE system_traces.events (
> session_id uuid,
> event_id timeuuid,
> activity text,
> source inet,
> source_elapsed int,
> thread text,
> PRIMARY KEY (session_id, event_id)
> ) WITH CLUSTERING ORDER BY (event_id ASC)
> AND bloom_filter_fp_chance = 0.01
> AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
> AND comment = ''
> AND compaction = {'min_threshold': '4', 'class': 
> 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 
> 'max_threshold': '32'}
> AND compression = {'sstable_compression': 
> 'org.apache.cassandra.io.compress.LZ4Compressor'}
> AND dclocal_read_repair_chance = 0.0
> AND default_time_to_live = 0
> AND gc_grace_seconds = 0
> AND max_index_interval = 2048
> AND memtable_flush_period_in_ms = 360
> AND min_index_interval = 128
> AND read_repair_chance = 0.0
> AND speculative_retry = '99.0PERCENTILE';
> CREATE TABLE system_traces.sessions (
> session_id uuid PRIMARY KEY,
> coordinator inet,
> duration int,
> parameters map,
> request text,
> started_at timestamp
> ) WITH bloom_filter_fp_chance = 0.01
> AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
> AND comment = 'traced sessions'
> AND compaction = {'min_threshold': '4', 'class': 
> 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 
> 'max_threshold': '32'}
> AND compression = {'sstable_compression': 
> 'org.apache.cassandra.io.compress.LZ4Compressor'}
> AND dclocal_read_repair_chance = 0.0
> AND default_time_to_live = 0
> AND gc_grace_seconds = 0
> AND max_index_interval = 2048
> AND memtable_flush_period_in_ms = 360
> AND min_index_interval = 128
> AND read_repair_chance = 0.0
> AND speculative_retry = '99.0PERCENTILE';
> {code}
> Alter it and run DESCRIBE again: 
> {code}
> cqlsh> ALTER KEYSPACE system_traces WITH durable_writes = false;
> cqlsh> DESCRIBE KEYSPACE system_traces ;
> CREATE KEYSPACE system_traces WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '2'}  AND durable_writes = false;
> {code}
> You can issue the DESCRIBE command multiple times and get the same output. 
> You have to disconnect and reconnect to get the table definition output to 
> show again.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7623) Altering keyspace truncates DESCRIBE output until you reconnect.

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-7623:
---
Assignee: Tyler Hobbs

> Altering keyspace truncates DESCRIBE output until you reconnect.
> 
>
> Key: CASSANDRA-7623
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7623
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Ryan McGuire
>Assignee: Tyler Hobbs
>Priority: Minor
>  Labels: cqlsh
> Fix For: 2.1.2
>
>
> Run DESCRIBE on a keyspace:
> {code}
> cqlsh> DESCRIBE KEYSPACE system_traces ;
> CREATE KEYSPACE system_traces WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '2'}  AND durable_writes = true;
> CREATE TABLE system_traces.events (
> session_id uuid,
> event_id timeuuid,
> activity text,
> source inet,
> source_elapsed int,
> thread text,
> PRIMARY KEY (session_id, event_id)
> ) WITH CLUSTERING ORDER BY (event_id ASC)
> AND bloom_filter_fp_chance = 0.01
> AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
> AND comment = ''
> AND compaction = {'min_threshold': '4', 'class': 
> 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 
> 'max_threshold': '32'}
> AND compression = {'sstable_compression': 
> 'org.apache.cassandra.io.compress.LZ4Compressor'}
> AND dclocal_read_repair_chance = 0.0
> AND default_time_to_live = 0
> AND gc_grace_seconds = 0
> AND max_index_interval = 2048
> AND memtable_flush_period_in_ms = 360
> AND min_index_interval = 128
> AND read_repair_chance = 0.0
> AND speculative_retry = '99.0PERCENTILE';
> CREATE TABLE system_traces.sessions (
> session_id uuid PRIMARY KEY,
> coordinator inet,
> duration int,
> parameters map,
> request text,
> started_at timestamp
> ) WITH bloom_filter_fp_chance = 0.01
> AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
> AND comment = 'traced sessions'
> AND compaction = {'min_threshold': '4', 'class': 
> 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 
> 'max_threshold': '32'}
> AND compression = {'sstable_compression': 
> 'org.apache.cassandra.io.compress.LZ4Compressor'}
> AND dclocal_read_repair_chance = 0.0
> AND default_time_to_live = 0
> AND gc_grace_seconds = 0
> AND max_index_interval = 2048
> AND memtable_flush_period_in_ms = 360
> AND min_index_interval = 128
> AND read_repair_chance = 0.0
> AND speculative_retry = '99.0PERCENTILE';
> {code}
> Alter it and run DESCRIBE again: 
> {code}
> cqlsh> ALTER KEYSPACE system_traces WITH durable_writes = false;
> cqlsh> DESCRIBE KEYSPACE system_traces ;
> CREATE KEYSPACE system_traces WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '2'}  AND durable_writes = false;
> {code}
> You can issue the DESCRIBE command multiple times and get the same output. 
> You have to disconnect and reconnect to get the table definition output to 
> show again.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7623) Altering keyspace truncates DESCRIBE output until you reconnect.

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-7623:
---
Labels: cqlsh  (was: )

> Altering keyspace truncates DESCRIBE output until you reconnect.
> 
>
> Key: CASSANDRA-7623
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7623
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Ryan McGuire
>Priority: Minor
>  Labels: cqlsh
> Fix For: 2.1.2
>
>
> Run DESCRIBE on a keyspace:
> {code}
> cqlsh> DESCRIBE KEYSPACE system_traces ;
> CREATE KEYSPACE system_traces WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '2'}  AND durable_writes = true;
> CREATE TABLE system_traces.events (
> session_id uuid,
> event_id timeuuid,
> activity text,
> source inet,
> source_elapsed int,
> thread text,
> PRIMARY KEY (session_id, event_id)
> ) WITH CLUSTERING ORDER BY (event_id ASC)
> AND bloom_filter_fp_chance = 0.01
> AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
> AND comment = ''
> AND compaction = {'min_threshold': '4', 'class': 
> 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 
> 'max_threshold': '32'}
> AND compression = {'sstable_compression': 
> 'org.apache.cassandra.io.compress.LZ4Compressor'}
> AND dclocal_read_repair_chance = 0.0
> AND default_time_to_live = 0
> AND gc_grace_seconds = 0
> AND max_index_interval = 2048
> AND memtable_flush_period_in_ms = 360
> AND min_index_interval = 128
> AND read_repair_chance = 0.0
> AND speculative_retry = '99.0PERCENTILE';
> CREATE TABLE system_traces.sessions (
> session_id uuid PRIMARY KEY,
> coordinator inet,
> duration int,
> parameters map,
> request text,
> started_at timestamp
> ) WITH bloom_filter_fp_chance = 0.01
> AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
> AND comment = 'traced sessions'
> AND compaction = {'min_threshold': '4', 'class': 
> 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 
> 'max_threshold': '32'}
> AND compression = {'sstable_compression': 
> 'org.apache.cassandra.io.compress.LZ4Compressor'}
> AND dclocal_read_repair_chance = 0.0
> AND default_time_to_live = 0
> AND gc_grace_seconds = 0
> AND max_index_interval = 2048
> AND memtable_flush_period_in_ms = 360
> AND min_index_interval = 128
> AND read_repair_chance = 0.0
> AND speculative_retry = '99.0PERCENTILE';
> {code}
> Alter it and run DESCRIBE again: 
> {code}
> cqlsh> ALTER KEYSPACE system_traces WITH durable_writes = false;
> cqlsh> DESCRIBE KEYSPACE system_traces ;
> CREATE KEYSPACE system_traces WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '2'}  AND durable_writes = false;
> {code}
> You can issue the DESCRIBE command multiple times and get the same output. 
> You have to disconnect and reconnect to get the table definition output to 
> show again.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8109) Avoid constant boxing in ColumnStats.{Min/Max}Tracker

2014-10-16 Thread Tyler Hobbs (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174235#comment-14174235
 ] 

Tyler Hobbs commented on CASSANDRA-8109:


[~rnamboodiri] trunk isn't completely stable yet, so some test failures are 
expected.  In the case of this ticket, the compiler should be able to guarantee 
the safety of the changes, so go ahead and attach your patch.

> Avoid constant boxing in ColumnStats.{Min/Max}Tracker
> -
>
> Key: CASSANDRA-8109
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8109
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Sylvain Lebresne
>Assignee: Rajanarayanan Thottuvaikkatumana
>Priority: Minor
>  Labels: lhf
> Fix For: 3.0
>
>
> We use the {{ColumnStats.MinTracker}} and {{ColumnStats.MaxTracker}} to track 
> timestamps and deletion times in sstable. Those classes are generics but we 
> really ever use them for longs and integers. The consequence is that every 
> call to their {{update}} method (called for every cell during sstable write) 
> box it's argument (since we don't store the cell timestamps and deletion time 
> boxed). That feels like a waste that is easy to fix: we could just make those 
> work on longs only for instance and convert back to int at the end when 
> that's what we need.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-6430) DELETE with IF = clause doesn't work properly if more then one row are going to be deleted

2014-10-16 Thread Tyler Hobbs (JIRA)

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

Tyler Hobbs updated CASSANDRA-6430:
---
Attachment: 6430-2.0.txt

6430-2.0.txt validates that all PK columns are restricted when performing 
conditional deletes.  I've also pushed a 
[dtest|https://github.com/thobbs/cassandra-dtest/tree/CASSANDRA-6430] that 
covers this.

> DELETE with IF = clause doesn't work properly if more then one 
> row are going to be deleted
> 
>
> Key: CASSANDRA-6430
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6430
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Dmitriy Ukhlov
>Assignee: Tyler Hobbs
> Fix For: 2.0.11
>
> Attachments: 6430-2.0.txt
>
>
> CREATE TABLE test(key int, sub_key int, value text, PRIMARY KEY(key, sub_key) 
> );
> INSERT INTO test(key, sub_key, value) VALUES(1,1, '1.1');
> INSERT INTO test(key, sub_key, value) VALUES(1,2, '1.2');
> INSERT INTO test(key, sub_key, value) VALUES(1,3, '1.3');
> SELECT * from test;
>  key | sub_key | value
> -+-+---
>1 |   1 |   1.1
>1 |   2 |   1.2
>1 |   3 |   1.3
> DELETE FROM test WHERE key=1 IF value='1.2';
>  [applied]
> ---
>  False <=== I guess second row should be removed
> SELECT * from test;
>  key | sub_key | value
> -+-+---
>1 |   1 |   1.1
>1 |   2 |   1.2
>1 |   3 |   1.3
> (3 rows) 
> DELETE FROM test WHERE key=1;
> SELECT * from test;
> (0 rows)  <=== all rows were removed: OK



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7712) temporary files need to be cleaned by unit tests

2014-10-16 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-7712:

Attachment: 7712-v3.txt

v3 passes CliTest, though I had to remove the @AfterClass on cleanup, but I 
still don't see anything piling up in my tmp dir.

> temporary files need to be cleaned by unit tests
> 
>
> Key: CASSANDRA-7712
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7712
> Project: Cassandra
>  Issue Type: Test
>  Components: Tests
>Reporter: Michael Shuler
>Priority: Minor
>  Labels: bootcamp, lhf
> Fix For: 2.0.11
>
> Attachments: 7712-hung-CliTest_system.log.gz, 7712-v2.txt, 
> 7712-v3.txt, CASSANDRA-7712_apache_cassandra_2.0.txt
>
>
> There are many unit test temporary files left behind after test runs. In the 
> case of CI servers, I have seen >70,000 files accumulate in /tmp over a 
> period of time. Each unit test should make an effort to remove its temporary 
> files when the test is completed.
> My current unit test cleanup block:
> {noformat}
> # clean up after unit tests..
> rm -rf  /tmp/140*-0 /tmp/CFWith* /tmp/Counter1* /tmp/DescriptorTest* 
> /tmp/Keyspace1* \
> /tmp/KeyStreamingTransferTestSpace* /tmp/SSTableExportTest* 
> /tmp/SSTableImportTest* \
> /tmp/Standard1* /tmp/Statistics.db* /tmp/StreamingTransferTest* 
> /tmp/ValuesWithQuotes* \
> /tmp/cassandra* /tmp/jna-* /tmp/ks-cf-ib-1-* /tmp/lengthtest* 
> /tmp/liblz4-java*.so /tmp/readtest* \
> /tmp/set_length_during_read_mode* /tmp/set_negative_length* 
> /tmp/snappy-*.so
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7712) temporary files need to be cleaned by unit tests

2014-10-16 Thread Michael Shuler (JIRA)

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

Michael Shuler updated CASSANDRA-7712:
--
Attachment: 7712-hung-CliTest_system.log.gz

I didn't get terribly far due to CliTest hanging with this patch applied to 
cassandra-2.0 branch. It appears to go through the test, then "Announcing 
shutdown", then a bunch of java.io.FileNotFoundException for .db files in 
TestKeySpace and never completes shutting down. Same result on several 
different systems - debug system.log for just the CliTest attached.

> temporary files need to be cleaned by unit tests
> 
>
> Key: CASSANDRA-7712
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7712
> Project: Cassandra
>  Issue Type: Test
>  Components: Tests
>Reporter: Michael Shuler
>Priority: Minor
>  Labels: bootcamp, lhf
> Fix For: 2.0.11
>
> Attachments: 7712-hung-CliTest_system.log.gz, 7712-v2.txt, 
> CASSANDRA-7712_apache_cassandra_2.0.txt
>
>
> There are many unit test temporary files left behind after test runs. In the 
> case of CI servers, I have seen >70,000 files accumulate in /tmp over a 
> period of time. Each unit test should make an effort to remove its temporary 
> files when the test is completed.
> My current unit test cleanup block:
> {noformat}
> # clean up after unit tests..
> rm -rf  /tmp/140*-0 /tmp/CFWith* /tmp/Counter1* /tmp/DescriptorTest* 
> /tmp/Keyspace1* \
> /tmp/KeyStreamingTransferTestSpace* /tmp/SSTableExportTest* 
> /tmp/SSTableImportTest* \
> /tmp/Standard1* /tmp/Statistics.db* /tmp/StreamingTransferTest* 
> /tmp/ValuesWithQuotes* \
> /tmp/cassandra* /tmp/jna-* /tmp/ks-cf-ib-1-* /tmp/lengthtest* 
> /tmp/liblz4-java*.so /tmp/readtest* \
> /tmp/set_length_during_read_mode* /tmp/set_negative_length* 
> /tmp/snappy-*.so
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7579) File descriptor exhaustion can lead to unreliable state in exception condition

2014-10-16 Thread Joshua McKenzie (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174125#comment-14174125
 ] 

Joshua McKenzie commented on CASSANDRA-7579:


Depends on CASSANDRA-7927 - rebased 
[here|https://github.com/josh-mckenzie/cassandra/compare/7579].  We should wait 
on reviewing this until that stabilizies / gets committed.

> File descriptor exhaustion can lead to unreliable state in exception condition
> --
>
> Key: CASSANDRA-7579
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7579
> Project: Cassandra
>  Issue Type: New Feature
>Reporter: Joshua McKenzie
>Assignee: Joshua McKenzie
>Priority: Minor
> Fix For: 2.1.2
>
> Attachments: 7579_v1.txt
>
>
> If the JVM runs out of file descriptors we can get into an unreliable state 
> (similar to CASSANDRA-7507 on OOM) where we cannot trust our shutdown hook to 
> run successfully to completion.  We need to check IOExceptions and 
> appropriate Throwable to see if we have a FileNotFoundException w/message 
> "Too many files open" and forcefully shutdown the Daemon in these cases.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7927) Kill daemon on any disk error

2014-10-16 Thread Joshua McKenzie (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7927?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174120#comment-14174120
 ] 

Joshua McKenzie commented on CASSANDRA-7927:


Another updated pushed to branch 
[here|https://github.com/josh-mckenzie/cassandra/compare/7927];

While working on CASSANDRA-7579 I noticed that the _die unit test was failing 
on linux (for entirely different reasons than the Windows failure). Digging 
into it a bit shows that the unit test it was based on, 
testCommitFailurePolicy_stop(), didn't actually do what it was intended to do. 
StorageService isn't initialized by SchemaLoader so the assertions to check on 
_stop test always passed. Also, changing a directory to write-only doesn't 
change the contents to being write-only so flushes would keep working even if 
the StorageService had been started.

I've opened the interface on CommitLog.handleCommitError as public, marked it 
VisibleForTesting, and updated those 2 unit tests to check the logic 
specifically dealing with how our CommitLog system deals with throwables during 
stop and die policy settings.  Tests pass on both Windows and linux now.

> Kill daemon on any disk error
> -
>
> Key: CASSANDRA-7927
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7927
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Core
> Environment: aws, stock cassandra or dse
>Reporter: John Sumsion
>Assignee: John Sumsion
>  Labels: bootcamp, lhf
> Fix For: 2.1.1
>
> Attachments: 7927-v1-die.patch
>
>
> We got a disk read error on 1.2.13 that didn't trigger the disk failure 
> policy, and I'm trying to hunt down why, but in doing so, I saw that there is 
> no disk_failure_policy option for just killing the daemon.
> If we ever get a corrupt sstable, we want to replace the node anyway, because 
> some aws instance store disks just go bad.
> I want to use the JVMStabilityInspector from CASSANDRA-7507 to kill so that 
> remains standard, so I will base my patch on CASSANDRA-7507.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7966) 1.2.18 -> 2.0.10 upgrade compactions_in_progress: java.lang.IllegalArgumentException

2014-10-16 Thread Karl Mueller (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174121#comment-14174121
 ] 

Karl Mueller commented on CASSANDRA-7966:
-

OK thanks - let me know if there's more info needed :)

> 1.2.18 -> 2.0.10 upgrade compactions_in_progress: 
> java.lang.IllegalArgumentException
> 
>
> Key: CASSANDRA-7966
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7966
> Project: Cassandra
>  Issue Type: Bug
> Environment: JDK 1.7
>Reporter: Karl Mueller
>Assignee: Marcus Eriksson
>Priority: Minor
>
> This happened on a new node when starting 2.0.10 after 1.2.18 with complete 
> upgradesstables run:
> {noformat}
>  INFO 15:31:11,532 Enqueuing flush of 
> Memtable-compactions_in_progress@1366724594(0/0 serialized/live bytes, 1 ops)
>  INFO 15:31:11,532 Writing Memtable-compactions_in_progress@1366724594(0/0 
> serialized/live bytes, 1 ops)
>  INFO 15:31:11,547 Completed flushing 
> /data2/data-cassandra/system/compactions_in_progress/system-compactions_in_progress-jb-10-Data.db
>  (42 bytes) for commitlog position ReplayPosition(segmentId=1410993002452, 
> position=164409)
> ERROR 15:31:11,550 Exception in thread Thread[CompactionExecutor:36,1,main]
> java.lang.IllegalArgumentException
> at java.nio.Buffer.limit(Buffer.java:267)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytes(ByteBufferUtil.java:587)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytesWithShortLength(ByteBufferUtil.java:596)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:61)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:36)
> at 
> org.apache.cassandra.db.ArrayBackedSortedColumns.addColumn(ArrayBackedSortedColumns.java:112)
> at 
> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:116)
> at org.apache.cassandra.db.ColumnFamily.addAtom(ColumnFamily.java:150)
> at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:186)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:98)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.(PrecompactedRow.java:85)
> at 
> org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:196)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:74)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:55)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:115)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:98)
> at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
> at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:143)
> at 
> org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
> at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60)
> at 
> org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
> at 
> org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:198)
> at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CASSANDRA-8129) Increase max heap for sstablesplit

2014-10-16 Thread Matt Stump (JIRA)
Matt Stump created CASSANDRA-8129:
-

 Summary: Increase max heap for sstablesplit
 Key: CASSANDRA-8129
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8129
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Matt Stump
Priority: Minor


The max heap for sstablesplit is 256m. For large files that's too small and it 
will OOM. We should increase the max heap to something like 2-4G with the 
understanding that sstablesplit will only most likely be invoked to split large 
files.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7966) 1.2.18 -> 2.0.10 upgrade compactions_in_progress: java.lang.IllegalArgumentException

2014-10-16 Thread Philip Thompson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174055#comment-14174055
 ] 

Philip Thompson commented on CASSANDRA-7966:


[~kmueller] I have been informed I am in fact wrong and this is totally 
unnecessary.

> 1.2.18 -> 2.0.10 upgrade compactions_in_progress: 
> java.lang.IllegalArgumentException
> 
>
> Key: CASSANDRA-7966
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7966
> Project: Cassandra
>  Issue Type: Bug
> Environment: JDK 1.7
>Reporter: Karl Mueller
>Assignee: Marcus Eriksson
>Priority: Minor
>
> This happened on a new node when starting 2.0.10 after 1.2.18 with complete 
> upgradesstables run:
> {noformat}
>  INFO 15:31:11,532 Enqueuing flush of 
> Memtable-compactions_in_progress@1366724594(0/0 serialized/live bytes, 1 ops)
>  INFO 15:31:11,532 Writing Memtable-compactions_in_progress@1366724594(0/0 
> serialized/live bytes, 1 ops)
>  INFO 15:31:11,547 Completed flushing 
> /data2/data-cassandra/system/compactions_in_progress/system-compactions_in_progress-jb-10-Data.db
>  (42 bytes) for commitlog position ReplayPosition(segmentId=1410993002452, 
> position=164409)
> ERROR 15:31:11,550 Exception in thread Thread[CompactionExecutor:36,1,main]
> java.lang.IllegalArgumentException
> at java.nio.Buffer.limit(Buffer.java:267)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytes(ByteBufferUtil.java:587)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytesWithShortLength(ByteBufferUtil.java:596)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:61)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:36)
> at 
> org.apache.cassandra.db.ArrayBackedSortedColumns.addColumn(ArrayBackedSortedColumns.java:112)
> at 
> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:116)
> at org.apache.cassandra.db.ColumnFamily.addAtom(ColumnFamily.java:150)
> at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:186)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:98)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.(PrecompactedRow.java:85)
> at 
> org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:196)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:74)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:55)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:115)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:98)
> at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
> at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:143)
> at 
> org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
> at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60)
> at 
> org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
> at 
> org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:198)
> at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7966) 1.2.18 -> 2.0.10 upgrade compactions_in_progress: java.lang.IllegalArgumentException

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-7966:
---
Assignee: Marcus Eriksson

> 1.2.18 -> 2.0.10 upgrade compactions_in_progress: 
> java.lang.IllegalArgumentException
> 
>
> Key: CASSANDRA-7966
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7966
> Project: Cassandra
>  Issue Type: Bug
> Environment: JDK 1.7
>Reporter: Karl Mueller
>Assignee: Marcus Eriksson
>Priority: Minor
>
> This happened on a new node when starting 2.0.10 after 1.2.18 with complete 
> upgradesstables run:
> {noformat}
>  INFO 15:31:11,532 Enqueuing flush of 
> Memtable-compactions_in_progress@1366724594(0/0 serialized/live bytes, 1 ops)
>  INFO 15:31:11,532 Writing Memtable-compactions_in_progress@1366724594(0/0 
> serialized/live bytes, 1 ops)
>  INFO 15:31:11,547 Completed flushing 
> /data2/data-cassandra/system/compactions_in_progress/system-compactions_in_progress-jb-10-Data.db
>  (42 bytes) for commitlog position ReplayPosition(segmentId=1410993002452, 
> position=164409)
> ERROR 15:31:11,550 Exception in thread Thread[CompactionExecutor:36,1,main]
> java.lang.IllegalArgumentException
> at java.nio.Buffer.limit(Buffer.java:267)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytes(ByteBufferUtil.java:587)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytesWithShortLength(ByteBufferUtil.java:596)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:61)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:36)
> at 
> org.apache.cassandra.db.ArrayBackedSortedColumns.addColumn(ArrayBackedSortedColumns.java:112)
> at 
> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:116)
> at org.apache.cassandra.db.ColumnFamily.addAtom(ColumnFamily.java:150)
> at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:186)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:98)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.(PrecompactedRow.java:85)
> at 
> org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:196)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:74)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:55)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:115)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:98)
> at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
> at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:143)
> at 
> org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
> at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60)
> at 
> org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
> at 
> org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:198)
> at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7966) 1.2.18 -> 2.0.10 upgrade compactions_in_progress: java.lang.IllegalArgumentException

2014-10-16 Thread Philip Thompson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174047#comment-14174047
 ] 

Philip Thompson commented on CASSANDRA-7966:


I don't believe it is required, but it may help with your problem. Regardless 
I'm going to assign someone to look at this.

> 1.2.18 -> 2.0.10 upgrade compactions_in_progress: 
> java.lang.IllegalArgumentException
> 
>
> Key: CASSANDRA-7966
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7966
> Project: Cassandra
>  Issue Type: Bug
> Environment: JDK 1.7
>Reporter: Karl Mueller
>Priority: Minor
>
> This happened on a new node when starting 2.0.10 after 1.2.18 with complete 
> upgradesstables run:
> {noformat}
>  INFO 15:31:11,532 Enqueuing flush of 
> Memtable-compactions_in_progress@1366724594(0/0 serialized/live bytes, 1 ops)
>  INFO 15:31:11,532 Writing Memtable-compactions_in_progress@1366724594(0/0 
> serialized/live bytes, 1 ops)
>  INFO 15:31:11,547 Completed flushing 
> /data2/data-cassandra/system/compactions_in_progress/system-compactions_in_progress-jb-10-Data.db
>  (42 bytes) for commitlog position ReplayPosition(segmentId=1410993002452, 
> position=164409)
> ERROR 15:31:11,550 Exception in thread Thread[CompactionExecutor:36,1,main]
> java.lang.IllegalArgumentException
> at java.nio.Buffer.limit(Buffer.java:267)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytes(ByteBufferUtil.java:587)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytesWithShortLength(ByteBufferUtil.java:596)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:61)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:36)
> at 
> org.apache.cassandra.db.ArrayBackedSortedColumns.addColumn(ArrayBackedSortedColumns.java:112)
> at 
> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:116)
> at org.apache.cassandra.db.ColumnFamily.addAtom(ColumnFamily.java:150)
> at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:186)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:98)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.(PrecompactedRow.java:85)
> at 
> org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:196)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:74)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:55)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:115)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:98)
> at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
> at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:143)
> at 
> org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
> at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60)
> at 
> org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
> at 
> org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:198)
> at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7966) 1.2.18 -> 2.0.10 upgrade compactions_in_progress: java.lang.IllegalArgumentException

2014-10-16 Thread Karl Mueller (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174044#comment-14174044
 ] 

Karl Mueller commented on CASSANDRA-7966:
-

No, I haven't done it. I wasn't aware running upgradesstables *after* an 
upgrade was standard practice :)

> 1.2.18 -> 2.0.10 upgrade compactions_in_progress: 
> java.lang.IllegalArgumentException
> 
>
> Key: CASSANDRA-7966
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7966
> Project: Cassandra
>  Issue Type: Bug
> Environment: JDK 1.7
>Reporter: Karl Mueller
>Priority: Minor
>
> This happened on a new node when starting 2.0.10 after 1.2.18 with complete 
> upgradesstables run:
> {noformat}
>  INFO 15:31:11,532 Enqueuing flush of 
> Memtable-compactions_in_progress@1366724594(0/0 serialized/live bytes, 1 ops)
>  INFO 15:31:11,532 Writing Memtable-compactions_in_progress@1366724594(0/0 
> serialized/live bytes, 1 ops)
>  INFO 15:31:11,547 Completed flushing 
> /data2/data-cassandra/system/compactions_in_progress/system-compactions_in_progress-jb-10-Data.db
>  (42 bytes) for commitlog position ReplayPosition(segmentId=1410993002452, 
> position=164409)
> ERROR 15:31:11,550 Exception in thread Thread[CompactionExecutor:36,1,main]
> java.lang.IllegalArgumentException
> at java.nio.Buffer.limit(Buffer.java:267)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytes(ByteBufferUtil.java:587)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytesWithShortLength(ByteBufferUtil.java:596)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:61)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:36)
> at 
> org.apache.cassandra.db.ArrayBackedSortedColumns.addColumn(ArrayBackedSortedColumns.java:112)
> at 
> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:116)
> at org.apache.cassandra.db.ColumnFamily.addAtom(ColumnFamily.java:150)
> at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:186)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:98)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.(PrecompactedRow.java:85)
> at 
> org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:196)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:74)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:55)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:115)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:98)
> at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
> at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:143)
> at 
> org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
> at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60)
> at 
> org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
> at 
> org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:198)
> at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8058) local consistency level during boostrap (may cause a write timeout on each write request)

2014-10-16 Thread Nicolas DOUILLET (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8058?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174043#comment-14174043
 ] 

Nicolas DOUILLET commented on CASSANDRA-8058:
-

Hey!

Thanks, I'm glad to contribute to this huge product!
Yes you're right, I mean, I did not dare change the visibility of those methods 
:)
 
About the first comment, concerning the {{assureSufficientLiveNodes}}, should I 
create a new issue ?



> local consistency level during boostrap (may cause a write timeout on each 
> write request)
> -
>
> Key: CASSANDRA-8058
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8058
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Reporter: Nicolas DOUILLET
>Assignee: Nicolas DOUILLET
> Fix For: 2.0.11, 2.1.1
>
> Attachments: 
> 0001-during-boostrap-block-only-for-local-pending-endpoin.patch.txt, 
> 0001-during-boostrap-block-only-for-local-pending-endpoint-v2.patch, 
> 0001-during-boostrap-block-only-for-local-pending-endpoints-v2-1.patch
>
>
> Hi, 
> During bootstrap, for {{LOCAL_QUORUM}} and {{LOCAL_ONE}} consistencies, the 
> {{DatacenterWriteResponseHandler}} were waiting for pending remote endpoints.
> I think that's a regression, because it seems that it has been correctly 
> implemented in CASSANDRA-833, but removed later.
> It was specifically annoying in the case of {{RF=2}} and {{cl=LOCAL_QUORUM}}, 
> because during a bootstrap of a remote node, all requests ended in 
> {{WriteTimeout}}, because they were waiting for a response that would never 
> happen.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7966) 1.2.18 -> 2.0.10 upgrade compactions_in_progress: java.lang.IllegalArgumentException

2014-10-16 Thread Philip Thompson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174039#comment-14174039
 ] 

Philip Thompson commented on CASSANDRA-7966:


Not before, but after the upgrade. It is unclear if you did that.

> 1.2.18 -> 2.0.10 upgrade compactions_in_progress: 
> java.lang.IllegalArgumentException
> 
>
> Key: CASSANDRA-7966
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7966
> Project: Cassandra
>  Issue Type: Bug
> Environment: JDK 1.7
>Reporter: Karl Mueller
>Priority: Minor
>
> This happened on a new node when starting 2.0.10 after 1.2.18 with complete 
> upgradesstables run:
> {noformat}
>  INFO 15:31:11,532 Enqueuing flush of 
> Memtable-compactions_in_progress@1366724594(0/0 serialized/live bytes, 1 ops)
>  INFO 15:31:11,532 Writing Memtable-compactions_in_progress@1366724594(0/0 
> serialized/live bytes, 1 ops)
>  INFO 15:31:11,547 Completed flushing 
> /data2/data-cassandra/system/compactions_in_progress/system-compactions_in_progress-jb-10-Data.db
>  (42 bytes) for commitlog position ReplayPosition(segmentId=1410993002452, 
> position=164409)
> ERROR 15:31:11,550 Exception in thread Thread[CompactionExecutor:36,1,main]
> java.lang.IllegalArgumentException
> at java.nio.Buffer.limit(Buffer.java:267)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytes(ByteBufferUtil.java:587)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytesWithShortLength(ByteBufferUtil.java:596)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:61)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:36)
> at 
> org.apache.cassandra.db.ArrayBackedSortedColumns.addColumn(ArrayBackedSortedColumns.java:112)
> at 
> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:116)
> at org.apache.cassandra.db.ColumnFamily.addAtom(ColumnFamily.java:150)
> at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:186)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:98)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.(PrecompactedRow.java:85)
> at 
> org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:196)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:74)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:55)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:115)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:98)
> at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
> at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:143)
> at 
> org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
> at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60)
> at 
> org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
> at 
> org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:198)
> at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7966) 1.2.18 -> 2.0.10 upgrade compactions_in_progress: java.lang.IllegalArgumentException

2014-10-16 Thread Karl Mueller (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174036#comment-14174036
 ] 

Karl Mueller commented on CASSANDRA-7966:
-

Yes, I run upgradesstable before every x.y upgrade

> 1.2.18 -> 2.0.10 upgrade compactions_in_progress: 
> java.lang.IllegalArgumentException
> 
>
> Key: CASSANDRA-7966
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7966
> Project: Cassandra
>  Issue Type: Bug
> Environment: JDK 1.7
>Reporter: Karl Mueller
>Priority: Minor
>
> This happened on a new node when starting 2.0.10 after 1.2.18 with complete 
> upgradesstables run:
> {noformat}
>  INFO 15:31:11,532 Enqueuing flush of 
> Memtable-compactions_in_progress@1366724594(0/0 serialized/live bytes, 1 ops)
>  INFO 15:31:11,532 Writing Memtable-compactions_in_progress@1366724594(0/0 
> serialized/live bytes, 1 ops)
>  INFO 15:31:11,547 Completed flushing 
> /data2/data-cassandra/system/compactions_in_progress/system-compactions_in_progress-jb-10-Data.db
>  (42 bytes) for commitlog position ReplayPosition(segmentId=1410993002452, 
> position=164409)
> ERROR 15:31:11,550 Exception in thread Thread[CompactionExecutor:36,1,main]
> java.lang.IllegalArgumentException
> at java.nio.Buffer.limit(Buffer.java:267)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytes(ByteBufferUtil.java:587)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytesWithShortLength(ByteBufferUtil.java:596)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:61)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:36)
> at 
> org.apache.cassandra.db.ArrayBackedSortedColumns.addColumn(ArrayBackedSortedColumns.java:112)
> at 
> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:116)
> at org.apache.cassandra.db.ColumnFamily.addAtom(ColumnFamily.java:150)
> at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:186)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:98)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.(PrecompactedRow.java:85)
> at 
> org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:196)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:74)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:55)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:115)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:98)
> at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
> at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:143)
> at 
> org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
> at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60)
> at 
> org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
> at 
> org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:198)
> at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7966) 1.2.18 -> 2.0.10 upgrade compactions_in_progress: java.lang.IllegalArgumentException

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-7966:
---
Reproduced In: 2.0.10

> 1.2.18 -> 2.0.10 upgrade compactions_in_progress: 
> java.lang.IllegalArgumentException
> 
>
> Key: CASSANDRA-7966
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7966
> Project: Cassandra
>  Issue Type: Bug
> Environment: JDK 1.7
>Reporter: Karl Mueller
>Priority: Minor
>
> This happened on a new node when starting 2.0.10 after 1.2.18 with complete 
> upgradesstables run:
> {noformat}
>  INFO 15:31:11,532 Enqueuing flush of 
> Memtable-compactions_in_progress@1366724594(0/0 serialized/live bytes, 1 ops)
>  INFO 15:31:11,532 Writing Memtable-compactions_in_progress@1366724594(0/0 
> serialized/live bytes, 1 ops)
>  INFO 15:31:11,547 Completed flushing 
> /data2/data-cassandra/system/compactions_in_progress/system-compactions_in_progress-jb-10-Data.db
>  (42 bytes) for commitlog position ReplayPosition(segmentId=1410993002452, 
> position=164409)
> ERROR 15:31:11,550 Exception in thread Thread[CompactionExecutor:36,1,main]
> java.lang.IllegalArgumentException
> at java.nio.Buffer.limit(Buffer.java:267)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytes(ByteBufferUtil.java:587)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytesWithShortLength(ByteBufferUtil.java:596)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:61)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:36)
> at 
> org.apache.cassandra.db.ArrayBackedSortedColumns.addColumn(ArrayBackedSortedColumns.java:112)
> at 
> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:116)
> at org.apache.cassandra.db.ColumnFamily.addAtom(ColumnFamily.java:150)
> at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:186)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:98)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.(PrecompactedRow.java:85)
> at 
> org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:196)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:74)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:55)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:115)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:98)
> at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
> at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:143)
> at 
> org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
> at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60)
> at 
> org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
> at 
> org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:198)
> at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8076) Expose an mbean method to poll for repair job status

2014-10-16 Thread Philip S Doctor (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8076?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174020#comment-14174020
 ] 

Philip S Doctor commented on CASSANDRA-8076:


Just trying to keep my eyes on the prize.  The current issue is this, if a 
notif is lost, and that notif is maybe a completion message, then we don't know 
the outcome of the repair and so we told the user to check c* logs for the 
outcome.  

If we use this api, we can now tell for certain if the repair is still going 
(in which case notif lost is not a problem, we're still waiting) so that's a 
partial solution.  If we *did* lose a completion notification, however, is 
there a way for me to find out if the repair was successful or failed so I can 
retry/alert the customer?

> Expose an mbean method to poll for repair job status
> 
>
> Key: CASSANDRA-8076
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8076
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Philip S Doctor
>Assignee: Yuki Morishita
>
> Given the int reply-id from forceRepairAsync, allow a client to request the 
> status of this ID via jmx.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7966) 1.2.18 -> 2.0.10 upgrade compactions_in_progress: java.lang.IllegalArgumentException

2014-10-16 Thread Philip Thompson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14174022#comment-14174022
 ] 

Philip Thompson commented on CASSANDRA-7966:


Did you also run upgradesstables on every node after reaching 2.0.10?

> 1.2.18 -> 2.0.10 upgrade compactions_in_progress: 
> java.lang.IllegalArgumentException
> 
>
> Key: CASSANDRA-7966
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7966
> Project: Cassandra
>  Issue Type: Bug
> Environment: JDK 1.7
>Reporter: Karl Mueller
>Priority: Minor
>
> This happened on a new node when starting 2.0.10 after 1.2.18 with complete 
> upgradesstables run:
> {noformat}
>  INFO 15:31:11,532 Enqueuing flush of 
> Memtable-compactions_in_progress@1366724594(0/0 serialized/live bytes, 1 ops)
>  INFO 15:31:11,532 Writing Memtable-compactions_in_progress@1366724594(0/0 
> serialized/live bytes, 1 ops)
>  INFO 15:31:11,547 Completed flushing 
> /data2/data-cassandra/system/compactions_in_progress/system-compactions_in_progress-jb-10-Data.db
>  (42 bytes) for commitlog position ReplayPosition(segmentId=1410993002452, 
> position=164409)
> ERROR 15:31:11,550 Exception in thread Thread[CompactionExecutor:36,1,main]
> java.lang.IllegalArgumentException
> at java.nio.Buffer.limit(Buffer.java:267)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytes(ByteBufferUtil.java:587)
> at 
> org.apache.cassandra.utils.ByteBufferUtil.readBytesWithShortLength(ByteBufferUtil.java:596)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:61)
> at 
> org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:36)
> at 
> org.apache.cassandra.db.ArrayBackedSortedColumns.addColumn(ArrayBackedSortedColumns.java:112)
> at 
> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:116)
> at org.apache.cassandra.db.ColumnFamily.addAtom(ColumnFamily.java:150)
> at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:186)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:98)
> at 
> org.apache.cassandra.db.compaction.PrecompactedRow.(PrecompactedRow.java:85)
> at 
> org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:196)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:74)
> at 
> org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:55)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:115)
> at 
> org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:98)
> at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
> at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:143)
> at 
> org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
> at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
> at 
> org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60)
> at 
> org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
> at 
> org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:198)
> at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7989) "nodetool repair" goes to infinite repair, continue beyond the number of tokens handled in a single repair.

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-7989:
---
Reproduced In: 2.0.9

> "nodetool repair" goes to infinite repair, continue beyond the number of 
> tokens handled in a single repair. 
> 
>
> Key: CASSANDRA-7989
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7989
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Reporter: Andrew Johnson
>Priority: Minor
> Fix For: 2.0.11
>
>
> DSE 4.0.3 with patch (Cassandra 2.0.9.61)
> Percentage reported stays in 99.999%
> We are computing % complete by
> [ (Current token processed - initial token processed) / (# of token handled 
> by this node) ] * 100 = xx.xx %
> In this case, it goes beyond 100% meaning numerator(repaired number of tokens 
> in this session) is greater than the number of tokens handled by this node 
> (5624 in this node), we caught this and report 99.999%
> AntiEntropySession increments and there are no visible errors nor exceptions 
> in the log once it was stabilized, also a sub process neither terminated nor 
> finished. 
> (Note, when this session started, there were many exceptions - snapshot 
> creation - causing a sub process to be terminated and restarted about 5 times 
> within a hour but once it is stabilized, it kept going since Aug 22.)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (CASSANDRA-5914) Failed replace_node bootstrap leaves gossip in weird state ; possible perf problem

2014-10-16 Thread Brandon Williams (JIRA)

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

Brandon Williams resolved CASSANDRA-5914.
-
Resolution: Not a Problem

> Failed replace_node bootstrap leaves gossip in weird state ; possible perf 
> problem
> --
>
> Key: CASSANDRA-5914
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5914
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: 1.2.8
>Reporter: Chris Burroughs
>
> A node was down for a week or two due to hardware disk failure.  I tried to 
> use replace_node to bring up a new node on the same physical host with the 
> same IPs.  (rbranson suspected that using the same IP may be issue prone.)  
> This failed due to "unable to find sufficient sources for streaming range".  
> However, gossip for the to-be-replaced node was left in a funky state:
> {noformat}
> /64.215.255.182
>   RACK:NOP
>   NET_VERSION:6
>   HOST_ID:4f3b214b-b03e-46eb-8214-5fab2662a06b
>   RELEASE_VERSION:1.2.8
>   DC:IAD
>   INTERNAL_IP:10.15.2.182
>   SCHEMA:59adb24e-f3cd-3e02-97f0-5b395827453f
>   RPC_ADDRESS:0.0.0.0
> {noformat}
> (See CASSANDRA-5913 for cosmetic issue with nt:status.)
> This seems (A) confusing and (B) the failed replace_token correlated with 
> 95th percentile read latency for this cluster going from 8k microseconds to 
> around 200k microseconds (on both DCs in a mutli-dc cluster reading at 
> CL.ONE).  I don't have a good theory for the correlation but performance was 
> bad for over an hour and returned to normal once a successful replace_token 
> was performed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8015) nodetool exception for users with read only permissions on jmx authentication

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-8015:
---
Assignee: Joshua McKenzie

> nodetool exception for users with read only permissions on jmx authentication 
> --
>
> Key: CASSANDRA-8015
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8015
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.0.8.39
>Reporter: Jose Martinez Poblete
>Assignee: Joshua McKenzie
>
> nodetool will throw exception for a read only user when JMX authentication is 
> enabled.
> {noformat}
> [automaton@i-0212b8098 ~]$ nodetool -u jose -pw JoseManuel status
> Exception in thread "main" java.lang.SecurityException: Access denied! 
> Invalid access level for requested MBeanServer operation.
> at 
> com.sun.jmx.remote.security.MBeanServerFileAccessController.checkAccess(MBeanServerFileAccessController.java:344)
> at 
> com.sun.jmx.remote.security.MBeanServerFileAccessController.checkWrite(MBeanServerFileAccessController.java:240)
> at 
> com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:466)
> at 
> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
> at 
> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
> at 
> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
> at java.security.AccessController.doPrivileged(Native Method)
> at 
> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1427)
> at 
> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
> at sun.rmi.transport.Transport$1.run(Transport.java:177)
> at sun.rmi.transport.Transport$1.run(Transport.java:174)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
> at 
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
> at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
> at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
> 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:744)
> at 
> sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275)
> at 
> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252)
> at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)
> at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
> at javax.management.remote.rmi.RMIConnectionImpl_Stub.invoke(Unknown 
> Source)
> at 
> javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(RMIConnector.java:1029)
> at 
> javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:292)
> at com.sun.proxy.$Proxy0.effectiveOwnership(Unknown Source)
> at 
> org.apache.cassandra.tools.NodeProbe.effectiveOwnership(NodeProbe.java:335)
> at 
> org.apache.cassandra.tools.NodeCmd$ClusterStatus.print(NodeCmd.java:480)
> at 
> org.apache.cassandra.tools.NodeCmd.printClusterStatus(NodeCmd.java:590)
> at org.apache.cassandra.tools.NodeCmd.main(NodeCmd.java:1263)
> [automaton@i-0212b8098 ~]$ dse -v
> 4.5.1
> [automaton@i-0212b8098 ~]$ cqlsh -u jose -p JoseManuel 
> Connected to Spark at localhost:9160.
> [cqlsh 4.1.1 | Cassandra 2.0.8.39 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
> Use HELP for help.
> cqlsh> exit;
> [automaton@i-0212b8098 ~]$ 
> {noformat}
> Nodetool runs fine for cassandra user:
> {noformat}
> [automaton@i-0212b8098 ~]$ nodetool -u cassandra -pw cassandra status
> Note: Ownership information does not include topology; for complete 
> information, specify a keyspace
> Datacenter: Cassandra
> =
> Status=Up/Down
> |/ State=Normal/Leaving/Joining/Moving
> --  AddressLoad   Owns   Host ID  

[jira] [Reopened] (CASSANDRA-5914) Failed replace_node bootstrap leaves gossip in weird state ; possible perf problem

2014-10-16 Thread Brandon Williams (JIRA)

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

Brandon Williams reopened CASSANDRA-5914:
-

> Failed replace_node bootstrap leaves gossip in weird state ; possible perf 
> problem
> --
>
> Key: CASSANDRA-5914
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5914
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: 1.2.8
>Reporter: Chris Burroughs
>
> A node was down for a week or two due to hardware disk failure.  I tried to 
> use replace_node to bring up a new node on the same physical host with the 
> same IPs.  (rbranson suspected that using the same IP may be issue prone.)  
> This failed due to "unable to find sufficient sources for streaming range".  
> However, gossip for the to-be-replaced node was left in a funky state:
> {noformat}
> /64.215.255.182
>   RACK:NOP
>   NET_VERSION:6
>   HOST_ID:4f3b214b-b03e-46eb-8214-5fab2662a06b
>   RELEASE_VERSION:1.2.8
>   DC:IAD
>   INTERNAL_IP:10.15.2.182
>   SCHEMA:59adb24e-f3cd-3e02-97f0-5b395827453f
>   RPC_ADDRESS:0.0.0.0
> {noformat}
> (See CASSANDRA-5913 for cosmetic issue with nt:status.)
> This seems (A) confusing and (B) the failed replace_token correlated with 
> 95th percentile read latency for this cluster going from 8k microseconds to 
> around 200k microseconds (on both DCs in a mutli-dc cluster reading at 
> CL.ONE).  I don't have a good theory for the correlation but performance was 
> bad for over an hour and returned to normal once a successful replace_token 
> was performed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (CASSANDRA-5914) Failed replace_node bootstrap leaves gossip in weird state ; possible perf problem

2014-10-16 Thread Brandon Williams (JIRA)

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

Brandon Williams resolved CASSANDRA-5914.
-
Resolution: Fixed

Reopen if you have this problem with replace_address on 2.0

> Failed replace_node bootstrap leaves gossip in weird state ; possible perf 
> problem
> --
>
> Key: CASSANDRA-5914
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5914
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: 1.2.8
>Reporter: Chris Burroughs
>
> A node was down for a week or two due to hardware disk failure.  I tried to 
> use replace_node to bring up a new node on the same physical host with the 
> same IPs.  (rbranson suspected that using the same IP may be issue prone.)  
> This failed due to "unable to find sufficient sources for streaming range".  
> However, gossip for the to-be-replaced node was left in a funky state:
> {noformat}
> /64.215.255.182
>   RACK:NOP
>   NET_VERSION:6
>   HOST_ID:4f3b214b-b03e-46eb-8214-5fab2662a06b
>   RELEASE_VERSION:1.2.8
>   DC:IAD
>   INTERNAL_IP:10.15.2.182
>   SCHEMA:59adb24e-f3cd-3e02-97f0-5b395827453f
>   RPC_ADDRESS:0.0.0.0
> {noformat}
> (See CASSANDRA-5913 for cosmetic issue with nt:status.)
> This seems (A) confusing and (B) the failed replace_token correlated with 
> 95th percentile read latency for this cluster going from 8k microseconds to 
> around 200k microseconds (on both DCs in a mutli-dc cluster reading at 
> CL.ONE).  I don't have a good theory for the correlation but performance was 
> bad for over an hour and returned to normal once a successful replace_token 
> was performed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8124) Stopping a node during compaction can make already written files stay around

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-8124:
---
Labels: triaged  (was: )

> Stopping a node during compaction can make already written files stay around
> 
>
> Key: CASSANDRA-8124
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8124
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Marcus Eriksson
>  Labels: triaged
> Fix For: 2.1.2
>
>
> In leveled compaction we generally create many files during compaction, in 
> 2.0 we left the ones we had written as -tmp- files, in 2.1 we close and open 
> the readers, removing the -tmp- markers.
> This means that any ongoing compactions will leave the resulting files around 
> if we restart. Note that stop:ing the compaction will cause an exception and 
> that makes us call abort() on the SSTableRewriter which removes the files.
> Guess a fix could be to keep the -tmp- marker and make -tmplink- files until 
> we are actually done with the compaction.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7217) Native transport performance (with cassandra-stress) drops precipitously past around 1000 threads

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-7217:
---
Labels: performance triaged  (was: performance)

> Native transport performance (with cassandra-stress) drops precipitously past 
> around 1000 threads
> -
>
> Key: CASSANDRA-7217
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7217
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Reporter: Benedict
>  Labels: performance, triaged
> Fix For: 2.1.2
>
>
> This is obviously bad. Let's figure out why it's happening and put a stop to 
> it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-4763) SSTableLoader shouldn't get keyspace from path

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-4763:
---
Issue Type: Improvement  (was: Bug)

> SSTableLoader shouldn't get keyspace from path
> --
>
> Key: CASSANDRA-4763
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4763
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Tools
>Affects Versions: 1.2.0 beta 1
>Reporter: Nick Bailey
>Priority: Minor
> Fix For: 2.1.2
>
>
> SSTableLoader currently gets the keyspace it is going to load to from the 
> path of the directoy of sstables it is loading. This isn't really documented 
> (or I didn't see it), but also isn't really a good way of doing it in general.
> {noformat}
> this.keyspace = directory.getParentFile().getName();
> {noformat}
> We should probably just let users pass the name in. If you are loading a 
> snapshot the file names will have the keyspace which is slightly better but 
> people manually creating their own sstables might not format them the same.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-5914) Failed replace_node bootstrap leaves gossip in weird state ; possible perf problem

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-5914:
---
Reproduced In: 1.2.8

> Failed replace_node bootstrap leaves gossip in weird state ; possible perf 
> problem
> --
>
> Key: CASSANDRA-5914
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5914
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: 1.2.8
>Reporter: Chris Burroughs
>
> A node was down for a week or two due to hardware disk failure.  I tried to 
> use replace_node to bring up a new node on the same physical host with the 
> same IPs.  (rbranson suspected that using the same IP may be issue prone.)  
> This failed due to "unable to find sufficient sources for streaming range".  
> However, gossip for the to-be-replaced node was left in a funky state:
> {noformat}
> /64.215.255.182
>   RACK:NOP
>   NET_VERSION:6
>   HOST_ID:4f3b214b-b03e-46eb-8214-5fab2662a06b
>   RELEASE_VERSION:1.2.8
>   DC:IAD
>   INTERNAL_IP:10.15.2.182
>   SCHEMA:59adb24e-f3cd-3e02-97f0-5b395827453f
>   RPC_ADDRESS:0.0.0.0
> {noformat}
> (See CASSANDRA-5913 for cosmetic issue with nt:status.)
> This seems (A) confusing and (B) the failed replace_token correlated with 
> 95th percentile read latency for this cluster going from 8k microseconds to 
> around 200k microseconds (on both DCs in a mutli-dc cluster reading at 
> CL.ONE).  I don't have a good theory for the correlation but performance was 
> bad for over an hour and returned to normal once a successful replace_token 
> was performed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-6548) Order nodetool ring output by token when vnodes aren't in use

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-6548:
---
Issue Type: Improvement  (was: Bug)

> Order nodetool ring output by token when vnodes aren't in use
> -
>
> Key: CASSANDRA-6548
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6548
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: J.B. Langston
>  Labels: lhf
>
> It is confusing to order the nodes by hostId in nodetool ring when vnodes 
> aren't in use. This happens in 1.2 when providing a keyspace name:
> {code}
> Datacenter: DC1
> ==
> Replicas: 2
> Address RackStatus State   LoadOwns   
>  Token
>   
>  42535295865117307932921825928971026432
> xxx.xxx.xxx.48   RAC2Up Normal  324.26 GB   25.00%
>   85070591730234615865843651857942052864
> xxx.xxx.xxx.42   RAC1Up Normal  284.39 GB   25.00%
>   0
> xxx.xxx.xxx.44   RAC1Up Normal  931.07 GB   75.00%
>   127605887595351923798765477786913079296
> xxx.xxx.xxx.46   RAC2Up Normal  881.93 GB   75.00%
>   42535295865117307932921825928971026432
> Datacenter: DC2
> ==
> Replicas: 2
> Address RackStatus State   LoadOwns   
>  Token
>   
>  148873535527910577765226390751398592512
> xxx.xxx.xxx.19  RAC2Up Normal  568.22 GB   50.00% 
>  63802943797675961899382738893456539648
> xxx.xxx.xxx.17  RAC1Up Normal  621.58 GB   50.00% 
>  106338239662793269832304564822427566080
> xxx.xxx.xxx.15  RAC1Up Normal  566.99 GB   50.00% 
>  21267647932558653966460912964485513216
> xxx.xxx.xxx.21  RAC2Up Normal  619.41 GB   50.00% 
>  148873535527910577765226390751398592512
> {code}
> Among other things, this makes it hard to spot rack imbalances.  In the above 
> output, the racks in DC1 are actually incorrectly ordered and those in DC2 
> are correctly ordered, but it's not obvious until you manually sort the nodes 
> by token.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-6819) The command "nodetool setcompactionthroughput" sometimes takes a long time to take effect

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-6819:
---
Fix Version/s: 2.1.2
   2.0.11
   Issue Type: Improvement  (was: Bug)

> The command "nodetool setcompactionthroughput" sometimes takes a long time to 
> take effect
> -
>
> Key: CASSANDRA-6819
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6819
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
>Reporter: Steven Lowenthal
> Fix For: 2.0.11, 2.1.2
>
>
> It's often necessary to throttle a large compaction.   When the nodetool 
> setcompactionthroughput command is issued, the setting doesn't seem to take 
> hold until another compaction starts, which may be some time on a bungled 
> node.   This command should take hold immediately.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7368) Compaction stops after org.apache.cassandra.io.sstable.CorruptSSTableException

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-7368:
---
Assignee: Marcus Eriksson

> Compaction stops after org.apache.cassandra.io.sstable.CorruptSSTableException
> --
>
> Key: CASSANDRA-7368
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7368
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: OS: RHEL 6.5
> Cassandra version: 1.2.16
>Reporter: Francois Richard
>Assignee: Marcus Eriksson
>
> Hi,
> We are getting a case where compaction stops totally on a node after an 
> exception related to: org.apache.cassandra.io.sstable.CorruptSSTableException.
> nodetool compactionstats remains at the same level for hours:
> {code}
> pending tasks: 1451
>   compaction typekeyspace   column family   completed 
>   total  unit  progress
>CompactionSyncCoreContactPrefixBytesIndex   
> 257799931   376785179 bytes68.42%
> Active compaction remaining time :n/a
> {code}
> Here is the exception log:
> {code}
> ERROR [Deserialize 
> SSTableReader(path='/home/y/var/cassandra/data/SyncCore/ContactPrefixBytesIndex/SyncCore-ContactPrefixBytesIndex-ic-116118-Data.db')]
>  2014-06-09 06:39:37,570 CassandraDaemon.java (line 191) Exception in thread 
> Thread[Deserialize 
> SSTableReader(path='/home/y/var/cassandra/data/SyncCore/ContactPrefixBytesIndex/SyncCore-ContactPrefixBytesIndex-ic-116118-Data.db'),1,main]
> org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.IOException: 
> dataSize of 7421941880990663551 starting at 257836699 would be larger than 
> file 
> /home/y/var/cassandra/data/SyncCore/ContactPrefixBytesIndex/SyncCore-ContactPrefixBytesIndex-ic-116118-Data.db
>  length 376785179
>   at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:167)
>   at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:83)
>   at 
> org.apache.cassandra.io.sstable.SSTableIdentityIterator.(SSTableIdentityIterator.java:69)
>   at 
> org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.next(SSTableScanner.java:180)
>   at 
> org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.next(SSTableScanner.java:155)
>   at 
> org.apache.cassandra.io.sstable.SSTableScanner.next(SSTableScanner.java:142)
>   at 
> org.apache.cassandra.io.sstable.SSTableScanner.next(SSTableScanner.java:38)
>   at 
> org.apache.cassandra.db.compaction.LeveledCompactionStrategy$LeveledScanner.computeNext(LeveledCompactionStrategy.java:238)
>   at 
> org.apache.cassandra.db.compaction.LeveledCompactionStrategy$LeveledScanner.computeNext(LeveledCompactionStrategy.java:207)
>   at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
>   at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
> --
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8056) nodetool snapshot -cf -t does not work on multiple tabes of the same keyspace

2014-10-16 Thread Brandon Williams (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14173999#comment-14173999
 ] 

Brandon Williams commented on CASSANDRA-8056:
-

nodetool could take multiple CF args though so that this would be possible.

> nodetool snapshot  -cf  -t  does not work on 
> multiple tabes of the same keyspace
> --
>
> Key: CASSANDRA-8056
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8056
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
> Environment: Cassandra 2.0.6 debian wheezy and squeeze
>Reporter: Esha Pathak
>Assignee: Tyler Hobbs
>  Labels: lhf
> Fix For: 2.0.11
>
>
> 
> keyspace  has tables : thing:user , thing:object, thing:user_details
> steps to reproduce :
> 1. nodetool snapshot thing --column-family user --tag tagname
>   Requested creating snapshot for: thing and table: user
>   Snapshot directory: tagname
> 2.nodetool snapshot thing --column-family object --tag tagname
> Requested creating snapshot for: thing and table: object
> Exception in thread "main" java.io.IOException: Snapshot tagname already 
> exists.
>   at 
> org.apache.cassandra.service.StorageService.takeColumnFamilySnapshot(StorageService.java:2274)
>   at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)
>   at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)
>   at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)
>   at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)
>   at 
> com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)
>   at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
>   at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
>   at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>   at 
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
>   at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
>   at sun.rmi.transport.Transport$1.run(Transport.java:177)
>   at sun.rmi.transport.Transport$1.run(Transport.java:174)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
>   at 
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
>   at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
>   at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
>   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:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8056) nodetool snapshot -cf -t does not work on multiple tabes of the same keyspace

2014-10-16 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-8056:

Priority: Trivial  (was: Major)

> nodetool snapshot  -cf  -t  does not work on 
> multiple tabes of the same keyspace
> --
>
> Key: CASSANDRA-8056
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8056
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
> Environment: Cassandra 2.0.6 debian wheezy and squeeze
>Reporter: Esha Pathak
>Priority: Trivial
>  Labels: lhf
> Fix For: 2.0.11
>
>
> 
> keyspace  has tables : thing:user , thing:object, thing:user_details
> steps to reproduce :
> 1. nodetool snapshot thing --column-family user --tag tagname
>   Requested creating snapshot for: thing and table: user
>   Snapshot directory: tagname
> 2.nodetool snapshot thing --column-family object --tag tagname
> Requested creating snapshot for: thing and table: object
> Exception in thread "main" java.io.IOException: Snapshot tagname already 
> exists.
>   at 
> org.apache.cassandra.service.StorageService.takeColumnFamilySnapshot(StorageService.java:2274)
>   at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)
>   at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)
>   at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)
>   at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)
>   at 
> com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)
>   at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
>   at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
>   at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>   at 
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
>   at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
>   at sun.rmi.transport.Transport$1.run(Transport.java:177)
>   at sun.rmi.transport.Transport$1.run(Transport.java:174)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
>   at 
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
>   at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
>   at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
>   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:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8056) nodetool snapshot -cf -t does not work on multiple tabes of the same keyspace

2014-10-16 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-8056:

Assignee: (was: Tyler Hobbs)

> nodetool snapshot  -cf  -t  does not work on 
> multiple tabes of the same keyspace
> --
>
> Key: CASSANDRA-8056
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8056
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
> Environment: Cassandra 2.0.6 debian wheezy and squeeze
>Reporter: Esha Pathak
>  Labels: lhf
> Fix For: 2.0.11
>
>
> 
> keyspace  has tables : thing:user , thing:object, thing:user_details
> steps to reproduce :
> 1. nodetool snapshot thing --column-family user --tag tagname
>   Requested creating snapshot for: thing and table: user
>   Snapshot directory: tagname
> 2.nodetool snapshot thing --column-family object --tag tagname
> Requested creating snapshot for: thing and table: object
> Exception in thread "main" java.io.IOException: Snapshot tagname already 
> exists.
>   at 
> org.apache.cassandra.service.StorageService.takeColumnFamilySnapshot(StorageService.java:2274)
>   at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)
>   at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)
>   at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)
>   at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)
>   at 
> com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)
>   at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
>   at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
>   at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>   at 
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
>   at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
>   at sun.rmi.transport.Transport$1.run(Transport.java:177)
>   at sun.rmi.transport.Transport$1.run(Transport.java:174)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
>   at 
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
>   at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
>   at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
>   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:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8056) nodetool snapshot -cf -t does not work on multiple tabes of the same keyspace

2014-10-16 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-8056:

Labels: lhf  (was: newbie)

> nodetool snapshot  -cf  -t  does not work on 
> multiple tabes of the same keyspace
> --
>
> Key: CASSANDRA-8056
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8056
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
> Environment: Cassandra 2.0.6 debian wheezy and squeeze
>Reporter: Esha Pathak
>Assignee: Tyler Hobbs
>  Labels: lhf
> Fix For: 2.0.11
>
>
> 
> keyspace  has tables : thing:user , thing:object, thing:user_details
> steps to reproduce :
> 1. nodetool snapshot thing --column-family user --tag tagname
>   Requested creating snapshot for: thing and table: user
>   Snapshot directory: tagname
> 2.nodetool snapshot thing --column-family object --tag tagname
> Requested creating snapshot for: thing and table: object
> Exception in thread "main" java.io.IOException: Snapshot tagname already 
> exists.
>   at 
> org.apache.cassandra.service.StorageService.takeColumnFamilySnapshot(StorageService.java:2274)
>   at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)
>   at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)
>   at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)
>   at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)
>   at 
> com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)
>   at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
>   at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
>   at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>   at 
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
>   at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
>   at sun.rmi.transport.Transport$1.run(Transport.java:177)
>   at sun.rmi.transport.Transport$1.run(Transport.java:174)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
>   at 
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
>   at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
>   at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
>   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:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8056) nodetool snapshot -cf -t does not work on multiple tabes of the same keyspace

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-8056:
---
Fix Version/s: 2.0.11
   Issue Type: Improvement  (was: Bug)

We don't currently support reusing tagname like this, so I'm marking this as an 
improvement request.

> nodetool snapshot  -cf  -t  does not work on 
> multiple tabes of the same keyspace
> --
>
> Key: CASSANDRA-8056
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8056
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Core
> Environment: Cassandra 2.0.6 debian wheezy and squeeze
>Reporter: Esha Pathak
>Assignee: Tyler Hobbs
>  Labels: newbie
> Fix For: 2.0.11
>
>
> 
> keyspace  has tables : thing:user , thing:object, thing:user_details
> steps to reproduce :
> 1. nodetool snapshot thing --column-family user --tag tagname
>   Requested creating snapshot for: thing and table: user
>   Snapshot directory: tagname
> 2.nodetool snapshot thing --column-family object --tag tagname
> Requested creating snapshot for: thing and table: object
> Exception in thread "main" java.io.IOException: Snapshot tagname already 
> exists.
>   at 
> org.apache.cassandra.service.StorageService.takeColumnFamilySnapshot(StorageService.java:2274)
>   at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)
>   at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)
>   at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)
>   at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)
>   at 
> com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)
>   at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
>   at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
>   at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>   at 
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
>   at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
>   at sun.rmi.transport.Transport$1.run(Transport.java:177)
>   at sun.rmi.transport.Transport$1.run(Transport.java:174)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
>   at 
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
>   at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
>   at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
>   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:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8056) nodetool snapshot -cf -t does not work on multiple tabes of the same keyspace

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-8056:
---
Assignee: Tyler Hobbs

> nodetool snapshot  -cf  -t  does not work on 
> multiple tabes of the same keyspace
> --
>
> Key: CASSANDRA-8056
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8056
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.0.6 debian wheezy and squeeze
>Reporter: Esha Pathak
>Assignee: Tyler Hobbs
>  Labels: newbie
>
> 
> keyspace  has tables : thing:user , thing:object, thing:user_details
> steps to reproduce :
> 1. nodetool snapshot thing --column-family user --tag tagname
>   Requested creating snapshot for: thing and table: user
>   Snapshot directory: tagname
> 2.nodetool snapshot thing --column-family object --tag tagname
> Requested creating snapshot for: thing and table: object
> Exception in thread "main" java.io.IOException: Snapshot tagname already 
> exists.
>   at 
> org.apache.cassandra.service.StorageService.takeColumnFamilySnapshot(StorageService.java:2274)
>   at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)
>   at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)
>   at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)
>   at 
> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)
>   at 
> com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)
>   at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
>   at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
>   at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>   at 
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
>   at 
> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
>   at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)
>   at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
>   at sun.rmi.transport.Transport$1.run(Transport.java:177)
>   at sun.rmi.transport.Transport$1.run(Transport.java:174)
>   at java.security.AccessController.doPrivileged(Native Method)
>   at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
>   at 
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
>   at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
>   at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
>   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:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7712) temporary files need to be cleaned by unit tests

2014-10-16 Thread Michael Shuler (JIRA)

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

Michael Shuler updated CASSANDRA-7712:
--
Tester: Michael Shuler  (was: Sravan Ananthula)

> temporary files need to be cleaned by unit tests
> 
>
> Key: CASSANDRA-7712
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7712
> Project: Cassandra
>  Issue Type: Test
>  Components: Tests
>Reporter: Michael Shuler
>Priority: Minor
>  Labels: bootcamp, lhf
> Fix For: 2.0.11
>
> Attachments: 7712-v2.txt, CASSANDRA-7712_apache_cassandra_2.0.txt
>
>
> There are many unit test temporary files left behind after test runs. In the 
> case of CI servers, I have seen >70,000 files accumulate in /tmp over a 
> period of time. Each unit test should make an effort to remove its temporary 
> files when the test is completed.
> My current unit test cleanup block:
> {noformat}
> # clean up after unit tests..
> rm -rf  /tmp/140*-0 /tmp/CFWith* /tmp/Counter1* /tmp/DescriptorTest* 
> /tmp/Keyspace1* \
> /tmp/KeyStreamingTransferTestSpace* /tmp/SSTableExportTest* 
> /tmp/SSTableImportTest* \
> /tmp/Standard1* /tmp/Statistics.db* /tmp/StreamingTransferTest* 
> /tmp/ValuesWithQuotes* \
> /tmp/cassandra* /tmp/jna-* /tmp/ks-cf-ib-1-* /tmp/lengthtest* 
> /tmp/liblz4-java*.so /tmp/readtest* \
> /tmp/set_length_during_read_mode* /tmp/set_negative_length* 
> /tmp/snappy-*.so
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7712) temporary files need to be cleaned by unit tests

2014-10-16 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-7712:

Attachment: 7712-v2.txt

Patch refactoring as I outlined.

> temporary files need to be cleaned by unit tests
> 
>
> Key: CASSANDRA-7712
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7712
> Project: Cassandra
>  Issue Type: Test
>  Components: Tests
>Reporter: Michael Shuler
>Priority: Minor
>  Labels: bootcamp, lhf
> Fix For: 2.0.11
>
> Attachments: 7712-v2.txt, CASSANDRA-7712_apache_cassandra_2.0.txt
>
>
> There are many unit test temporary files left behind after test runs. In the 
> case of CI servers, I have seen >70,000 files accumulate in /tmp over a 
> period of time. Each unit test should make an effort to remove its temporary 
> files when the test is completed.
> My current unit test cleanup block:
> {noformat}
> # clean up after unit tests..
> rm -rf  /tmp/140*-0 /tmp/CFWith* /tmp/Counter1* /tmp/DescriptorTest* 
> /tmp/Keyspace1* \
> /tmp/KeyStreamingTransferTestSpace* /tmp/SSTableExportTest* 
> /tmp/SSTableImportTest* \
> /tmp/Standard1* /tmp/Statistics.db* /tmp/StreamingTransferTest* 
> /tmp/ValuesWithQuotes* \
> /tmp/cassandra* /tmp/jna-* /tmp/ks-cf-ib-1-* /tmp/lengthtest* 
> /tmp/liblz4-java*.so /tmp/readtest* \
> /tmp/set_length_during_read_mode* /tmp/set_negative_length* 
> /tmp/snappy-*.so
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8112) nodetool compactionhistory can allocate memory unbounded

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-8112:
---
Labels: triaged  (was: )

> nodetool compactionhistory can allocate memory unbounded
> 
>
> Key: CASSANDRA-8112
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8112
> Project: Cassandra
>  Issue Type: Bug
>Reporter: T Jake Luciani
>Priority: Minor
>  Labels: triaged
> Fix For: 2.1.2
>
>
> nodetool compactionhistory keeps data for 1 week by default and creates a 
> table from the result set in memory.
> For many systems a week can generate 10's of thousands of compactions in this 
> time (esp with LCS) we should guard against this command allocating too much 
> memory.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-6430) DELETE with IF = clause doesn't work properly if more then one row are going to be deleted

2014-10-16 Thread Tyler Hobbs (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-6430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14173991#comment-14173991
 ] 

Tyler Hobbs commented on CASSANDRA-6430:


It sounds like the best option for now is to require that the full primary key 
be specified when IF conditions are used in DELETEs.  If we want to reconsider 
allowing the statement in the description, we can always do that later.

> DELETE with IF = clause doesn't work properly if more then one 
> row are going to be deleted
> 
>
> Key: CASSANDRA-6430
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6430
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Dmitriy Ukhlov
>Assignee: Tyler Hobbs
> Fix For: 2.0.11
>
>
> CREATE TABLE test(key int, sub_key int, value text, PRIMARY KEY(key, sub_key) 
> );
> INSERT INTO test(key, sub_key, value) VALUES(1,1, '1.1');
> INSERT INTO test(key, sub_key, value) VALUES(1,2, '1.2');
> INSERT INTO test(key, sub_key, value) VALUES(1,3, '1.3');
> SELECT * from test;
>  key | sub_key | value
> -+-+---
>1 |   1 |   1.1
>1 |   2 |   1.2
>1 |   3 |   1.3
> DELETE FROM test WHERE key=1 IF value='1.2';
>  [applied]
> ---
>  False <=== I guess second row should be removed
> SELECT * from test;
>  key | sub_key | value
> -+-+---
>1 |   1 |   1.1
>1 |   2 |   1.2
>1 |   3 |   1.3
> (3 rows) 
> DELETE FROM test WHERE key=1;
> SELECT * from test;
> (0 rows)  <=== all rows were removed: OK



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (CASSANDRA-5713) CQL3 token() <= token() does not work as expected

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson resolved CASSANDRA-5713.

Resolution: Cannot Reproduce

I also can't reproduce on 2.0-HEAD.

> CQL3 token() <= token() does not work as expected
> -
>
> Key: CASSANDRA-5713
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5713
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Colin B.
>Priority: Minor
>
> Using tokens to go backward through a table in CQL3 does not work as expected.
> Say there is some data available:
> {code}
> > SELECT key FROM data_list where token(key) >= token('6') limit 10;
>  key
> -
>6
>7
>9
>4
>3
>A
>5
>8
>2
>1
> {code}
> I expect:
> {code}
> > SELECT key FROM data_list where token(key) <= token('1') limit 5;
>  key
> -
>A
>5
>8
>2
>1
> {code}
> However the following occurs:
> {code}
> > SELECT key FROM data_list where token(key) <= token('1') limit 5;
>  key
> -
>6
>7
>9
>4
>3
> {code}
> The '<' operator has similar unexpected behavior.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[2/6] git commit: add missing file

2014-10-16 Thread brandonwilliams
add missing file


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

Branch: refs/heads/cassandra-2.1
Commit: 67db1bf2786679b71dad8a32894346abdf59206e
Parents: e938839
Author: Brandon Williams 
Authored: Thu Oct 16 12:16:16 2014 -0500
Committer: Brandon Williams 
Committed: Thu Oct 16 12:16:16 2014 -0500

--
 .../metrics/CASClientRequestMetrics.java| 47 
 1 file changed, 47 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/67db1bf2/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java
--
diff --git a/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java 
b/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java
new file mode 100644
index 000..3210d45
--- /dev/null
+++ b/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java
@@ -0,0 +1,47 @@
+/*
+ * 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.metrics;
+
+import com.yammer.metrics.*;
+import com.yammer.metrics.core.*;
+
+public class CASClientRequestMetrics extends ClientRequestMetrics
+{
+
+public final Histogram contention;
+/* Used only for write  */
+public final Counter conditionNotMet;
+
+public final Counter unfinishedCommit;
+
+public CASClientRequestMetrics(String scope) {
+super(scope);
+contention = 
Metrics.newHistogram(factory.createMetricName("ContentionHistogram"), true);
+conditionNotMet =  
Metrics.newCounter(factory.createMetricName("ConditionNotMet"));
+unfinishedCommit =  
Metrics.newCounter(factory.createMetricName("UnfinishedCommit"));
+}
+
+public void release()
+{
+super.release();
+
Metrics.defaultRegistry().removeMetric(factory.createMetricName("ContentionHistogram"));
+
Metrics.defaultRegistry().removeMetric(factory.createMetricName("ConditionNotMet"));
+
Metrics.defaultRegistry().removeMetric(factory.createMetricName("UnfinishedCommit"));
+}
+}



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

2014-10-16 Thread brandonwilliams
Merge branch 'cassandra-2.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: 014d328f4b370ae72360a5dd4aa34a9010bee0d2
Parents: 46c4f0b 67db1bf
Author: Brandon Williams 
Authored: Thu Oct 16 12:16:23 2014 -0500
Committer: Brandon Williams 
Committed: Thu Oct 16 12:16:23 2014 -0500

--
 .../metrics/CASClientRequestMetrics.java| 47 
 1 file changed, 47 insertions(+)
--




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

2014-10-16 Thread brandonwilliams
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 543fbc37460dee8cb6a5fee82e2c88f574091136
Parents: 1d05e8e 014d328
Author: Brandon Williams 
Authored: Thu Oct 16 12:16:31 2014 -0500
Committer: Brandon Williams 
Committed: Thu Oct 16 12:16:31 2014 -0500

--
 .../metrics/CASClientRequestMetrics.java| 47 
 1 file changed, 47 insertions(+)
--




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

2014-10-16 Thread brandonwilliams
Merge branch 'cassandra-2.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: 014d328f4b370ae72360a5dd4aa34a9010bee0d2
Parents: 46c4f0b 67db1bf
Author: Brandon Williams 
Authored: Thu Oct 16 12:16:23 2014 -0500
Committer: Brandon Williams 
Committed: Thu Oct 16 12:16:23 2014 -0500

--
 .../metrics/CASClientRequestMetrics.java| 47 
 1 file changed, 47 insertions(+)
--




[3/6] git commit: add missing file

2014-10-16 Thread brandonwilliams
add missing file


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

Branch: refs/heads/trunk
Commit: 67db1bf2786679b71dad8a32894346abdf59206e
Parents: e938839
Author: Brandon Williams 
Authored: Thu Oct 16 12:16:16 2014 -0500
Committer: Brandon Williams 
Committed: Thu Oct 16 12:16:16 2014 -0500

--
 .../metrics/CASClientRequestMetrics.java| 47 
 1 file changed, 47 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/67db1bf2/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java
--
diff --git a/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java 
b/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java
new file mode 100644
index 000..3210d45
--- /dev/null
+++ b/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java
@@ -0,0 +1,47 @@
+/*
+ * 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.metrics;
+
+import com.yammer.metrics.*;
+import com.yammer.metrics.core.*;
+
+public class CASClientRequestMetrics extends ClientRequestMetrics
+{
+
+public final Histogram contention;
+/* Used only for write  */
+public final Counter conditionNotMet;
+
+public final Counter unfinishedCommit;
+
+public CASClientRequestMetrics(String scope) {
+super(scope);
+contention = 
Metrics.newHistogram(factory.createMetricName("ContentionHistogram"), true);
+conditionNotMet =  
Metrics.newCounter(factory.createMetricName("ConditionNotMet"));
+unfinishedCommit =  
Metrics.newCounter(factory.createMetricName("UnfinishedCommit"));
+}
+
+public void release()
+{
+super.release();
+
Metrics.defaultRegistry().removeMetric(factory.createMetricName("ContentionHistogram"));
+
Metrics.defaultRegistry().removeMetric(factory.createMetricName("ConditionNotMet"));
+
Metrics.defaultRegistry().removeMetric(factory.createMetricName("UnfinishedCommit"));
+}
+}



[1/6] git commit: add missing file

2014-10-16 Thread brandonwilliams
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 e93883988 -> 67db1bf27
  refs/heads/cassandra-2.1 46c4f0b58 -> 014d328f4
  refs/heads/trunk 1d05e8ea7 -> 543fbc374


add missing file


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

Branch: refs/heads/cassandra-2.0
Commit: 67db1bf2786679b71dad8a32894346abdf59206e
Parents: e938839
Author: Brandon Williams 
Authored: Thu Oct 16 12:16:16 2014 -0500
Committer: Brandon Williams 
Committed: Thu Oct 16 12:16:16 2014 -0500

--
 .../metrics/CASClientRequestMetrics.java| 47 
 1 file changed, 47 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/67db1bf2/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java
--
diff --git a/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java 
b/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java
new file mode 100644
index 000..3210d45
--- /dev/null
+++ b/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java
@@ -0,0 +1,47 @@
+/*
+ * 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.metrics;
+
+import com.yammer.metrics.*;
+import com.yammer.metrics.core.*;
+
+public class CASClientRequestMetrics extends ClientRequestMetrics
+{
+
+public final Histogram contention;
+/* Used only for write  */
+public final Counter conditionNotMet;
+
+public final Counter unfinishedCommit;
+
+public CASClientRequestMetrics(String scope) {
+super(scope);
+contention = 
Metrics.newHistogram(factory.createMetricName("ContentionHistogram"), true);
+conditionNotMet =  
Metrics.newCounter(factory.createMetricName("ConditionNotMet"));
+unfinishedCommit =  
Metrics.newCounter(factory.createMetricName("UnfinishedCommit"));
+}
+
+public void release()
+{
+super.release();
+
Metrics.defaultRegistry().removeMetric(factory.createMetricName("ContentionHistogram"));
+
Metrics.defaultRegistry().removeMetric(factory.createMetricName("ConditionNotMet"));
+
Metrics.defaultRegistry().removeMetric(factory.createMetricName("UnfinishedCommit"));
+}
+}



[jira] [Commented] (CASSANDRA-8110) Make streaming backwards compatible

2014-10-16 Thread Aleksey Yeschenko (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14173962#comment-14173962
 ] 

Aleksey Yeschenko commented on CASSANDRA-8110:
--

Yup. And even if 7460 hadn't happened, we still can't stream new sstables to 
the older nodes that cannot read those sstables. This ticket covers that too.

> Make streaming backwards compatible
> ---
>
> Key: CASSANDRA-8110
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8110
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Marcus Eriksson
> Fix For: 3.0
>
>
> To be able to seamlessly upgrade clusters we need to make it possible to 
> stream files between nodes with different StreamMessage.CURRENT_VERSION



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8110) Make streaming backwards compatible

2014-10-16 Thread Marcus Eriksson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14173957#comment-14173957
 ] 

Marcus Eriksson commented on CASSANDRA-8110:


We version the stream protocol separately, meaning we can have the same 
streaming protocol across different major versions. This ticket should make it 
possible to stream between different stream message versions whenever we add 
new stuff there (the thing that broke it between 2.1 and 3.0 was adding the 
SSTable level in the FileMessageHeader, CASSANDRA-7460 ).

> Make streaming backwards compatible
> ---
>
> Key: CASSANDRA-8110
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8110
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Marcus Eriksson
> Fix For: 3.0
>
>
> To be able to seamlessly upgrade clusters we need to make it possible to 
> stream files between nodes with different StreamMessage.CURRENT_VERSION



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7510) Notify clients that bootstrap is finished over binary protocol

2014-10-16 Thread Brandon Williams (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14173956#comment-14173956
 ] 

Brandon Williams commented on CASSANDRA-7510:
-

bq. Does the proposed change of sending the STATUS_NORMAL state later also mean 
that until that time the node does not show up in the system.peers table?

Yes.

> Notify clients that bootstrap is finished over binary protocol
> --
>
> Key: CASSANDRA-7510
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7510
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Joost Reuzel
>Assignee: Brandon Williams
>Priority: Minor
> Fix For: 2.0.11
>
> Attachments: 7510.txt
>
>
> Currently, Cassandra will notify clients when a new node is added to a 
> cluster. However, that node is typically not usable yet. It first needs to 
> gossip its key range and finish loading all its assigned data before it 
> allows clients to connect. Depending on the amount of data this may take 
> quite a while. The clients in the mean time have no clue about the bootstrap 
> status of that node. The only thing they can do is periodically check if it 
> will accept a connection. 
> My proposal would be to send an additional UP event when the bootstrap is 
> done, this allows clients to mark the node initially as down/unavailable and 
> simply wait for the UP event to arrive.
> Kind regards,
> Joost



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-6430) DELETE with IF = clause doesn't work properly if more then one row are going to be deleted

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-6430:
---
Assignee: Tyler Hobbs

> DELETE with IF = clause doesn't work properly if more then one 
> row are going to be deleted
> 
>
> Key: CASSANDRA-6430
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6430
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Dmitriy Ukhlov
>Assignee: Tyler Hobbs
> Fix For: 2.0.11
>
>
> CREATE TABLE test(key int, sub_key int, value text, PRIMARY KEY(key, sub_key) 
> );
> INSERT INTO test(key, sub_key, value) VALUES(1,1, '1.1');
> INSERT INTO test(key, sub_key, value) VALUES(1,2, '1.2');
> INSERT INTO test(key, sub_key, value) VALUES(1,3, '1.3');
> SELECT * from test;
>  key | sub_key | value
> -+-+---
>1 |   1 |   1.1
>1 |   2 |   1.2
>1 |   3 |   1.3
> DELETE FROM test WHERE key=1 IF value='1.2';
>  [applied]
> ---
>  False <=== I guess second row should be removed
> SELECT * from test;
>  key | sub_key | value
> -+-+---
>1 |   1 |   1.1
>1 |   2 |   1.2
>1 |   3 |   1.3
> (3 rows) 
> DELETE FROM test WHERE key=1;
> SELECT * from test;
> (0 rows)  <=== all rows were removed: OK



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (CASSANDRA-6568) sstables incorrectly getting marked as "not live"

2014-10-16 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis resolved CASSANDRA-6568.
---
   Resolution: Cannot Reproduce
Fix Version/s: (was: 2.0.11)

i'm going to resolve as cantrepro for now, then.

> sstables incorrectly getting marked as "not live"
> -
>
> Key: CASSANDRA-6568
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6568
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: 1.2.12 with several 1.2.13 patches
>Reporter: Chris Burroughs
>Assignee: Marcus Eriksson
> Attachments: 0001-add-jmx-method-to-get-non-active-sstables.patch
>
>
> {noformat}
> -rw-rw-r-- 14 cassandra cassandra 1.4G Nov 25 19:46 
> /data/sstables/data/ks/cf/ks-cf-ic-402383-Data.db
> -rw-rw-r-- 14 cassandra cassandra  13G Nov 26 00:04 
> /data/sstables/data/ks/cf/ks-cf-ic-402430-Data.db
> -rw-rw-r-- 14 cassandra cassandra  13G Nov 26 05:03 
> /data/sstables/data/ks/cf/ks-cf-ic-405231-Data.db
> -rw-rw-r-- 31 cassandra cassandra  21G Nov 26 08:38 
> /data/sstables/data/ks/cf/ks-cf-ic-405232-Data.db
> -rw-rw-r--  2 cassandra cassandra 2.6G Dec  3 13:44 
> /data/sstables/data/ks/cf/ks-cf-ic-434662-Data.db
> -rw-rw-r-- 14 cassandra cassandra 1.5G Dec  5 09:05 
> /data/sstables/data/ks/cf/ks-cf-ic-438698-Data.db
> -rw-rw-r--  2 cassandra cassandra 3.1G Dec  6 12:10 
> /data/sstables/data/ks/cf/ks-cf-ic-440983-Data.db
> -rw-rw-r--  2 cassandra cassandra  96M Dec  8 01:52 
> /data/sstables/data/ks/cf/ks-cf-ic-444041-Data.db
> -rw-rw-r--  2 cassandra cassandra 3.3G Dec  9 16:37 
> /data/sstables/data/ks/cf/ks-cf-ic-451116-Data.db
> -rw-rw-r--  2 cassandra cassandra 876M Dec 10 11:23 
> /data/sstables/data/ks/cf/ks-cf-ic-453552-Data.db
> -rw-rw-r--  2 cassandra cassandra 891M Dec 11 03:21 
> /data/sstables/data/ks/cf/ks-cf-ic-454518-Data.db
> -rw-rw-r--  2 cassandra cassandra 102M Dec 11 12:27 
> /data/sstables/data/ks/cf/ks-cf-ic-455429-Data.db
> -rw-rw-r--  2 cassandra cassandra 906M Dec 11 23:54 
> /data/sstables/data/ks/cf/ks-cf-ic-455533-Data.db
> -rw-rw-r--  1 cassandra cassandra 214M Dec 12 05:02 
> /data/sstables/data/ks/cf/ks-cf-ic-456426-Data.db
> -rw-rw-r--  1 cassandra cassandra 203M Dec 12 10:49 
> /data/sstables/data/ks/cf/ks-cf-ic-456879-Data.db
> -rw-rw-r--  1 cassandra cassandra  49M Dec 12 12:03 
> /data/sstables/data/ks/cf/ks-cf-ic-456963-Data.db
> -rw-rw-r-- 18 cassandra cassandra  20G Dec 25 01:09 
> /data/sstables/data/ks/cf/ks-cf-ic-507770-Data.db
> -rw-rw-r--  3 cassandra cassandra  12G Jan  8 04:22 
> /data/sstables/data/ks/cf/ks-cf-ic-567100-Data.db
> -rw-rw-r--  3 cassandra cassandra 957M Jan  8 22:51 
> /data/sstables/data/ks/cf/ks-cf-ic-569015-Data.db
> -rw-rw-r--  2 cassandra cassandra 923M Jan  9 17:04 
> /data/sstables/data/ks/cf/ks-cf-ic-571303-Data.db
> -rw-rw-r--  1 cassandra cassandra 821M Jan 10 08:20 
> /data/sstables/data/ks/cf/ks-cf-ic-574642-Data.db
> -rw-rw-r--  1 cassandra cassandra  18M Jan 10 08:48 
> /data/sstables/data/ks/cf/ks-cf-ic-574723-Data.db
> {noformat}
> I tried to do a user defined compaction on sstables from November and got "it 
> is not an active sstable".  Live sstable count from jmx was about 7 while on 
> disk there were over 20.  Live vs total size showed about a ~50 GiB 
> difference.
> Forcing a gc from jconsole had no effect.  However, restarting the node 
> resulted in live sstables/bytes *increasing* to match what was on disk.  User 
> compaction could now compact the November sstables.  This cluster was last 
> restarted in mid December.
> I'm not sure what affect "not live" had on other operations of the cluster.  
> From the logs it seems that the files were sent at least at some point as 
> part of repair, but I don't know if they were being being used for read 
> requests or not.  Because the problem that got me looking in the first place 
> was poor performance I suspect they were  used for reads (and the reads were 
> slow because so many sstables were being read).  I presume based on their age 
> at the least they were being excluded from compaction.
> I'm not aware of any isLive() or getRefCount() to problematically confirm 
> which nodes have this problem.  In this cluster almost all columns have a 14 
> day TTL, based on the number of nodes with November sstables it appears to be 
> occurring on a significant fraction of the nodes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-8110) Make streaming backwards compatible

2014-10-16 Thread Aleksey Yeschenko (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-8110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14173953#comment-14173953
 ] 

Aleksey Yeschenko commented on CASSANDRA-8110:
--

[~jbellis] this ticket is a superset of CASSANDRA-5772. 5772 allows streaming 
previous-version sstables between 2 current version nodes, but not streaming 
(of anything) between two differently versioned nodes.

> Make streaming backwards compatible
> ---
>
> Key: CASSANDRA-8110
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8110
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Marcus Eriksson
> Fix For: 3.0
>
>
> To be able to seamlessly upgrade clusters we need to make it possible to 
> stream files between nodes with different StreamMessage.CURRENT_VERSION



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-6430) DELETE with IF = clause doesn't work properly if more then one row are going to be deleted

2014-10-16 Thread Philip Thompson (JIRA)

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

Philip Thompson updated CASSANDRA-6430:
---
Fix Version/s: 2.0.11

> DELETE with IF = clause doesn't work properly if more then one 
> row are going to be deleted
> 
>
> Key: CASSANDRA-6430
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6430
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Dmitriy Ukhlov
> Fix For: 2.0.11
>
>
> CREATE TABLE test(key int, sub_key int, value text, PRIMARY KEY(key, sub_key) 
> );
> INSERT INTO test(key, sub_key, value) VALUES(1,1, '1.1');
> INSERT INTO test(key, sub_key, value) VALUES(1,2, '1.2');
> INSERT INTO test(key, sub_key, value) VALUES(1,3, '1.3');
> SELECT * from test;
>  key | sub_key | value
> -+-+---
>1 |   1 |   1.1
>1 |   2 |   1.2
>1 |   3 |   1.3
> DELETE FROM test WHERE key=1 IF value='1.2';
>  [applied]
> ---
>  False <=== I guess second row should be removed
> SELECT * from test;
>  key | sub_key | value
> -+-+---
>1 |   1 |   1.1
>1 |   2 |   1.2
>1 |   3 |   1.3
> (3 rows) 
> DELETE FROM test WHERE key=1;
> SELECT * from test;
> (0 rows)  <=== all rows were removed: OK



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (CASSANDRA-7292) Can't seed new node into ring with (public) ip of an old node

2014-10-16 Thread Brandon Williams (JIRA)

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

Brandon Williams resolved CASSANDRA-7292.
-
Resolution: Duplicate

Closing in favor of 8072 since Ryan can reproduce reliably with a clean setup.

> Can't seed new node into ring with (public) ip of an old node
> -
>
> Key: CASSANDRA-7292
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7292
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.0.7, Ec2MultiRegionSnitch
>Reporter: Juho Mäkinen
>Assignee: Brandon Williams
>  Labels: bootstrap, gossip
> Attachments: cassandra-replace-address.log
>
>
> This bug prevents node to return with bootstrap into the cluster with its old 
> ip.
> Scenario: five node ec2 cluster spread into three AZ, all in one region. I'm 
> using Ec2MultiRegionSnitch. Nodes are reported with their public ips (as 
> Ec2MultiRegionSnitch requires)
> I simulated a loss of one node by terminating one instance. nodetool status 
> reported correctly that node was down. Then I launched new instance with the 
> old public ip (i'm using elastic ips) with 
> "Dcassandra.replace_address=IP_ADDRESS" but the new node can't join the 
> cluster:
>  INFO 07:20:43,424 Gathering node replacement information for /54.86.191.30
>  INFO 07:20:43,428 Starting Messaging Service on port 9043
>  INFO 07:20:43,489 Handshaking version with /54.86.171.10
>  INFO 07:20:43,491 Handshaking version with /54.86.187.245
> (some delay)
> ERROR 07:21:14,445 Exception encountered during startup
> java.lang.RuntimeException: Unable to gossip with any seeds
>   at org.apache.cassandra.gms.Gossiper.doShadowRound(Gossiper.java:1193)
>   at 
> org.apache.cassandra.service.StorageService.prepareReplacementInfo(StorageService.java:419)
>   at 
> org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:650)
>   at 
> org.apache.cassandra.service.StorageService.initServer(StorageService.java:612)
>   at 
> org.apache.cassandra.service.StorageService.initServer(StorageService.java:505)
>   at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:362)
>   at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:480)
>   at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:569)
> It does not help if I remove the "Dcassandra.replace_address=IP_ADDRESS" 
> system property. 
> Also it does not help to remove the node with "nodetool removenode" with or 
> without the cassandra.replace_address property.
> I think this is because the node information is preserved in the gossip info 
> as seen this output of "nodetool gossipinfo"
> /54.86.191.30
>   INTERNAL_IP:172.16.1.231
>   DC:us-east
>   REMOVAL_COORDINATOR:REMOVER,d581309a-8610-40d4-ba30-cb250eda22a8
>   STATUS:removed,19311925-46b5-4fe4-928a-321e8adb731d,1401089960664
>   HOST_ID:19311925-46b5-4fe4-928a-321e8adb731d
>   RPC_ADDRESS:0.0.0.0
>   NET_VERSION:7
>   SCHEMA:226f9315-b4b2-32c1-bfe1-f4bb49fccfd5
>   RACK:1b
>   LOAD:7.075290515E9
>   SEVERITY:0.0
>   RELEASE_VERSION:2.0.7



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


  1   2   >