[jira] [Updated] (CASSANDRA-3001) Make the compression algorithm and chunk length configurable

2011-08-31 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-3001:


Attachment: 0001-Pluggable-algorithm-and-chunk-length.patch

 Make the compression algorithm and chunk length configurable
 

 Key: CASSANDRA-3001
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3001
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
Priority: Minor
  Labels: compression
 Fix For: 1.0

 Attachments: 0001-Pluggable-algorithm-and-chunk-length.patch, 
 0002-Thrift-crap.patch, 0003-Add-deflate-compressor.patch




--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-3001) Make the compression algorithm and chunk length configurable

2011-08-31 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-3001:


Attachment: (was: 0001-Pluggable-algorithm-and-chunk-length.patch)

 Make the compression algorithm and chunk length configurable
 

 Key: CASSANDRA-3001
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3001
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
Priority: Minor
  Labels: compression
 Fix For: 1.0

 Attachments: 0001-Pluggable-algorithm-and-chunk-length.patch, 
 0002-Thrift-crap.patch, 0003-Add-deflate-compressor.patch




--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3001) Make the compression algorithm and chunk length configurable

2011-08-31 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-3001:
-

I just updated the first patch to fix the tests compilation (the 'line 108' 
change).

However, the `ant test-compression` failures are not of this patch doing. Trunk 
already fails and a git bisect indicates that those failure where introduced by 
CASSANDRA-2498 (we should probably wait for that to be fixed and check then 
that the tests do pass with this patch). 

 Make the compression algorithm and chunk length configurable
 

 Key: CASSANDRA-3001
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3001
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
Priority: Minor
  Labels: compression
 Fix For: 1.0

 Attachments: 0001-Pluggable-algorithm-and-chunk-length.patch, 
 0002-Thrift-crap.patch, 0003-Add-deflate-compressor.patch




--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (CASSANDRA-3109) nodetool repair consuming large disk when it ran after increasing replication factor on live cluster

2011-08-31 Thread Sunil Kumar (JIRA)
nodetool repair consuming large disk when it ran after increasing replication 
factor on live cluster


 Key: CASSANDRA-3109
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3109
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Affects Versions: 0.7.4
 Environment: Centos 5.5 
Reporter: Sunil Kumar


Hi all,
I have two node cassandra cluster initial replication factor for this cluster 
is 1. When i changed replication factor to 2 on this live cluster.From 
cassandra wiki(http://wiki.apache.org/cassandra/Operations#Replication) it is 
recommended to run nodetool repair command on each node of the cluster. But 
when i run nodetool command on both node disk usage on the both node got 
increased to 50 times of the initial disk usage. Initially in my cluster data 
with one replication factor was 1 GB on each node now its 50GB on each node and 
still nodetool process is going on. Can any body help me in this problem or is 
it desired behavior of cassandra???  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (CASSANDRA-3110) SSTables iterators are closed and before being used

2011-08-31 Thread Sylvain Lebresne (JIRA)
SSTables iterators are closed and before being used
---

 Key: CASSANDRA-3110
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3110
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.0
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
 Fix For: 1.0
 Attachments: 3110.patch

Seems there is misplaced finally blocks in CollationController: we close the 
sstable iterators and release the sstable references *before* having actually 
used said iterators/sstables.
Note: this cause a lot of tests to fail in `ant test-compression` in particular.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-3110) SSTables iterators are closed and before being used

2011-08-31 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-3110:


Attachment: 3110.patch

 SSTables iterators are closed and before being used
 ---

 Key: CASSANDRA-3110
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3110
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.0
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
 Fix For: 1.0

 Attachments: 3110.patch


 Seems there is misplaced finally blocks in CollationController: we close the 
 sstable iterators and release the sstable references *before* having actually 
 used said iterators/sstables.
 Note: this cause a lot of tests to fail in `ant test-compression` in 
 particular.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3001) Make the compression algorithm and chunk length configurable

2011-08-31 Thread Pavel Yaskevich (JIRA)

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

Pavel Yaskevich commented on CASSANDRA-3001:


Let's wait.

 Make the compression algorithm and chunk length configurable
 

 Key: CASSANDRA-3001
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3001
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
Priority: Minor
  Labels: compression
 Fix For: 1.0

 Attachments: 0001-Pluggable-algorithm-and-chunk-length.patch, 
 0002-Thrift-crap.patch, 0003-Add-deflate-compressor.patch




--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (CASSANDRA-3111) Bug in ReversedType comparator

2011-08-31 Thread Fabien Rousseau (JIRA)
Bug in ReversedType comparator
--

 Key: CASSANDRA-3111
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3111
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.8.4
Reporter: Fabien Rousseau
Priority: Minor


Scenario :
 * create a cf with a reversed comparator
 * insert a few columns in a row
 * try to read data with : SliceRange(start='', finish='', reversed=true)
 ** no data is returned, but some columns are expected
 * try to read data with : SliceRange(start='', finish='', reversed=false)
 ** if not flushed on disk : no data is returned




--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-3111) Bug in ReversedType comparator

2011-08-31 Thread Fabien Rousseau (JIRA)

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

Fabien Rousseau updated CASSANDRA-3111:
---

Attachment: 001-CASSANDRA-3111.patch

 Bug in ReversedType comparator
 --

 Key: CASSANDRA-3111
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3111
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.8.4
Reporter: Fabien Rousseau
Priority: Minor
 Attachments: 001-CASSANDRA-3111.patch


 Scenario :
  * create a cf with a reversed comparator
  * insert a few columns in a row
  * try to read data with : SliceRange(start='', finish='', reversed=true)
  ** no data is returned, but some columns are expected
  * try to read data with : SliceRange(start='', finish='', reversed=false)
  ** if not flushed on disk : no data is returned

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-1391) Allow Concurrent Schema Migrations

2011-08-31 Thread Pavel Yaskevich (JIRA)

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

Pavel Yaskevich updated CASSANDRA-1391:
---

Attachment: (was: CASSANDRA-1391.patch)

 Allow Concurrent Schema Migrations
 --

 Key: CASSANDRA-1391
 URL: https://issues.apache.org/jira/browse/CASSANDRA-1391
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Stu Hood
Assignee: Pavel Yaskevich
 Fix For: 1.0


 CASSANDRA-1292 fixed multiple migrations started from the same node to 
 properly queue themselves, but it is still possible for migrations initiated 
 on different nodes to conflict and leave the cluster in a bad state. Since 
 the system_add/drop/rename methods are accessible directly from the client 
 API, they should be completely safe for concurrent use.
 It should be possible to allow for most types of concurrent migrations by 
 converting the UUID schema ID into a VersionVectorClock (as provided by 
 CASSANDRA-580).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-1391) Allow Concurrent Schema Migrations

2011-08-31 Thread Pavel Yaskevich (JIRA)

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

Pavel Yaskevich updated CASSANDRA-1391:
---

Attachment: (was: CASSANDRA-1391.patch)

 Allow Concurrent Schema Migrations
 --

 Key: CASSANDRA-1391
 URL: https://issues.apache.org/jira/browse/CASSANDRA-1391
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Stu Hood
Assignee: Pavel Yaskevich
 Fix For: 1.0


 CASSANDRA-1292 fixed multiple migrations started from the same node to 
 properly queue themselves, but it is still possible for migrations initiated 
 on different nodes to conflict and leave the cluster in a bad state. Since 
 the system_add/drop/rename methods are accessible directly from the client 
 API, they should be completely safe for concurrent use.
 It should be possible to allow for most types of concurrent migrations by 
 converting the UUID schema ID into a VersionVectorClock (as provided by 
 CASSANDRA-580).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-1391) Allow Concurrent Schema Migrations

2011-08-31 Thread Pavel Yaskevich (JIRA)

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

Pavel Yaskevich updated CASSANDRA-1391:
---

Attachment: (was: CASSANDRA-1391.patch)

 Allow Concurrent Schema Migrations
 --

 Key: CASSANDRA-1391
 URL: https://issues.apache.org/jira/browse/CASSANDRA-1391
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Stu Hood
Assignee: Pavel Yaskevich
 Fix For: 1.0


 CASSANDRA-1292 fixed multiple migrations started from the same node to 
 properly queue themselves, but it is still possible for migrations initiated 
 on different nodes to conflict and leave the cluster in a bad state. Since 
 the system_add/drop/rename methods are accessible directly from the client 
 API, they should be completely safe for concurrent use.
 It should be possible to allow for most types of concurrent migrations by 
 converting the UUID schema ID into a VersionVectorClock (as provided by 
 CASSANDRA-580).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-1391) Allow Concurrent Schema Migrations

2011-08-31 Thread Pavel Yaskevich (JIRA)

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

Pavel Yaskevich updated CASSANDRA-1391:
---

Attachment: CASSANDRA-1391.patch

 Allow Concurrent Schema Migrations
 --

 Key: CASSANDRA-1391
 URL: https://issues.apache.org/jira/browse/CASSANDRA-1391
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Stu Hood
Assignee: Pavel Yaskevich
 Fix For: 1.0

 Attachments: CASSANDRA-1391.patch


 CASSANDRA-1292 fixed multiple migrations started from the same node to 
 properly queue themselves, but it is still possible for migrations initiated 
 on different nodes to conflict and leave the cluster in a bad state. Since 
 the system_add/drop/rename methods are accessible directly from the client 
 API, they should be completely safe for concurrent use.
 It should be possible to allow for most types of concurrent migrations by 
 converting the UUID schema ID into a VersionVectorClock (as provided by 
 CASSANDRA-580).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-1391) Allow Concurrent Schema Migrations

2011-08-31 Thread Pavel Yaskevich (JIRA)

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

Pavel Yaskevich updated CASSANDRA-1391:
---

Attachment: CASSANDRA-1391.patch

updated patch to fix problem with avro map comparisons. This has a side effect 
in a good sense - you don't need to include options that you don't want to 
update when you do CLI `update {keyspace/column family}`.

 Allow Concurrent Schema Migrations
 --

 Key: CASSANDRA-1391
 URL: https://issues.apache.org/jira/browse/CASSANDRA-1391
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Stu Hood
Assignee: Pavel Yaskevich
 Fix For: 1.0

 Attachments: CASSANDRA-1391.patch


 CASSANDRA-1292 fixed multiple migrations started from the same node to 
 properly queue themselves, but it is still possible for migrations initiated 
 on different nodes to conflict and leave the cluster in a bad state. Since 
 the system_add/drop/rename methods are accessible directly from the client 
 API, they should be completely safe for concurrent use.
 It should be possible to allow for most types of concurrent migrations by 
 converting the UUID schema ID into a VersionVectorClock (as provided by 
 CASSANDRA-580).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-1391) Allow Concurrent Schema Migrations

2011-08-31 Thread Pavel Yaskevich (JIRA)

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

Pavel Yaskevich updated CASSANDRA-1391:
---

Attachment: (was: CASSANDRA-1391.patch)

 Allow Concurrent Schema Migrations
 --

 Key: CASSANDRA-1391
 URL: https://issues.apache.org/jira/browse/CASSANDRA-1391
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Stu Hood
Assignee: Pavel Yaskevich
 Fix For: 1.0

 Attachments: CASSANDRA-1391.patch


 CASSANDRA-1292 fixed multiple migrations started from the same node to 
 properly queue themselves, but it is still possible for migrations initiated 
 on different nodes to conflict and leave the cluster in a bad state. Since 
 the system_add/drop/rename methods are accessible directly from the client 
 API, they should be completely safe for concurrent use.
 It should be possible to allow for most types of concurrent migrations by 
 converting the UUID schema ID into a VersionVectorClock (as provided by 
 CASSANDRA-580).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-3111) Bug in ReversedType comparator

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-3111:
--

Reviewer: slebresne

 Bug in ReversedType comparator
 --

 Key: CASSANDRA-3111
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3111
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.8.4
Reporter: Fabien Rousseau
Priority: Minor
 Attachments: 001-CASSANDRA-3111.patch


 Scenario :
  * create a cf with a reversed comparator
  * insert a few columns in a row
  * try to read data with : SliceRange(start='', finish='', reversed=true)
  ** no data is returned, but some columns are expected
  * try to read data with : SliceRange(start='', finish='', reversed=false)
  ** if not flushed on disk : no data is returned

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3110) SSTables iterators are closed and before being used

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-3110:
---

+1

 SSTables iterators are closed and before being used
 ---

 Key: CASSANDRA-3110
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3110
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.0
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
 Fix For: 1.0

 Attachments: 3110.patch


 Seems there is misplaced finally blocks in CollationController: we close the 
 sstable iterators and release the sstable references *before* having actually 
 used said iterators/sstables.
 Note: this cause a lot of tests to fail in `ant test-compression` in 
 particular.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Resolved] (CASSANDRA-3109) nodetool repair consuming large disk when it ran after increasing replication factor on live cluster

2011-08-31 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne resolved CASSANDRA-3109.
-

Resolution: Duplicate

This is likely fixed by CASSANDRA-2816 (and possibly CASSANDRA-2280). 

 nodetool repair consuming large disk when it ran after increasing replication 
 factor on live cluster
 

 Key: CASSANDRA-3109
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3109
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Affects Versions: 0.7.4
 Environment: Centos 5.5 
Reporter: Sunil Kumar

 Hi all,
 I have two node cassandra cluster initial replication factor for this cluster 
 is 1. When i changed replication factor to 2 on this live cluster.From 
 cassandra wiki(http://wiki.apache.org/cassandra/Operations#Replication) it is 
 recommended to run nodetool repair command on each node of the cluster. But 
 when i run nodetool command on both node disk usage on the both node got 
 increased to 50 times of the initial disk usage. Initially in my cluster data 
 with one replication factor was 1 GB on each node now its 50GB on each node 
 and still nodetool process is going on. Can any body help me in this problem 
 or is it desired behavior of cassandra???  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-2433) Failed Streams Break Repair

2011-08-31 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-2433:


Attachment: 2433_v3.patch

bq. Someone's probably going to want the JMX information but let's keep Stages 
for Verb-associated tasks

Sounds good, updated patch add a new executor directly into AntiEntropy.

bq. How about splitting onDead and onRestart in EndpointStateChange, then?

Done.

bq. I prefer using WrappedRunnable to a Callable

I changed to use WrappedRunnable. However, we still need to have access to both 
the repair session and the future from the executor so the implementation 
returns a pair of those two objects. I'm only marginally convinced this is 
cleaner than the previous solution...


 Failed Streams Break Repair
 ---

 Key: CASSANDRA-2433
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2433
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Benjamin Coverston
Assignee: Sylvain Lebresne
  Labels: repair
 Fix For: 0.8.5

 Attachments: 
 0001-Put-repair-session-on-a-Stage-and-add-a-method-to-re-v4.patch, 
 0002-Register-in-gossip-to-handle-node-failures-v4.patch, 
 0003-Report-streaming-errors-back-to-repair-v4.patch, 
 0004-Reports-validation-compaction-errors-back-to-repair-v4.patch, 
 2433.patch, 2433_v2.patch, 2433_v3.patch


 Running repair in cases where a stream fails we are seeing multiple problems.
 1. Although retry is initiated and completes, the old stream doesn't seem to 
 clean itself up and repair hangs.
 2. The temp files are left behind and multiple failures can end up filling up 
 the data partition.
 These issues together are making repair very difficult for nearly everyone 
 running repair on a non-trivial sized data set.
 This issue is also being worked on w.r.t CASSANDRA-2088, however that was 
 moved to 0.8 for a few reasons. This ticket is to fix the immediate issues 
 that we are seeing in 0.7.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163652 - in /cassandra/trunk: CHANGES.txt src/java/org/apache/cassandra/db/CollationController.java

2011-08-31 Thread slebresne
Author: slebresne
Date: Wed Aug 31 14:50:35 2011
New Revision: 1163652

URL: http://svn.apache.org/viewvc?rev=1163652view=rev
Log:
Fix closing sstable iterators before using them
patch by slebresne; reviewed by jbellis for CASSANDRA-3110

Modified:
cassandra/trunk/CHANGES.txt
cassandra/trunk/src/java/org/apache/cassandra/db/CollationController.java

Modified: cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1163652r1=1163651r2=1163652view=diff
==
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Wed Aug 31 14:50:35 2011
@@ -50,6 +50,7 @@
  * Expose gossip/FD info to JMX (CASSANDRA-2806)
  * Fix streaming over SSL when compressed SSTable involved (CASSANDRA-3051)
  * Add support for pluggable secondary index implementations (CASSANDRA-3078)
+ * Fix closing sstable iterators before using them (CASSANDRA-3110)
 
 0.8.5
  * fix NPE when encryption_options is unspecified (CASSANDRA-3007)

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/CollationController.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/CollationController.java?rev=1163652r1=1163651r2=1163652view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/db/CollationController.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/CollationController.java 
Wed Aug 31 14:50:35 2011
@@ -116,6 +116,38 @@ public class CollationController
 container.addColumn(iter.next());
 }
 }
+
+// we need to distinguish between there is no data at all for 
this row (BF will let us rebuild that efficiently)
+// and there used to be data, but it's gone now (we should cache 
the empty CF so we don't need to rebuild that slower)
+if (iterators.isEmpty())
+return null;
+
+// do a final collate.  toCollate is boilerplate required to 
provide a CloseableIterator
+final ColumnFamily c2 = container;
+CloseableIteratorIColumn toCollate = new 
SimpleAbstractColumnIterator()
+{
+final IteratorIColumn iter = c2.iterator();
+
+protected IColumn computeNext()
+{
+return iter.hasNext() ? iter.next() : endOfData();
+}
+
+public ColumnFamily getColumnFamily()
+{
+return c2;
+}
+
+public DecoratedKey getKey()
+{
+return filter.key;
+}
+};
+ColumnFamily returnCF = container.cloneMeShallow();
+filter.collateColumns(returnCF, 
Collections.singletonList(toCollate), cfs.metadata.comparator, gcBefore);
+
+// Caller is responsible for final removeDeletedCF.  This is 
important for cacheRow to work correctly:
+return returnCF;
 }
 finally
 {
@@ -123,38 +155,6 @@ public class CollationController
 for (IColumnIterator iter : iterators)
 FileUtils.closeQuietly(iter);
 }
-
-// we need to distinguish between there is no data at all for this 
row (BF will let us rebuild that efficiently)
-// and there used to be data, but it's gone now (we should cache the 
empty CF so we don't need to rebuild that slower)
-if (iterators.isEmpty())
-return null;
-
-// do a final collate.  toCollate is boilerplate required to provide a 
CloseableIterator
-final ColumnFamily c2 = container;
-CloseableIteratorIColumn toCollate = new 
SimpleAbstractColumnIterator()
-{
-final IteratorIColumn iter = c2.iterator();
-
-protected IColumn computeNext()
-{
-return iter.hasNext() ? iter.next() : endOfData();
-}
-
-public ColumnFamily getColumnFamily()
-{
-return c2;
-}
-
-public DecoratedKey getKey()
-{
-return filter.key;
-}
-};
-ColumnFamily returnCF = container.cloneMeShallow();
-filter.collateColumns(returnCF, Collections.singletonList(toCollate), 
cfs.metadata.comparator, gcBefore);
-
-// Caller is responsible for final removeDeletedCF.  This is important 
for cacheRow to work correctly:
-return returnCF;
 }
 
 /**
@@ -210,6 +210,16 @@ public class CollationController
 sstablesIterated++;
 }
 }
+
+// we need to distinguish between there is no data at all for 
this row (BF will let us rebuild that efficiently)
+// and there used to be data, but it's gone now (we should cache 
the empty CF so we 

[jira] [Updated] (CASSANDRA-2433) Failed Streams Break Repair

2011-08-31 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-2433:


Attachment: 2433_v3.patch

(Sorry, I had attached the wrong version of v3, corrected now)

 Failed Streams Break Repair
 ---

 Key: CASSANDRA-2433
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2433
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Benjamin Coverston
Assignee: Sylvain Lebresne
  Labels: repair
 Fix For: 0.8.5

 Attachments: 
 0001-Put-repair-session-on-a-Stage-and-add-a-method-to-re-v4.patch, 
 0002-Register-in-gossip-to-handle-node-failures-v4.patch, 
 0003-Report-streaming-errors-back-to-repair-v4.patch, 
 0004-Reports-validation-compaction-errors-back-to-repair-v4.patch, 
 2433.patch, 2433_v2.patch, 2433_v3.patch


 Running repair in cases where a stream fails we are seeing multiple problems.
 1. Although retry is initiated and completes, the old stream doesn't seem to 
 clean itself up and repair hangs.
 2. The temp files are left behind and multiple failures can end up filling up 
 the data partition.
 These issues together are making repair very difficult for nearly everyone 
 running repair on a non-trivial sized data set.
 This issue is also being worked on w.r.t CASSANDRA-2088, however that was 
 moved to 0.8 for a few reasons. This ticket is to fix the immediate issues 
 that we are seeing in 0.7.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-2433) Failed Streams Break Repair

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2433:
---

bq. we still need to have access to both the repair session and the future from 
the executor so the implementation returns a pair of those two objects

You can still use the RepairFuture approach, just use the FutureTask(Runnable, 
V) constructor

 Failed Streams Break Repair
 ---

 Key: CASSANDRA-2433
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2433
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Benjamin Coverston
Assignee: Sylvain Lebresne
  Labels: repair
 Fix For: 0.8.5

 Attachments: 
 0001-Put-repair-session-on-a-Stage-and-add-a-method-to-re-v4.patch, 
 0002-Register-in-gossip-to-handle-node-failures-v4.patch, 
 0003-Report-streaming-errors-back-to-repair-v4.patch, 
 0004-Reports-validation-compaction-errors-back-to-repair-v4.patch, 
 2433.patch, 2433_v2.patch, 2433_v3.patch


 Running repair in cases where a stream fails we are seeing multiple problems.
 1. Although retry is initiated and completes, the old stream doesn't seem to 
 clean itself up and repair hangs.
 2. The temp files are left behind and multiple failures can end up filling up 
 the data partition.
 These issues together are making repair very difficult for nearly everyone 
 running repair on a non-trivial sized data set.
 This issue is also being worked on w.r.t CASSANDRA-2088, however that was 
 moved to 0.8 for a few reasons. This ticket is to fix the immediate issues 
 that we are seeing in 0.7.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3104) remove compaction_thread_priority setting

2011-08-31 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-3104:
-

Forgot to +1.

 remove compaction_thread_priority setting
 -

 Key: CASSANDRA-3104
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3104
 Project: Cassandra
  Issue Type: Task
  Components: Core
Reporter: Jonathan Ellis
Assignee: Jonathan Ellis
Priority: Minor
 Fix For: 1.0

 Attachments: 3104.txt


 compaction_throughput_mb_per_sec is a more effective throttle on compaction.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3106) getRangeToEndpointMap() method removed

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-3106:
---

Why isn't rpcaddress sufficient?

 getRangeToEndpointMap() method removed
 --

 Key: CASSANDRA-3106
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3106
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Affects Versions: 1.0
Reporter: Nick Bailey
Assignee: Nick Bailey
Priority: Minor
 Fix For: 1.0

 Attachments: 0001-Add-getRangeToEndpointMap-method-back.patch


 When getRangeToRPCAddress was added, getRangeToEndpointMap was removed, 
 however, both are useful. We should add it back.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163657 - in /cassandra/trunk: ./ conf/ src/java/org/apache/cassandra/config/ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/db/compaction/ src/java/org/apache/cassandra/

2011-08-31 Thread jbellis
Author: jbellis
Date: Wed Aug 31 15:02:23 2011
New Revision: 1163657

URL: http://svn.apache.org/viewvc?rev=1163657view=rev
Log:
r/m compaction_thread_priority setting
patch by jbellis; reviewed by slebresne for CASSANDRA-3104

Modified:
cassandra/trunk/CHANGES.txt
cassandra/trunk/NEWS.txt
cassandra/trunk/conf/cassandra.yaml
cassandra/trunk/src/java/org/apache/cassandra/config/Config.java
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java

cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java

Modified: cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1163657r1=1163656r2=1163657view=diff
==
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Wed Aug 31 15:02:23 2011
@@ -44,13 +44,14 @@
Thrift-Avro conversion methods (CASSANDRA-3032)
  * Add timeouts to client request schedulers (CASSANDRA-3079)
  * Cli to use hashes rather than array of hashes for strategy options 
(CASSANDRA-3081)
- * LeveledCompactionStrategy (CASSANDRA-1608, 3085)
+ * LeveledCompactionStrategy (CASSANDRA-1608, 3085, 3110)
  * Improvements of the CLI `describe` command (CASSANDRA-2630)
  * reduce window where dropped CF sstables may not be deleted (CASSANDRA-2942)
  * Expose gossip/FD info to JMX (CASSANDRA-2806)
  * Fix streaming over SSL when compressed SSTable involved (CASSANDRA-3051)
  * Add support for pluggable secondary index implementations (CASSANDRA-3078)
- * Fix closing sstable iterators before using them (CASSANDRA-3110)
+ * remove compaction_thread_priority setting (CASSANDRA-3104)
+
 
 0.8.5
  * fix NPE when encryption_options is unspecified (CASSANDRA-3007)

Modified: cassandra/trunk/NEWS.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/NEWS.txt?rev=1163657r1=1163656r2=1163657view=diff
==
--- cassandra/trunk/NEWS.txt (original)
+++ cassandra/trunk/NEWS.txt Wed Aug 31 15:02:23 2011
@@ -5,6 +5,9 @@ Upgrading
 -
 - the BinaryMemtable bulk-load interface has been removed. Use the
   sstableloader tool instead.
+- the compaction_thread_priority setting has been removed from 
+  cassandra.yaml (use compaction_throughput_mb_per_sec to throttle
+  compaction instead)
 
 Features
 

Modified: cassandra/trunk/conf/cassandra.yaml
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/conf/cassandra.yaml?rev=1163657r1=1163656r2=1163657view=diff
==
--- cassandra/trunk/conf/cassandra.yaml (original)
+++ cassandra/trunk/conf/cassandra.yaml Wed Aug 31 15:02:23 2011
@@ -253,13 +253,6 @@ incremental_backups: false
 # is a data format change.
 snapshot_before_compaction: false
 
-# change this to increase the compaction thread's priority.  In java, 1 is the
-# lowest priority and that is our default.
-#
-# Under Linux, this cannot be higher than 5 (normal thread priority) without
-# running as root.
-# compaction_thread_priority: 1
-
 # Add column indexes to a row after its contents reach this size.
 # Increase if your column values are large, or if you have a very large
 # number of columns.  The competing causes are, Cassandra has to

Modified: cassandra/trunk/src/java/org/apache/cassandra/config/Config.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/Config.java?rev=1163657r1=1163656r2=1163657view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/config/Config.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/config/Config.java Wed Aug 31 
15:02:23 2011
@@ -77,8 +77,7 @@ public class Config
 public Integer thrift_max_message_length_in_mb = 16;
 public Integer thrift_framed_transport_size_in_mb = 15;
 public Boolean snapshot_before_compaction = false;
-public Integer compaction_thread_priority = Thread.MIN_PRIORITY;
-
+
 /* if the size of columns or super-columns are more than this, indexing 
will kick in */
 public Integer column_index_size_in_kb = 64;
 public Integer in_memory_compaction_limit_in_mb = 256;

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=1163657r1=1163656r2=1163657view=diff
==
--- 
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
(original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
Wed 

[jira] [Commented] (CASSANDRA-3001) Make the compression algorithm and chunk length configurable

2011-08-31 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-3001:
-

All tests are passing now that CASSANDRA-3110 has been committed.

 Make the compression algorithm and chunk length configurable
 

 Key: CASSANDRA-3001
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3001
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
Priority: Minor
  Labels: compression
 Fix For: 1.0

 Attachments: 0001-Pluggable-algorithm-and-chunk-length.patch, 
 0002-Thrift-crap.patch, 0003-Add-deflate-compressor.patch




--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3104) remove compaction_thread_priority setting

2011-08-31 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-3104:
---

Integrated in Cassandra #1060 (See 
[https://builds.apache.org/job/Cassandra/1060/])
r/m compaction_thread_priority setting
patch by jbellis; reviewed by slebresne for CASSANDRA-3104

jbellis : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1163657
Files : 
* /cassandra/trunk/CHANGES.txt
* /cassandra/trunk/NEWS.txt
* /cassandra/trunk/conf/cassandra.yaml
* /cassandra/trunk/src/java/org/apache/cassandra/config/Config.java
* /cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
* /cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
* /cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java


 remove compaction_thread_priority setting
 -

 Key: CASSANDRA-3104
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3104
 Project: Cassandra
  Issue Type: Task
  Components: Core
Reporter: Jonathan Ellis
Assignee: Jonathan Ellis
Priority: Minor
 Fix For: 1.0

 Attachments: 3104.txt


 compaction_throughput_mb_per_sec is a more effective throttle on compaction.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3110) SSTables iterators are closed and before being used

2011-08-31 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-3110:
---

Integrated in Cassandra #1060 (See 
[https://builds.apache.org/job/Cassandra/1060/])
Fix closing sstable iterators before using them
patch by slebresne; reviewed by jbellis for CASSANDRA-3110

slebresne : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1163652
Files : 
* /cassandra/trunk/CHANGES.txt
* /cassandra/trunk/src/java/org/apache/cassandra/db/CollationController.java


 SSTables iterators are closed and before being used
 ---

 Key: CASSANDRA-3110
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3110
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.0
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
 Fix For: 1.0

 Attachments: 3110.patch


 Seems there is misplaced finally blocks in CollationController: we close the 
 sstable iterators and release the sstable references *before* having actually 
 used said iterators/sstables.
 Note: this cause a lot of tests to fail in `ant test-compression` in 
 particular.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3106) getRangeToEndpointMap() method removed

2011-08-31 Thread Nick Bailey (JIRA)

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

Nick Bailey commented on CASSANDRA-3106:


The rpc address of a node doesn't really give any guarantee of uniqueness.

 getRangeToEndpointMap() method removed
 --

 Key: CASSANDRA-3106
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3106
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Affects Versions: 1.0
Reporter: Nick Bailey
Assignee: Nick Bailey
Priority: Minor
 Fix For: 1.0

 Attachments: 0001-Add-getRangeToEndpointMap-method-back.patch


 When getRangeToRPCAddress was added, getRangeToEndpointMap was removed, 
 however, both are useful. We should add it back.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-2433) Failed Streams Break Repair

2011-08-31 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-2433:


Attachment: 2433_v4.patch

You're right, don't know why I got carried away like that. v4 fixes this.

 Failed Streams Break Repair
 ---

 Key: CASSANDRA-2433
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2433
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Benjamin Coverston
Assignee: Sylvain Lebresne
  Labels: repair
 Fix For: 0.8.5

 Attachments: 
 0001-Put-repair-session-on-a-Stage-and-add-a-method-to-re-v4.patch, 
 0002-Register-in-gossip-to-handle-node-failures-v4.patch, 
 0003-Report-streaming-errors-back-to-repair-v4.patch, 
 0004-Reports-validation-compaction-errors-back-to-repair-v4.patch, 
 2433.patch, 2433_v2.patch, 2433_v3.patch, 2433_v4.patch


 Running repair in cases where a stream fails we are seeing multiple problems.
 1. Although retry is initiated and completes, the old stream doesn't seem to 
 clean itself up and repair hangs.
 2. The temp files are left behind and multiple failures can end up filling up 
 the data partition.
 These issues together are making repair very difficult for nearly everyone 
 running repair on a non-trivial sized data set.
 This issue is also being worked on w.r.t CASSANDRA-2088, however that was 
 moved to 0.8 for a few reasons. This ticket is to fix the immediate issues 
 that we are seeing in 0.7.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3001) Make the compression algorithm and chunk length configurable

2011-08-31 Thread Pavel Yaskevich (JIRA)

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

Pavel Yaskevich commented on CASSANDRA-3001:


Great, I will test and commit in few hours.

 Make the compression algorithm and chunk length configurable
 

 Key: CASSANDRA-3001
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3001
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
Priority: Minor
  Labels: compression
 Fix For: 1.0

 Attachments: 0001-Pluggable-algorithm-and-chunk-length.patch, 
 0002-Thrift-crap.patch, 0003-Add-deflate-compressor.patch




--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-3087) Leveled compaction allows multiple simultaneous compaction Tasks

2011-08-31 Thread Benjamin Coverston (JIRA)

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

Benjamin Coverston updated CASSANDRA-3087:
--

Attachment: 3087-v2.txt

Cleaned up a few of the imports.

+1

 Leveled compaction allows multiple simultaneous compaction Tasks
 

 Key: CASSANDRA-3087
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3087
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 1.0
Reporter: Jonathan Ellis
Assignee: Jonathan Ellis
 Fix For: 1.0

 Attachments: 3087-v2.txt, 3087.txt


 CASSANDRA-1608 attempts to restrict itself to one compaction task per CF (see 
 discussion there for why this is necessary) by synchronizing 
 LCS.getBackgroundTasks but this is not sufficient.  Consider this sequence of 
 events:
 1. getBackgroundTasks returns a Task for compacting some L0 sstables.  this 
 Task is scheduled.
 2. Another SSTable for this CF is flushed, so 
 CompactionManager.submitBackground is called.  getBT is not currently 
 in-progress so the synchronization does not stop another Task from being 
 returned and scheduled.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163677 - in /cassandra/branches/cassandra-0.8: ./ src/java/org/apache/cassandra/gms/ src/java/org/apache/cassandra/service/ test/unit/org/apache/cassandra/service/

2011-08-31 Thread slebresne
Author: slebresne
Date: Wed Aug 31 16:06:09 2011
New Revision: 1163677

URL: http://svn.apache.org/viewvc?rev=1163677view=rev
Log:
Make repair report failure when a participating node dies
patch by slebresne; reviewed by jbellis for CASSANDRA-2433

Modified:
cassandra/branches/cassandra-0.8/CHANGES.txt

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/IEndpointStateChangeSubscriber.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/IFailureDetectionEventListener.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AntiEntropyService.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/MigrationManager.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageLoadBalancer.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java

cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/AntiEntropyServiceTestAbstract.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1163677r1=1163676r2=1163677view=diff
==
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Wed Aug 31 16:06:09 2011
@@ -46,6 +46,8 @@
  * Add validation that Keyspace names are case-insensitively unique 
(CASSANDRA-3066)
  * catch invalid key_validation_class before instantiating UpdateColumnFamily 
(CASSANDRA-3102)
  * make Range and Bounds objects client-safe (CASSANDRA-3108)
+ * make repair report failure when a node participating dies (instead of
+   hanging forever) (CASSANDRA-2433)
 
 
 0.8.4

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java?rev=1163677r1=1163676r2=1163677view=diff
==
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java
 Wed Aug 31 16:06:09 2011
@@ -152,7 +152,7 @@ public class FailureDetector implements 
 { 
 for ( IFailureDetectionEventListener listener : fdEvntListeners_ )
 {
-listener.convict(ep);
+listener.convict(ep, phi);
 }
 }
 }

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1163677r1=1163676r2=1163677view=diff
==
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/Gossiper.java
 Wed Aug 31 16:06:09 2011
@@ -244,7 +244,7 @@ public class Gossiper implements IFailur
  *
  * param @ endpoint end point that is convicted.
 */
-public void convict(InetAddress endpoint)
+public void convict(InetAddress endpoint, double phi)
 {
 EndpointState epState = endpointStateMap.get(endpoint);
 if (epState.isAlive())
@@ -717,12 +717,11 @@ public class Gossiper implements IFailur
 if (logger.isTraceEnabled())
 logger.trace(Adding endpoint state for  + ep);
 endpointStateMap.put(ep, epState);
-if (epState.isAlive())
-{
-// the node restarted before we ever marked it down, so we'll 
report it as dead briefly so maintenance like resetting the connection pool can 
occur 
-for (IEndpointStateChangeSubscriber subscriber : subscribers)
-subscriber.onDead(ep, epState);
-}
+
+// the node restarted: it is up to the subscriber to take whatever 
action is necessary
+for (IEndpointStateChangeSubscriber subscriber : subscribers)
+subscriber.onRestart(ep, epState);
+
 if (epState.getApplicationState(ApplicationState.STATUS) != null  
!isDeadState(epState.getApplicationState(ApplicationState.STATUS).value))
 markAlive(ep, epState);
 else

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/IEndpointStateChangeSubscriber.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/IEndpointStateChangeSubscriber.java?rev=1163677r1=1163676r2=1163677view=diff

svn commit: r1163685 - in /cassandra/trunk: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/gms/ src/java/org/apache/cassandra/locator/ src/java/org/ap

2011-08-31 Thread slebresne
Author: slebresne
Date: Wed Aug 31 16:24:13 2011
New Revision: 1163685

URL: http://svn.apache.org/viewvc?rev=1163685view=rev
Log:
merge from 0.8

Modified:
cassandra/trunk/   (props changed)
cassandra/trunk/CHANGES.txt
cassandra/trunk/contrib/   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
   (props changed)
cassandra/trunk/src/java/org/apache/cassandra/gms/FailureDetector.java
cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java

cassandra/trunk/src/java/org/apache/cassandra/gms/IEndpointStateChangeSubscriber.java

cassandra/trunk/src/java/org/apache/cassandra/gms/IFailureDetectionEventListener.java

cassandra/trunk/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java

cassandra/trunk/src/java/org/apache/cassandra/service/AntiEntropyService.java
cassandra/trunk/src/java/org/apache/cassandra/service/LoadBroadcaster.java
cassandra/trunk/src/java/org/apache/cassandra/service/MigrationManager.java
cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java

cassandra/trunk/test/unit/org/apache/cassandra/service/AntiEntropyServiceTestAbstract.java

Propchange: cassandra/trunk/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 16:24:13 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7:1026516-1163266
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
-/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1163272
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1163272,1163677
 /cassandra/branches/cassandra-0.8.0:1125021-1130369
 /cassandra/branches/cassandra-0.8.1:1101014-1125018
 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689

Modified: cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1163685r1=1163684r2=1163685view=diff
==
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Wed Aug 31 16:24:13 2011
@@ -96,6 +96,8 @@
  * fix ip address String representation in the ring cache (CASSANDRA-3044)
  * fix ring cache compatibility when mixing pre-0.8.4 nodes with post-
in the same cluster (CASSANDRA-3023)
+ * make repair report failure when a node participating dies (instead of
+   hanging forever) (CASSANDRA-2433)
 
 0.8.4
  * include files-to-be-streamed in StreamInSession.getSources (CASSANDRA-2972)

Propchange: cassandra/trunk/contrib/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 16:24:13 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
 /cassandra/branches/cassandra-0.7/contrib:1026516-1163266
 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
-/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1163272
+/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1163272,1163677
 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018
 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 16:24:13 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1163266
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1163272
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1163272,1163677
 
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369
 

[jira] [Reopened] (CASSANDRA-2388) ColumnFamilyRecordReader fails for a given split because a host is down, even if records could reasonably be read from other replica.

2011-08-31 Thread Mck SembWever (JIRA)

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

Mck SembWever reopened CASSANDRA-2388:
--


see last comment. (say if this should be a separate bug...)

 ColumnFamilyRecordReader fails for a given split because a host is down, even 
 if records could reasonably be read from other replica.
 -

 Key: CASSANDRA-2388
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2388
 Project: Cassandra
  Issue Type: Bug
  Components: Hadoop
Affects Versions: 0.6
Reporter: Eldon Stegall
Assignee: Mck SembWever
  Labels: hadoop, inputformat
 Fix For: 0.7.9, 0.8.5

 Attachments: 0002_On_TException_try_next_split.patch, 
 CASSANDRA-2388-addition1.patch, CASSANDRA-2388-extended.patch, 
 CASSANDRA-2388.patch, CASSANDRA-2388.patch, CASSANDRA-2388.patch, 
 CASSANDRA-2388.patch


 ColumnFamilyRecordReader only tries the first location for a given split. We 
 should try multiple locations for a given split.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-2734) JDBC driver assumes schema is constant for the duration of the connection

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-2734:
--

Attachment: (was: 0001-include-schema-with-resultset.txt)

 JDBC driver assumes schema is constant for the duration of the connection
 -

 Key: CASSANDRA-2734
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2734
 Project: Cassandra
  Issue Type: Sub-task
  Components: API
Affects Versions: 0.8.0
Reporter: Cathy Daw
Assignee: Jonathan Ellis
Priority: Minor
  Labels: cql
 Fix For: 1.0

 Attachments: 0001-include-schema-with-resultset.patch, 
 0002-ant-gen-thrift-java.txt, 0003-thrift-gen.txt


 *The following statement fails when used with a Statement or 
 PreparedStatement*
 {code}
 res = stmt.executeQuery(SELECT bar FROM users);  
 res.next();
 {code}
 *Error Message*
 {code}
 [junit] Testcase: simpleSelect(com.datastax.cql.reproBugTest):Caused 
 an ERROR
 [junit] null
 [junit] java.lang.NullPointerException
 [junit]   at 
 org.apache.cassandra.cql.jdbc.ColumnDecoder.makeKeyColumn(ColumnDecoder.java:136)
 [junit]   at 
 org.apache.cassandra.cql.jdbc.CResultSet.next(CResultSet.java:388)
 [junit]   at 
 com.datastax.cql.reproBugTest.simpleSelect(reproBugTest.java:57)
 [junit] 
 [junit] 
 [junit] Test com.datastax.cql.reproBugTest FAILED
 {code}
 *Here is a quick repro.  Showing that res.next() works with other statements 
 but not select.*
 _Also notice that ResultSet.getMetaData().getColumnCount() always returns 
 zero._  
 _I noticed in the existing driver tests similar test cases, so not sure the 
 issue._
 *Steps to run script*
 * you will need to drop this in your test directory
 * change the package declaration
 * ant test -Dtest.name=reproBugTest
 {code}
 package com.datastax.cql;
 import java.sql.DriverManager;
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 import org.junit.Test;
 public class reproBugTest {
 
 @Test
 public void simpleSelect() throws Exception {   
 Connection connection = null;
 ResultSet res;
 Statement stmt;
 int colCount = 0;
 
 try {
 Class.forName(org.apache.cassandra.cql.jdbc.CassandraDriver);
 
 // Check create keyspace
 connection = 
 DriverManager.getConnection(jdbc:cassandra:root/root@127.0.0.1:9160/default);
  
 stmt = connection.createStatement();
 try {
   System.out.println(Running DROP KS Statement);  
   res = stmt.executeQuery(DROP KEYSPACE ks1);  
   res.next();
   
   System.out.println(Running CREATE KS Statement);
   res = stmt.executeQuery(CREATE KEYSPACE ks1 with 
 strategy_class =  'org.apache.cassandra.locator.SimpleStrategy' and 
 strategy_options:replication_factor=1);  
   res.next();
 } catch (SQLException e) {
 if (e.getMessage().startsWith(Keyspace does not exist)) 
 {
 res = stmt.executeQuery(CREATE KEYSPACE ks1 with 
 strategy_class =  'org.apache.cassandra.locator.SimpleStrategy' and 
 strategy_options:replication_factor=1);  
 } 
 }   
 connection.close();
 
 // Run Test
 connection = 
 DriverManager.getConnection(jdbc:cassandra:root/root@127.0.0.1:9160/ks1);   
   
 stmt = connection.createStatement();
 System.out.print(Running CREATE CF Statement);
 res = stmt.executeQuery(CREATE COLUMNFAMILY users (KEY varchar 
 PRIMARY KEY, password varchar, gender varchar, session_token varchar, state 
 varchar, birth_year bigint));
 colCount = res.getMetaData().getColumnCount();
 System.out.println( -- Column Count:  + colCount); 
 res.next();
 
 System.out.print(Running INSERT Statement);
 res = stmt.executeQuery(INSERT INTO users (KEY, password) VALUES 
 ('user1', 'ch@nge'));  
 colCount = res.getMetaData().getColumnCount();
 System.out.println( -- Column Count:  + colCount); 
 res.next();
 
 System.out.print(Running SELECT Statement);
 res = stmt.executeQuery(SELECT bar FROM users);  
 colCount = res.getMetaData().getColumnCount();
 System.out.println( -- Column Count:  + colCount); 
 res.getRow();
 res.next();
 
 connection.close();   
 } catch (SQLException e) {
 

svn commit: r1163688 - in /cassandra/trunk: ./ src/java/org/apache/cassandra/db/compaction/

2011-08-31 Thread jbellis
Author: jbellis
Date: Wed Aug 31 16:32:37 2011
New Revision: 1163688

URL: http://svn.apache.org/viewvc?rev=1163688view=rev
Log:
fix race that allowed multiple simultaneous leveled compaction tasks
patch by jbellis; reviewed by Ben Coverston for CASSANDRA-3087

Modified:
cassandra/trunk/CHANGES.txt

cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionManager.java

cassandra/trunk/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java

cassandra/trunk/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java

Modified: cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1163688r1=1163687r2=1163688view=diff
==
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Wed Aug 31 16:32:37 2011
@@ -44,7 +44,7 @@
Thrift-Avro conversion methods (CASSANDRA-3032)
  * Add timeouts to client request schedulers (CASSANDRA-3079)
  * Cli to use hashes rather than array of hashes for strategy options 
(CASSANDRA-3081)
- * LeveledCompactionStrategy (CASSANDRA-1608, 3085, 3110)
+ * LeveledCompactionStrategy (CASSANDRA-1608, 3085, 3110, 3087)
  * Improvements of the CLI `describe` command (CASSANDRA-2630)
  * reduce window where dropped CF sstables may not be deleted (CASSANDRA-2942)
  * Expose gossip/FD info to JMX (CASSANDRA-2806)

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionManager.java?rev=1163688r1=1163687r2=1163688view=diff
==
--- 
cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
 Wed Aug 31 16:32:37 2011
@@ -66,7 +66,17 @@ public class CompactionManager implement
 public static final String MBEAN_OBJECT_NAME = 
org.apache.cassandra.db:type=CompactionManager;
 private static final Logger logger = 
LoggerFactory.getLogger(CompactionManager.class);
 public static final CompactionManager instance;
-// acquire as read to perform a compaction, and as write to prevent 
compactions
+
+/**
+ * compactionLock has two purposes:
+ * - Compaction acquires its readLock so that multiple compactions can 
happen simultaneously,
+ *   but the KS/CF migtations acquire its writeLock, so they can be sure 
no new SSTables will
+ *   be created for a dropped CF posthumously.  (Thus, compaction checks 
CFS.isValid while the
+ *   lock is acquired.)
+ * - Special compactions will acquire writelock instead of readlock to 
make sure that all
+ *   other compaction activity is quiesced and they can grab ALL the 
sstables to do something.
+ *   TODO this is too big a hammer -- we should only care about quiescing 
all for the given CFS.
+ */
 private final ReentrantReadWriteLock compactionLock = new 
ReentrantReadWriteLock();
 
 static
@@ -143,7 +153,6 @@ public class CompactionManager implement
 {
 public Object call() throws IOException
 {
-// acquire the write lock to schedule all sstables
 compactionLock.writeLock().lock();
 try 
 {

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java?rev=1163688r1=1163687r2=1163688view=diff
==
--- 
cassandra/trunk/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java
 Wed Aug 31 16:32:37 2011
@@ -5,6 +5,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
@@ -12,7 +13,6 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor;
 import org.apache.cassandra.db.ColumnFamilyStore;
-import org.apache.cassandra.db.DataTracker;
 import org.apache.cassandra.io.sstable.SSTableReader;
 import org.apache.cassandra.notifications.INotification;
 import org.apache.cassandra.notifications.INotificationConsumer;
@@ -27,6 +27,7 @@ public class LeveledCompactionStrategy e
 private LeveledManifest manifest;
 private final String SSTABLE_SIZE_OPTION = sstable_size_in_mb;
 private final int maxSSTableSize;
+private final AtomicReferenceLeveledCompactionTask task = new 

[jira] [Created] (CASSANDRA-3112) Make repair fail when an unexpected error occurs

2011-08-31 Thread Sylvain Lebresne (JIRA)
Make repair fail when an unexpected error occurs


 Key: CASSANDRA-3112
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3112
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
Priority: Minor
 Fix For: 1.1


CASSANDRA-2433 makes it so that nodetool repair will fail if a node 
participating to repair dies before completing his part of the repair. This 
handles most of the situation where repair was previously hanging, but repair 
can still hang if an unexpected error occurs during either the merkle tree 
creation (an on-disk corruption triggers an IOError say) or during streaming 
(though I'm not sure what could make streaming failed outside of 'one of the 
node died' (besides a bug)).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-3112) Make repair fail when an unexpected error occurs

2011-08-31 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-3112:


Attachment: 
0004-Reports-validation-compaction-errors-back-to-repair-v4.patch
0003-Report-streaming-errors-back-to-repair-v4.patch

Attaching the 2 last patches from an initial version of CASSANDRA-2433 that 
were handling this. This will need to be rebased to current code though.

 Make repair fail when an unexpected error occurs
 

 Key: CASSANDRA-3112
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3112
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
Priority: Minor
  Labels: repair
 Fix For: 1.1

 Attachments: 0003-Report-streaming-errors-back-to-repair-v4.patch, 
 0004-Reports-validation-compaction-errors-back-to-repair-v4.patch


 CASSANDRA-2433 makes it so that nodetool repair will fail if a node 
 participating to repair dies before completing his part of the repair. This 
 handles most of the situation where repair was previously hanging, but repair 
 can still hang if an unexpected error occurs during either the merkle tree 
 creation (an on-disk corruption triggers an IOError say) or during streaming 
 (though I'm not sure what could make streaming failed outside of 'one of the 
 node died' (besides a bug)).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163691 - in /cassandra/trunk/src/java/org/apache/cassandra: cache/AutoSavingCache.java db/compaction/CompactionInfo.java db/compaction/CompactionIterable.java db/compaction/CompactionMan

2011-08-31 Thread jbellis
Author: jbellis
Date: Wed Aug 31 16:41:26 2011
New Revision: 1163691

URL: http://svn.apache.org/viewvc?rev=1163691view=rev
Log:
add CompactionInfo.id field
patch by Stu Hood; reviewed by jbellis for CASSANDRA-3107

Modified:
cassandra/trunk/src/java/org/apache/cassandra/cache/AutoSavingCache.java

cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java

cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionIterable.java

cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionManager.java

cassandra/trunk/src/java/org/apache/cassandra/db/index/SecondaryIndexBuilder.java

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/cache/AutoSavingCache.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cache/AutoSavingCache.java?rev=1163691r1=1163690r2=1163691view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/cache/AutoSavingCache.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cache/AutoSavingCache.java 
Wed Aug 31 16:41:26 2011
@@ -216,7 +216,8 @@ public abstract class AutoSavingCacheK,
 else
 type = CompactionType.UNKNOWN;
 
-info = new CompactionInfo(ksname,
+info = new CompactionInfo(this.hashCode(),
+  ksname,
   cfname,
   type,
   0,

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java?rev=1163691r1=1163690r2=1163691view=diff
==
--- 
cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java 
(original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java 
Wed Aug 31 16:41:26 2011
@@ -23,16 +23,18 @@ import java.io.Serializable;
 /** Implements serializable to allow structured info to be returned via JMX. */
 public final class CompactionInfo implements Serializable
 {
+private static final long serialVersionUID = 3695381572726744816L;
 
-
+private final int id;
 private final String ksname;
 private final String cfname;
 private final CompactionType tasktype;
 private final long bytesComplete;
 private final long totalBytes;
 
-public CompactionInfo(String ksname, String cfname, CompactionType 
tasktype, long bytesComplete, long totalBytes)
+public CompactionInfo(int id, String ksname, String cfname, CompactionType 
tasktype, long bytesComplete, long totalBytes)
 {
+this.id = id;
 this.ksname = ksname;
 this.cfname = cfname;
 this.tasktype = tasktype;
@@ -43,7 +45,12 @@ public final class CompactionInfo implem
 /** @return A copy of this CompactionInfo with updated progress. */
 public CompactionInfo forProgress(long bytesComplete, long totalBytes)
 {
-return new CompactionInfo(ksname, cfname, tasktype, bytesComplete, 
totalBytes);
+return new CompactionInfo(id, ksname, cfname, tasktype, bytesComplete, 
totalBytes);
+}
+
+public int getId()
+{
+return id;
 }
 
 public String getKeyspace()
@@ -74,7 +81,7 @@ public final class CompactionInfo implem
 public String toString()
 {
 StringBuilder buff = new StringBuilder();
-buff.append(getTaskType()).append('@').append(hashCode());
+buff.append(getTaskType()).append('@').append(id);
 buff.append('(').append(getKeyspace()).append(, 
).append(getColumnFamily());
 buff.append(, 
).append(getBytesComplete()).append('/').append(getTotalBytes());
 return buff.append(')').toString();

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionIterable.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionIterable.java?rev=1163691r1=1163690r2=1163691view=diff
==
--- 
cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionIterable.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionIterable.java
 Wed Aug 31 16:41:26 2011
@@ -88,7 +88,8 @@ implements IterableAbstractCompactedRow
 
 public CompactionInfo getCompactionInfo()
 {
-return new CompactionInfo(controller.getKeyspace(),
+return new CompactionInfo(this.hashCode(),
+  controller.getKeyspace(),
   controller.getColumnFamily(),
   type,
   bytesRead,

Modified: 

[jira] [Updated] (CASSANDRA-3106) getRangeToEndpointMap() method removed

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-3106:
--

Reviewer: brandon.williams

 getRangeToEndpointMap() method removed
 --

 Key: CASSANDRA-3106
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3106
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Affects Versions: 1.0
Reporter: Nick Bailey
Assignee: Nick Bailey
Priority: Minor
 Fix For: 1.0

 Attachments: 0001-Add-getRangeToEndpointMap-method-back.patch


 When getRangeToRPCAddress was added, getRangeToEndpointMap was removed, 
 however, both are useful. We should add it back.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-3003) Trunk single-pass streaming doesn't handle large row correctly

2011-08-31 Thread Yuki Morishita (JIRA)

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

Yuki Morishita updated CASSANDRA-3003:
--

Attachment: v3003-v4.txt

Added handling of counters inside SuperColumn.

 Trunk single-pass streaming doesn't handle large row correctly
 --

 Key: CASSANDRA-3003
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3003
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.0
Reporter: Sylvain Lebresne
Assignee: Yuki Morishita
Priority: Critical
  Labels: streaming
 Fix For: 1.0

 Attachments: 3003-v1.txt, 3003-v2.txt, 3003-v3.txt, v3003-v4.txt


 For normal column family, trunk streaming always buffer the whole row into 
 memory. In uses
 {noformat}
   ColumnFamily.serializer().deserializeColumns(in, cf, true, true);
 {noformat}
 on the input bytes.
 We must avoid this for rows that don't fit in the inMemoryLimit.
 Note that for regular column families, for a given row, there is actually no 
 need to even recreate the bloom filter of column index, nor to deserialize 
 the columns. It is enough to filter the key and row size to feed the index 
 writer, but then simply dump the rest on disk directly. This would make 
 streaming more efficient, avoid a lot of object creation and avoid the 
 pitfall of big rows.
 Counters column family are unfortunately trickier, because each column needs 
 to be deserialized (to mark them as 'fromRemote'). However, we don't need to 
 do the double pass of LazilyCompactedRow for that. We can simply use a 
 SSTableIdentityIterator and deserialize/reserialize input as it comes.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163695 - in /cassandra/branches/cassandra-0.8: CHANGES.txt src/java/org/apache/cassandra/db/marshal/ReversedType.java

2011-08-31 Thread slebresne
Author: slebresne
Date: Wed Aug 31 16:55:19 2011
New Revision: 1163695

URL: http://svn.apache.org/viewvc?rev=1163695view=rev
Log:
Fix handling of the empty byte buffer by ReversedType
patch by frousseau; reviewed by slebresne for CASSANDRA-3111

Modified:
cassandra/branches/cassandra-0.8/CHANGES.txt

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/ReversedType.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1163695r1=1163694r2=1163695view=diff
==
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Wed Aug 31 16:55:19 2011
@@ -48,6 +48,7 @@
  * make Range and Bounds objects client-safe (CASSANDRA-3108)
  * make repair report failure when a node participating dies (instead of
hanging forever) (CASSANDRA-2433)
+ * fix handling of the empty byte buffer by ReversedType (CASSANDRA-3111)
 
 
 0.8.4

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/ReversedType.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/ReversedType.java?rev=1163695r1=1163694r2=1163695view=diff
==
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/ReversedType.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/ReversedType.java
 Wed Aug 31 16:55:19 2011
@@ -59,6 +59,16 @@ public class ReversedTypeT extends Abs
 
 public int compare(ByteBuffer o1, ByteBuffer o2)
 {
+// An empty byte buffer is always smaller
+if (o1.remaining() == 0)
+{
+return o2.remaining() == 0 ? 0 : -1;
+}
+if (o2.remaining() == 0)
+{
+return 1;
+}
+
 return -baseType.compare(o1, o2);
 }
 




[jira] [Commented] (CASSANDRA-2034) Make Read Repair unnecessary when Hinted Handoff is enabled

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2034:
---

what messages is RemoveTest waiting for that are causing the problem?

 Make Read Repair unnecessary when Hinted Handoff is enabled
 ---

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

 Attachments: 2034-formatting.txt, 2034-v16.txt, 2034-v17.txt, 
 2034-v18.txt, 2034-v19-rebased.txt, 2034-v19.txt, 2034-v20.txt, 2034-v21.txt, 
 CASSANDRA-2034-trunk-v10.patch, CASSANDRA-2034-trunk-v11.patch, 
 CASSANDRA-2034-trunk-v11.patch, CASSANDRA-2034-trunk-v12.patch, 
 CASSANDRA-2034-trunk-v13.patch, CASSANDRA-2034-trunk-v14.patch, 
 CASSANDRA-2034-trunk-v15.patch, CASSANDRA-2034-trunk-v2.patch, 
 CASSANDRA-2034-trunk-v3.patch, CASSANDRA-2034-trunk-v4.patch, 
 CASSANDRA-2034-trunk-v5.patch, CASSANDRA-2034-trunk-v6.patch, 
 CASSANDRA-2034-trunk-v7.patch, CASSANDRA-2034-trunk-v8.patch, 
 CASSANDRA-2034-trunk-v9.patch, CASSANDRA-2034-trunk.patch

   Original Estimate: 8h
  Remaining Estimate: 8h

 Currently, HH is purely an optimization -- if a machine goes down, enabling 
 HH means RR/AES will have less work to do, but you can't disable RR entirely 
 in most situations since HH doesn't kick in until the FailureDetector does.
 Let's add a scheduled task to the mutate path, such that we return to the 
 client normally after ConsistencyLevel is achieved, but after RpcTimeout we 
 check the responseHandler write acks and write local hints for any missing 
 targets.
 This would making disabling RR when HH is enabled a much more reasonable 
 option, which has a huge impact on read throughput.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-2034) Make Read Repair unnecessary when Hinted Handoff is enabled

2011-08-31 Thread Patricio Echague (JIRA)

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

Patricio Echague commented on CASSANDRA-2034:
-

I fixed the test.

If I'm not wrong,

{code}
for (InetAddress host : hosts)
{
Message msg = new Message(host, 
StorageService.Verb.REPLICATION_FINISHED, new byte[0], 
MessagingService.version_);
MessagingService.instance().sendRR(msg, 
FBUtilities.getBroadcastAddress());
}
{code}

sends 5 messages but some of them (4) are caught by a local SinkManager 
implementation(for testing purposes) and not processed.
And since you added a wait for the callbacks to be processed before exiting, I 
had to add a force shutdown (for testing purposes) in order to make the test 
complete successfully. 


 Make Read Repair unnecessary when Hinted Handoff is enabled
 ---

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

 Attachments: 2034-formatting.txt, 2034-v16.txt, 2034-v17.txt, 
 2034-v18.txt, 2034-v19-rebased.txt, 2034-v19.txt, 2034-v20.txt, 2034-v21.txt, 
 CASSANDRA-2034-trunk-v10.patch, CASSANDRA-2034-trunk-v11.patch, 
 CASSANDRA-2034-trunk-v11.patch, CASSANDRA-2034-trunk-v12.patch, 
 CASSANDRA-2034-trunk-v13.patch, CASSANDRA-2034-trunk-v14.patch, 
 CASSANDRA-2034-trunk-v15.patch, CASSANDRA-2034-trunk-v2.patch, 
 CASSANDRA-2034-trunk-v3.patch, CASSANDRA-2034-trunk-v4.patch, 
 CASSANDRA-2034-trunk-v5.patch, CASSANDRA-2034-trunk-v6.patch, 
 CASSANDRA-2034-trunk-v7.patch, CASSANDRA-2034-trunk-v8.patch, 
 CASSANDRA-2034-trunk-v9.patch, CASSANDRA-2034-trunk.patch

   Original Estimate: 8h
  Remaining Estimate: 8h

 Currently, HH is purely an optimization -- if a machine goes down, enabling 
 HH means RR/AES will have less work to do, but you can't disable RR entirely 
 in most situations since HH doesn't kick in until the FailureDetector does.
 Let's add a scheduled task to the mutate path, such that we return to the 
 client normally after ConsistencyLevel is achieved, but after RpcTimeout we 
 check the responseHandler write acks and write local hints for any missing 
 targets.
 This would making disabling RR when HH is enabled a much more reasonable 
 option, which has a huge impact on read throughput.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3111) Bug in ReversedType comparator

2011-08-31 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-3111:
---

Integrated in Cassandra-0.8 #306 (See 
[https://builds.apache.org/job/Cassandra-0.8/306/])
Fix handling of the empty byte buffer by ReversedType
patch by frousseau; reviewed by slebresne for CASSANDRA-3111

slebresne : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1163695
Files : 
* /cassandra/branches/cassandra-0.8/CHANGES.txt
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/marshal/ReversedType.java


 Bug in ReversedType comparator
 --

 Key: CASSANDRA-3111
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3111
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.8.4
Reporter: Fabien Rousseau
Priority: Minor
 Fix For: 0.8.5

 Attachments: 001-CASSANDRA-3111.patch


 Scenario :
  * create a cf with a reversed comparator
  * insert a few columns in a row
  * try to read data with : SliceRange(start='', finish='', reversed=true)
  ** no data is returned, but some columns are expected
  * try to read data with : SliceRange(start='', finish='', reversed=false)
  ** if not flushed on disk : no data is returned

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (CASSANDRA-3113) Bundle sstableloader with the Debian package

2011-08-31 Thread Joaquin Casares (JIRA)
Bundle sstableloader with the Debian package


 Key: CASSANDRA-3113
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3113
 Project: Cassandra
  Issue Type: Improvement
Affects Versions: 0.8.1
Reporter: Joaquin Casares


Add sstableloader to /usr/bin/ along with the other Cassandra tools.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3107) CompactionInfo id is not stable

2011-08-31 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-3107:
---

Integrated in Cassandra #1061 (See 
[https://builds.apache.org/job/Cassandra/1061/])
add CompactionInfo.id field
patch by Stu Hood; reviewed by jbellis for CASSANDRA-3107

jbellis : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1163691
Files : 
* /cassandra/trunk/src/java/org/apache/cassandra/cache/AutoSavingCache.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionIterable.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/db/index/SecondaryIndexBuilder.java


 CompactionInfo id is not stable
 ---

 Key: CASSANDRA-3107
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3107
 Project: Cassandra
  Issue Type: Improvement
Reporter: Stu Hood
Assignee: Stu Hood
Priority: Minor
 Fix For: 1.0

 Attachments: 0001-Stable-id-for-CompactionInfo.txt


 The original intention of displaying the hashcode of the CompactionInfo for a 
 compaction was that it would be stable and unique for the lifetime of the 
 compaction. But at some point in the refactoring, we moved to 
 new-object-per-call, which means that the hashcode is not stable.
 Giving the CompactionInfo object an id field that can be generated from the 
 hashcode of the actual compaction task would solve this problem.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3087) Leveled compaction allows multiple simultaneous compaction Tasks

2011-08-31 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-3087:
---

Integrated in Cassandra #1061 (See 
[https://builds.apache.org/job/Cassandra/1061/])
fix race that allowed multiple simultaneous leveled compaction tasks
patch by jbellis; reviewed by Ben Coverston for CASSANDRA-3087

jbellis : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1163688
Files : 
* /cassandra/trunk/CHANGES.txt
* 
/cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java


 Leveled compaction allows multiple simultaneous compaction Tasks
 

 Key: CASSANDRA-3087
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3087
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 1.0
Reporter: Jonathan Ellis
Assignee: Jonathan Ellis
 Fix For: 1.0

 Attachments: 3087-v2.txt, 3087.txt


 CASSANDRA-1608 attempts to restrict itself to one compaction task per CF (see 
 discussion there for why this is necessary) by synchronizing 
 LCS.getBackgroundTasks but this is not sufficient.  Consider this sequence of 
 events:
 1. getBackgroundTasks returns a Task for compacting some L0 sstables.  this 
 Task is scheduled.
 2. Another SSTable for this CF is flushed, so 
 CompactionManager.submitBackground is called.  getBT is not currently 
 in-progress so the synchronization does not stop another Task from being 
 returned and scheduled.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3096) Test RoundRobinScheduler timeouts

2011-08-31 Thread Ryan King (JIRA)

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

Ryan King commented on CASSANDRA-3096:
--

looks good, +1

 Test RoundRobinScheduler timeouts
 -

 Key: CASSANDRA-3096
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3096
 Project: Cassandra
  Issue Type: Bug
  Components: API
Reporter: Stu Hood
Assignee: Stu Hood
 Fix For: 1.0

 Attachments: 
 0001-Properly-throw-timeouts-decrement-the-count-of-waiters.txt


 CASSANDRA-3079 was very hasty, and introduced two bugs that would: 1) cause 
 the scheduler to busywait after a timeout, 2) never actually throw timeouts. 
 This calls for a test.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163731 - in /cassandra/trunk: src/java/org/apache/cassandra/gms/Gossiper.java src/java/org/apache/cassandra/service/StorageService.java test/unit/org/apache/cassandra/service/RemoveTest.

2011-08-31 Thread jbellis
Author: jbellis
Date: Wed Aug 31 18:17:06 2011
New Revision: 1163731

URL: http://svn.apache.org/viewvc?rev=1163731view=rev
Log:
add delay parameter to removeToken so RemoveTest doesn't have to wait for full 
RING_DELAY
patch by jbellis

Modified:
cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java
cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
cassandra/trunk/test/unit/org/apache/cassandra/service/RemoveTest.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1163731r1=1163730r2=1163731view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java Wed Aug 31 
18:17:06 2011
@@ -362,8 +362,9 @@ public class Gossiper implements IFailur
  * @param endpoint - the endpoint being removed
  * @param token - the token being removed
  * @param mytoken - my own token for replication coordination
+ * @param delay
  */
-public void advertiseRemoving(InetAddress endpoint, Token token, Token 
mytoken)
+public void advertiseRemoving(InetAddress endpoint, Token token, Token 
mytoken, int delay)
 {
 EndpointState epState = endpointStateMap.get(endpoint);
 // remember this node's generation
@@ -372,7 +373,7 @@ public class Gossiper implements IFailur
 logger.info(Sleeping for  + StorageService.RING_DELAY + ms to 
ensure  + endpoint +  does not change);
 try
 {
-Thread.sleep(StorageService.RING_DELAY);
+Thread.sleep(delay);
 }
 catch (InterruptedException e)
 {

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=1163731r1=1163730r2=1163731view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
Wed Aug 31 18:17:06 2011
@@ -27,6 +27,7 @@ import java.net.UnknownHostException;
 import java.nio.ByteBuffer;
 import java.util.*;
 import java.util.concurrent.*;
+import javax.lang.model.type.TypeKind;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
@@ -2107,6 +2108,11 @@ public class StorageService implements I
  */
 public void removeToken(String tokenString)
 {
+removeToken(tokenString, RING_DELAY);
+}
+
+public void removeToken(String tokenString, int delay)
+{
 InetAddress myAddress = FBUtilities.getBroadcastAddress();
 Token localToken = tokenMetadata_.getToken(myAddress);
 Token token = partitioner.getTokenFactory().fromString(tokenString);
@@ -2153,7 +2159,7 @@ public class StorageService implements I
 calculatePendingRanges();
 // the gossiper will handle spoofing this node's state to 
REMOVING_TOKEN for us
 // we add our own token so other nodes to let us know when they're done
-Gossiper.instance.advertiseRemoving(endpoint, token, localToken);
+Gossiper.instance.advertiseRemoving(endpoint, token, localToken, 
delay);
 
 // kick off streaming commands
 restoreReplicaCount(endpoint, myAddress);

Modified: cassandra/trunk/test/unit/org/apache/cassandra/service/RemoveTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/service/RemoveTest.java?rev=1163731r1=1163730r2=1163731view=diff
==
--- cassandra/trunk/test/unit/org/apache/cassandra/service/RemoveTest.java 
(original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/service/RemoveTest.java Wed 
Aug 31 18:17:06 2011
@@ -124,7 +124,7 @@ public class RemoveTest extends CleanupH
 {
 try
 {
-ss.removeToken(token);
+ss.removeToken(token, 0);
 }
 catch (Exception e)
 {




[jira] [Commented] (CASSANDRA-3003) Trunk single-pass streaming doesn't handle large row correctly

2011-08-31 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-3003:
-

I think this is a little bit sad to deserialize all the columns in the 
non-counter case. We do need to do it right now because of the computation of 
the max timestamp, but maybe we could have the other side send use the max 
timestamp as part of the stream header (but I agree, it's a bit more 
complicated).

For the record, the handling of counter columns amounts to the initial 
proposition of Stu of moving the cleanup to the reads (though the solution is 
slightly different). So the we'll cleanup on each read before the sstable is 
compacted remark does hold here, but I don't see a better solution right now 
and the those sstables will likely be compacted quickly argument probably 
make this ok anyway.

Other comments:
* we need to use Integer.MIN_VALUE as the value for expireBefore when 
deserializing the columns, otherwise the expired columns will be converted to 
DeletedColumns, which will change there serialized size (and thus screw up the 
data size and column index)
* for markDeltaAsDeleted, we must check if the length is already negative and 
leave it so if it is, otherwise if a streamed sstable get re-streamed to 
another node before it was compacted, we could end up not cleaning the delta 
correctly.
* it would be nice in SSTW.appendFromStream() to assert the sanity of our 
little deserialize-reserialize dance and assert what we did write the number of 
bytes that we wrote in the header.
* the patch change a clearAllDelta to a markDeltaAsDeleted in CounterColumnTest 
which is bogus (and the test does fail with that change).
* I would markDeltaAsDeleted to markForClearingDelta as this describe what the 
function does better
* nitpick: there is a few space at end of lines in some comments (I know I 
know, I'm picky).


 Trunk single-pass streaming doesn't handle large row correctly
 --

 Key: CASSANDRA-3003
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3003
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 1.0
Reporter: Sylvain Lebresne
Assignee: Yuki Morishita
Priority: Critical
  Labels: streaming
 Fix For: 1.0

 Attachments: 3003-v1.txt, 3003-v2.txt, 3003-v3.txt, v3003-v4.txt


 For normal column family, trunk streaming always buffer the whole row into 
 memory. In uses
 {noformat}
   ColumnFamily.serializer().deserializeColumns(in, cf, true, true);
 {noformat}
 on the input bytes.
 We must avoid this for rows that don't fit in the inMemoryLimit.
 Note that for regular column families, for a given row, there is actually no 
 need to even recreate the bloom filter of column index, nor to deserialize 
 the columns. It is enough to filter the key and row size to feed the index 
 writer, but then simply dump the rest on disk directly. This would make 
 streaming more efficient, avoid a lot of object creation and avoid the 
 pitfall of big rows.
 Counters column family are unfortunately trickier, because each column needs 
 to be deserialized (to mark them as 'fromRemote'). However, we don't need to 
 do the double pass of LazilyCompactedRow for that. We can simply use a 
 SSTableIdentityIterator and deserialize/reserialize input as it comes.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-2434) node bootstrapping can violate consistency

2011-08-31 Thread paul cannon (JIRA)

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

paul cannon updated CASSANDRA-2434:
---

Attachment: 2434.patch.txt

This still needs some testing, but I'm putting it up now in case anyone has 
some time to take a look and make sure my approach is sane.

Adds an optional -n argument to nodetool join to allow bootstrapping from 
closest live node (n == non-strict). Also recognizes an optional property 
cassandra.join_strict which can be set to false when a bootstrap is triggered 
by cassandra.join_ring.

 node bootstrapping can violate consistency
 --

 Key: CASSANDRA-2434
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2434
 Project: Cassandra
  Issue Type: Bug
Reporter: Peter Schuller
Assignee: paul cannon
 Fix For: 1.1

 Attachments: 2434.patch.txt


 My reading (a while ago) of the code indicates that there is no logic 
 involved during bootstrapping that avoids consistency level violations. If I 
 recall correctly it just grabs neighbors that are currently up.
 There are at least two issues I have with this behavior:
 * If I have a cluster where I have applications relying on QUORUM with RF=3, 
 and bootstrapping complete based on only one node, I have just violated the 
 supposedly guaranteed consistency semantics of the cluster.
 * Nodes can flap up and down at any time, so even if a human takes care to 
 look at which nodes are up and things about it carefully before 
 bootstrapping, there's no guarantee.
 A complication is that not only does it depend on use-case where this is an 
 issue (if all you ever do you do at CL.ONE, it's fine); even in a cluster 
 which is otherwise used for QUORUM operations you may wish to accept 
 less-than-quorum nodes during bootstrap in various emergency situations.
 A potential easy fix is to have bootstrap take an argument which is the 
 number of hosts to bootstrap from, or to assume QUORUM if none is given.
 (A related concern is bootstrapping across data centers. You may *want* to 
 bootstrap to a local node and then do a repair to avoid sending loads of data 
 across DC:s while still achieving consistency. Or even if you don't care 
 about the consistency issues, I don't think there is currently a way to 
 bootstrap from local nodes only.)
 Thoughts?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163753 - in /cassandra/trunk: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/cql/ src/java/org/apache/cassandra/dht/ src/java/org/apache

2011-08-31 Thread jbellis
Author: jbellis
Date: Wed Aug 31 19:26:21 2011
New Revision: 1163753

URL: http://svn.apache.org/viewvc?rev=1163753view=rev
Log:
merge from 0.8

Modified:
cassandra/trunk/   (props changed)
cassandra/trunk/CHANGES.txt
cassandra/trunk/contrib/   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
   (props changed)
cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java
cassandra/trunk/src/java/org/apache/cassandra/dht/Bounds.java
cassandra/trunk/src/java/org/apache/cassandra/dht/Range.java

cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java
cassandra/trunk/src/java/org/apache/cassandra/service/ClientState.java
cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java
cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java

Propchange: cassandra/trunk/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 19:26:21 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7:1026516-1163266
+/cassandra/branches/cassandra-0.7:1026516-1163280
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
-/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1163272,1163677,1163695
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1163752
 /cassandra/branches/cassandra-0.8.0:1125021-1130369
 /cassandra/branches/cassandra-0.8.1:1101014-1125018
 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689

Modified: cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1163753r1=1163752r2=1163753view=diff
==
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Wed Aug 31 19:26:21 2011
@@ -99,6 +99,10 @@
  * make repair report failure when a node participating dies (instead of
hanging forever) (CASSANDRA-2433)
  * fix handling of the empty byte buffer by ReversedType (CASSANDRA-3111)
+ * Add validation that Keyspace names are case-insensitively unique 
(CASSANDRA-3066)
+ * catch invalid key_validation_class before instantiating UpdateColumnFamily 
(CASSANDRA-3102)
+ * make Range and Bounds objects client-safe (CASSANDRA-3108)
+ * optionally skip log4j configuration (CASSANDRA-3061)
 
 0.8.4
  * include files-to-be-streamed in StreamInSession.getSources (CASSANDRA-2972)

Propchange: cassandra/trunk/contrib/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 19:26:21 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
-/cassandra/branches/cassandra-0.7/contrib:1026516-1163266
+/cassandra/branches/cassandra-0.7/contrib:1026516-1163280
 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
-/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1163272,1163677,1163695
+/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1163752
 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018
 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 19:26:21 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1163266
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1163280
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1163272,1163677,1163695
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1163752
 

buildbot failure in ASF Buildbot on cassandra-trunk

2011-08-31 Thread buildbot
The Buildbot has detected a new failure on builder cassandra-trunk while 
building ASF Buildbot.
Full details are available at:
 http://ci.apache.org/builders/cassandra-trunk/builds/1583

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

Buildslave for this Build: isis_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch cassandra/trunk] 1163753
Blamelist: jbellis

BUILD FAILED: failed compile

sincerely,
 -The Buildbot



[jira] [Reopened] (CASSANDRA-3076) AssertionError in new GCInspector log

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis reopened CASSANDRA-3076:
---


Still seeing this post-patch in trunk:

{noformat}
[junit] ERROR 14:23:17,606 Fatal exception in thread 
Thread[ScheduledTasks:1,5,main]
[junit] java.lang.ArithmeticException: / by zero
[junit] at 
org.apache.cassandra.service.GCInspector.logGCResults(GCInspector.java:119)
[junit] at 
org.apache.cassandra.service.GCInspector.access$000(GCInspector.java:41)
[junit] at 
org.apache.cassandra.service.GCInspector$1.run(GCInspector.java:85)
[junit] at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
[junit] at 
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
[junit] at 
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
[junit] at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
[junit] at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
[junit] at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
[junit] at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[junit] at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[junit] at java.lang.Thread.run(Thread.java:680)
{noformat}

 AssertionError in new GCInspector log
 -

 Key: CASSANDRA-3076
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3076
 Project: Cassandra
  Issue Type: Bug
 Environment: Lion OSX
Reporter: T Jake Luciani
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.7.9, 0.8.5

 Attachments: 3076.txt


 Small regression from CASSANDRA-2868

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163759 - /cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java

2011-08-31 Thread jbellis
Author: jbellis
Date: Wed Aug 31 19:31:39 2011
New Revision: 1163759

URL: http://svn.apache.org/viewvc?rev=1163759view=rev
Log:
fix merge

Modified:
cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java?rev=1163759r1=1163758r2=1163759view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java 
Wed Aug 31 19:31:39 2011
@@ -725,7 +725,7 @@ public class ThriftValidation
 // keyspace names must be unique case-insensitively because the 
keyspace name becomes the directory
 // where we store CF sstables.  Names that differ only in case would 
thus cause problems on
 // case-insensitive filesystems (NTFS, most installations of HFS+).
-for (String ksName : DatabaseDescriptor.getTables())
+for (String ksName : Schema.instance.getTables())
 {
 if (ksName.equalsIgnoreCase(newKsName))
 throw new InvalidRequestException(Keyspace names must be 
case-insensitively unique);




[jira] [Commented] (CASSANDRA-2434) node bootstrapping can violate consistency

2011-08-31 Thread Nick Bailey (JIRA)

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

Nick Bailey commented on CASSANDRA-2434:


Seems to me like the option to stream from the closest replica might just add 
more confusion without really gaining anything. The node that is leaving the 
replica set will never be in another datacenter. It could be on a different 
rack, but if you are following best practices and alternating racks then it is 
likely either on the same rack or there is only one copy on that rack and the 
best case possible is streaming from another rack anyway.

 node bootstrapping can violate consistency
 --

 Key: CASSANDRA-2434
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2434
 Project: Cassandra
  Issue Type: Bug
Reporter: Peter Schuller
Assignee: paul cannon
 Fix For: 1.1

 Attachments: 2434.patch.txt


 My reading (a while ago) of the code indicates that there is no logic 
 involved during bootstrapping that avoids consistency level violations. If I 
 recall correctly it just grabs neighbors that are currently up.
 There are at least two issues I have with this behavior:
 * If I have a cluster where I have applications relying on QUORUM with RF=3, 
 and bootstrapping complete based on only one node, I have just violated the 
 supposedly guaranteed consistency semantics of the cluster.
 * Nodes can flap up and down at any time, so even if a human takes care to 
 look at which nodes are up and things about it carefully before 
 bootstrapping, there's no guarantee.
 A complication is that not only does it depend on use-case where this is an 
 issue (if all you ever do you do at CL.ONE, it's fine); even in a cluster 
 which is otherwise used for QUORUM operations you may wish to accept 
 less-than-quorum nodes during bootstrap in various emergency situations.
 A potential easy fix is to have bootstrap take an argument which is the 
 number of hosts to bootstrap from, or to assume QUORUM if none is given.
 (A related concern is bootstrapping across data centers. You may *want* to 
 bootstrap to a local node and then do a repair to avoid sending loads of data 
 across DC:s while still achieving consistency. Or even if you don't care 
 about the consistency issues, I don't think there is currently a way to 
 bootstrap from local nodes only.)
 Thoughts?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




buildbot success in ASF Buildbot on cassandra-trunk

2011-08-31 Thread buildbot
The Buildbot has detected a restored build on builder cassandra-trunk while 
building ASF Buildbot.
Full details are available at:
 http://ci.apache.org/builders/cassandra-trunk/builds/1584

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

Buildslave for this Build: isis_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch cassandra/trunk] 1163759
Blamelist: jbellis

Build succeeded!

sincerely,
 -The Buildbot



[jira] [Commented] (CASSANDRA-3061) Optionally skip log4j configuration

2011-08-31 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-3061:
---

Integrated in Cassandra-0.8 #307 (See 
[https://builds.apache.org/job/Cassandra-0.8/307/])
Optionally skip log4j configuration
Patch by tjake; reviewed by Aaron Morton for CASSANDRA-3061

jake : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1163736
Files : 
* /cassandra/branches/cassandra-0.8/CHANGES.txt
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java


 Optionally skip log4j configuration
 ---

 Key: CASSANDRA-3061
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3061
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Affects Versions: 0.8.4
Reporter: Aaron Morton
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.8.5

 Attachments: 0001-3061.patch, 3061_v2.txt


 from this thread 
 http://groups.google.com/group/brisk-users/browse_thread/thread/3a18f4679673bea8
 When brisk accesses cassandra classes inside of a Hadoop Task JVM the 
 AbstractCassandraDaemon uses a log4j PropertyConfigurator to setup cassandra 
 logging. This closes all the existing appenders, including the 
 TaskLogAppender for the hadoop task. They are not opened again because they 
 are not in the config. 
 log4j has Logger Repositories to handle multiple configs in the same process, 
 but there is a bit of suck involved in making a RepositorySelector. 
 Two examples...
 http://www.mail-archive.com/log4j-dev@jakarta.apache.org/msg02972.html
 http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/4.2/html/Getting_Started_Guide/logging.log4j.reposelect.html
 Basically all the selector has access to thread local storage, and it looks 
 like normally people get the class loader from the current thread. A thread 
 will inherit it's class loader from the thread that created it, unless 
 otherwise specified. 
 We have code in the same thread the uses hadoop and cassandra classes, so 
 this could be a dead end.  
 As a work around i've added cassandra.log4j.configure JVM param and made the 
 AbstractCassandraServer skip the log4j config if it's false. My job completes 
 and I can see the cassandra code logging an extra message I put in into the 
 Hadoop task log file...
 2011-08-19 15:56:06,442 WARN 
 org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Metrics system not 
 started: Cannot locate configuration: tried 
 hadoop-metrics2-maptask.properties, hadoop-metrics2.properties
 2011-08-19 15:56:06,776 INFO 
 org.apache.cassandra.service.AbstractCassandraDaemon: Logging initialized 
 externally
 2011-08-19 15:56:07,332 INFO org.apache.hadoop.mapred.MapTask: 
 numReduceTasks: 0
  
 The param has to be passed to the task JVM, so need to modify Haddop 
 mapred-site.xml as follows 
 property
   namemapred.child.java.opts/name
   value-Xmx256m -Dcassandra.log4j.configure=false/value
   description
 Tune your mapred jvm arguments for best performance. 
 Also see documentation from jvm vendor.
   /description
 /property
 It's not pretty but it works. In my extra log4j logging I can see the second 
 reset() call is gone.  
 Change the to Hadoop TaskLogAppender also stops the NPE but there may also be 
 some lost log messages 
 https://issues.apache.org/jira/browse/HADOOP-7556

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163762 - /cassandra/trunk/NEWS.txt

2011-08-31 Thread jbellis
Author: jbellis
Date: Wed Aug 31 19:41:51 2011
New Revision: 1163762

URL: http://svn.apache.org/viewvc?rev=1163762view=rev
Log:
update NEWS for #2034

Modified:
cassandra/trunk/NEWS.txt

Modified: cassandra/trunk/NEWS.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/NEWS.txt?rev=1163762r1=1163761r2=1163762view=diff
==
--- cassandra/trunk/NEWS.txt (original)
+++ cassandra/trunk/NEWS.txt Wed Aug 31 19:41:51 2011
@@ -19,6 +19,12 @@ Features
   Leveled compaction means you only need to keep a few MB of space free 
for 
   compaction instead of (in the worst case) 50%.
 - Windows Service (cassandra.bat install to enable)
+- Hinted Handoff has two major improvements:
+- Hint replay is much more efficient thanks to a change in the data 
model
+- Hints are created for all replicas that do not ack a write.  
(Formerly,
+  only replicas known to be down when the write started were hinted.)
+  This means that running with read repair completely off is much more
+  viable than before.
 
 Other
 -




[jira] [Updated] (CASSANDRA-3076) AssertionError in new GCInspector log

2011-08-31 Thread T Jake Luciani (JIRA)

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

T Jake Luciani updated CASSANDRA-3076:
--

Attachment: v1-0001-CASSANDRA-3076-avoid-div-by-zero.txt

 AssertionError in new GCInspector log
 -

 Key: CASSANDRA-3076
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3076
 Project: Cassandra
  Issue Type: Bug
 Environment: Lion OSX
Reporter: T Jake Luciani
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.7.9, 0.8.5

 Attachments: 3076.txt, v1-0001-CASSANDRA-3076-avoid-div-by-zero.txt


 Small regression from CASSANDRA-2868

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3076) AssertionError in new GCInspector log

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-3076:
---

+1 new patch

 AssertionError in new GCInspector log
 -

 Key: CASSANDRA-3076
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3076
 Project: Cassandra
  Issue Type: Bug
 Environment: Lion OSX
Reporter: T Jake Luciani
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.7.9, 0.8.5

 Attachments: 3076.txt, v1-0001-CASSANDRA-3076-avoid-div-by-zero.txt


 Small regression from CASSANDRA-2868

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163772 - in /cassandra/trunk/src/java/org/apache/cassandra/service: StorageService.java StorageServiceMBean.java

2011-08-31 Thread brandonwilliams
Author: brandonwilliams
Date: Wed Aug 31 19:57:17 2011
New Revision: 1163772

URL: http://svn.apache.org/viewvc?rev=1163772view=rev
Log:
Restore getRangeToEndpointMap.
Patch by Nick Bailey, reviewed by brandonwilliams for CASSANDRA-3106

Modified:
cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java

cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=1163772r1=1163771r2=1163772view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
Wed Aug 31 19:57:17 2011
@@ -161,7 +161,7 @@ public class StorageService implements I
 
 private IPartitioner partitioner = DatabaseDescriptor.getPartitioner();
 public VersionedValue.VersionedValueFactory valueFactory = new 
VersionedValue.VersionedValueFactory(partitioner);
-
+
 public static final StorageService instance = new StorageService();
 
 public static IPartitioner getPartitioner()
@@ -249,7 +249,7 @@ public class StorageService implements I
 
MessagingService.instance().registerVerbHandlers(Verb.GOSSIP_DIGEST_SYN, new 
GossipDigestSynVerbHandler());
 
MessagingService.instance().registerVerbHandlers(Verb.GOSSIP_DIGEST_ACK, new 
GossipDigestAckVerbHandler());
 
MessagingService.instance().registerVerbHandlers(Verb.GOSSIP_DIGEST_ACK2, new 
GossipDigestAck2VerbHandler());
-
+
 
MessagingService.instance().registerVerbHandlers(Verb.DEFINITIONS_UPDATE, new 
DefinitionsUpdateVerbHandler());
 MessagingService.instance().registerVerbHandlers(Verb.TRUNCATE, new 
TruncateVerbHandler());
 MessagingService.instance().registerVerbHandlers(Verb.SCHEMA_CHECK, 
new SchemaCheckVerbHandler());
@@ -325,10 +325,10 @@ public class StorageService implements I
 try { Thread.sleep(1000L); } catch (InterruptedException e) {}
 StageManager.shutdownNow();
 }
-
-public boolean isInitialized() 
-{ 
-return initialized; 
+
+public boolean isInitialized()
+{
+return initialized;
 }
 
 public synchronized void initClient() throws IOException, 
ConfigurationException
@@ -351,7 +351,7 @@ public class StorageService implements I
 Gossiper.instance.register(this);
 Gossiper.instance.start((int)(System.currentTimeMillis() / 1000)); // 
needed for node-ring gathering.
 MessagingService.instance().listen(FBUtilities.getLocalAddress());
-
+
 // sleep a while to allow gossip to warm up (the other nodes need to 
know about this one before they can reply).
 try
 {
@@ -597,6 +597,27 @@ public class StorageService implements I
 }
 
 /**
+ * for a keyspace, return the ranges and corresponding listen addresses.
+ * @param keyspace
+ * @return
+ */
+public MapRange, ListString getRangeToEndpointMap(String keyspace)
+{
+// some people just want to get a visual representation of things. 
Allow null and set it to the first
+// non-system table.
+if (keyspace == null)
+keyspace = Schema.instance.getNonSystemTables().get(0);
+
+/* All the ranges for the tokens */
+MapRange, ListString map = new HashMapRange, ListString();
+for (Map.EntryRange,ListInetAddress entry : 
getRangeToAddressMap(keyspace).entrySet())
+{
+map.put(entry.getKey(), stringify(entry.getValue()));
+}
+return map;
+}
+
+/**
  * for a keyspace, return the ranges and corresponding RPC addresses for a 
given keyspace.
  * @param keyspace
  * @return
@@ -686,7 +707,7 @@ public class StorageService implements I
  * the token associated with an endpoint, and knowing its operation mode. 
Nodes can start in either bootstrap or
  * normal mode, and from bootstrap mode can change mode to normal. A node 
in bootstrap mode needs to have
  * pendingranges set in TokenMetadata; a node in normal mode should 
instead be part of the token ring.
- * 
+ *
  * Normal progression of ApplicationState.STATUS values for a node should 
be like this:
  * STATUS_BOOTSTRAPPING,token
  *   if bootstrapping. stays this way until all files are received.
@@ -1091,7 +1112,7 @@ public class StorageService implements I
  * @param ranges the ranges to find sources for
  * @return multimap of addresses to ranges the address is responsible for
  */
-private MultimapInetAddress, Range getNewSourceRanges(String table, 
SetRange ranges) 
+private MultimapInetAddress, Range getNewSourceRanges(String table, 
SetRange ranges)
 {
 InetAddress 

[jira] [Commented] (CASSANDRA-2434) node bootstrapping can violate consistency

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2434:
---

bq. what about the case where the node leaving the replica set is dead

Good point.  We do need something to make that possible.

 node bootstrapping can violate consistency
 --

 Key: CASSANDRA-2434
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2434
 Project: Cassandra
  Issue Type: Bug
Reporter: Peter Schuller
Assignee: paul cannon
 Fix For: 1.1

 Attachments: 2434.patch.txt


 My reading (a while ago) of the code indicates that there is no logic 
 involved during bootstrapping that avoids consistency level violations. If I 
 recall correctly it just grabs neighbors that are currently up.
 There are at least two issues I have with this behavior:
 * If I have a cluster where I have applications relying on QUORUM with RF=3, 
 and bootstrapping complete based on only one node, I have just violated the 
 supposedly guaranteed consistency semantics of the cluster.
 * Nodes can flap up and down at any time, so even if a human takes care to 
 look at which nodes are up and things about it carefully before 
 bootstrapping, there's no guarantee.
 A complication is that not only does it depend on use-case where this is an 
 issue (if all you ever do you do at CL.ONE, it's fine); even in a cluster 
 which is otherwise used for QUORUM operations you may wish to accept 
 less-than-quorum nodes during bootstrap in various emergency situations.
 A potential easy fix is to have bootstrap take an argument which is the 
 number of hosts to bootstrap from, or to assume QUORUM if none is given.
 (A related concern is bootstrapping across data centers. You may *want* to 
 bootstrap to a local node and then do a repair to avoid sending loads of data 
 across DC:s while still achieving consistency. Or even if you don't care 
 about the consistency issues, I don't think there is currently a way to 
 bootstrap from local nodes only.)
 Thoughts?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-2434) node bootstrapping can violate consistency

2011-08-31 Thread paul cannon (JIRA)

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

paul cannon commented on CASSANDRA-2434:


Judging by the irc channel and user list, assuming people will follow best 
practices seems a bit of a dead end. Plus, what about the case where the node 
leaving the replica set is dead? You still want the option to allow choosing 
another to stream from. And we probably shouldn't default to choosing another 
without explicit permission, because of the consistency violation stuff.

 node bootstrapping can violate consistency
 --

 Key: CASSANDRA-2434
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2434
 Project: Cassandra
  Issue Type: Bug
Reporter: Peter Schuller
Assignee: paul cannon
 Fix For: 1.1

 Attachments: 2434.patch.txt


 My reading (a while ago) of the code indicates that there is no logic 
 involved during bootstrapping that avoids consistency level violations. If I 
 recall correctly it just grabs neighbors that are currently up.
 There are at least two issues I have with this behavior:
 * If I have a cluster where I have applications relying on QUORUM with RF=3, 
 and bootstrapping complete based on only one node, I have just violated the 
 supposedly guaranteed consistency semantics of the cluster.
 * Nodes can flap up and down at any time, so even if a human takes care to 
 look at which nodes are up and things about it carefully before 
 bootstrapping, there's no guarantee.
 A complication is that not only does it depend on use-case where this is an 
 issue (if all you ever do you do at CL.ONE, it's fine); even in a cluster 
 which is otherwise used for QUORUM operations you may wish to accept 
 less-than-quorum nodes during bootstrap in various emergency situations.
 A potential easy fix is to have bootstrap take an argument which is the 
 number of hosts to bootstrap from, or to assume QUORUM if none is given.
 (A related concern is bootstrapping across data centers. You may *want* to 
 bootstrap to a local node and then do a repair to avoid sending loads of data 
 across DC:s while still achieving consistency. Or even if you don't care 
 about the consistency issues, I don't think there is currently a way to 
 bootstrap from local nodes only.)
 Thoughts?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-2434) node bootstrapping can violate consistency

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2434:
---

bq. The node that is leaving the replica set will never be in another datacenter

I think that's only strictly true for NTS, but I'm fine leaving it out.  Not 
worth adding complexity for ONTS at this point.

 node bootstrapping can violate consistency
 --

 Key: CASSANDRA-2434
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2434
 Project: Cassandra
  Issue Type: Bug
Reporter: Peter Schuller
Assignee: paul cannon
 Fix For: 1.1

 Attachments: 2434.patch.txt


 My reading (a while ago) of the code indicates that there is no logic 
 involved during bootstrapping that avoids consistency level violations. If I 
 recall correctly it just grabs neighbors that are currently up.
 There are at least two issues I have with this behavior:
 * If I have a cluster where I have applications relying on QUORUM with RF=3, 
 and bootstrapping complete based on only one node, I have just violated the 
 supposedly guaranteed consistency semantics of the cluster.
 * Nodes can flap up and down at any time, so even if a human takes care to 
 look at which nodes are up and things about it carefully before 
 bootstrapping, there's no guarantee.
 A complication is that not only does it depend on use-case where this is an 
 issue (if all you ever do you do at CL.ONE, it's fine); even in a cluster 
 which is otherwise used for QUORUM operations you may wish to accept 
 less-than-quorum nodes during bootstrap in various emergency situations.
 A potential easy fix is to have bootstrap take an argument which is the 
 number of hosts to bootstrap from, or to assume QUORUM if none is given.
 (A related concern is bootstrapping across data centers. You may *want* to 
 bootstrap to a local node and then do a repair to avoid sending loads of data 
 across DC:s while still achieving consistency. Or even if you don't care 
 about the consistency issues, I don't think there is currently a way to 
 bootstrap from local nodes only.)
 Thoughts?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-2434) node bootstrapping can violate consistency

2011-08-31 Thread Nick Bailey (JIRA)

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

Nick Bailey commented on CASSANDRA-2434:


Yeah I was assuming ONTS is basically deprecated at this point. Didn't think 
about the dead case though. I suppose just a 'force' type of option and a 
warning indicating the possible consistency issues works.

 node bootstrapping can violate consistency
 --

 Key: CASSANDRA-2434
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2434
 Project: Cassandra
  Issue Type: Bug
Reporter: Peter Schuller
Assignee: paul cannon
 Fix For: 1.1

 Attachments: 2434.patch.txt


 My reading (a while ago) of the code indicates that there is no logic 
 involved during bootstrapping that avoids consistency level violations. If I 
 recall correctly it just grabs neighbors that are currently up.
 There are at least two issues I have with this behavior:
 * If I have a cluster where I have applications relying on QUORUM with RF=3, 
 and bootstrapping complete based on only one node, I have just violated the 
 supposedly guaranteed consistency semantics of the cluster.
 * Nodes can flap up and down at any time, so even if a human takes care to 
 look at which nodes are up and things about it carefully before 
 bootstrapping, there's no guarantee.
 A complication is that not only does it depend on use-case where this is an 
 issue (if all you ever do you do at CL.ONE, it's fine); even in a cluster 
 which is otherwise used for QUORUM operations you may wish to accept 
 less-than-quorum nodes during bootstrap in various emergency situations.
 A potential easy fix is to have bootstrap take an argument which is the 
 number of hosts to bootstrap from, or to assume QUORUM if none is given.
 (A related concern is bootstrapping across data centers. You may *want* to 
 bootstrap to a local node and then do a repair to avoid sending loads of data 
 across DC:s while still achieving consistency. Or even if you don't care 
 about the consistency issues, I don't think there is currently a way to 
 bootstrap from local nodes only.)
 Thoughts?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-2434) node bootstrapping can violate consistency

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2434:
---

As long as we need to handle the dead case I don't see any harm in having a 
slightly more generally-useful use closest option instead of force to pick 
random live replica option.

 node bootstrapping can violate consistency
 --

 Key: CASSANDRA-2434
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2434
 Project: Cassandra
  Issue Type: Bug
Reporter: Peter Schuller
Assignee: paul cannon
 Fix For: 1.1

 Attachments: 2434.patch.txt


 My reading (a while ago) of the code indicates that there is no logic 
 involved during bootstrapping that avoids consistency level violations. If I 
 recall correctly it just grabs neighbors that are currently up.
 There are at least two issues I have with this behavior:
 * If I have a cluster where I have applications relying on QUORUM with RF=3, 
 and bootstrapping complete based on only one node, I have just violated the 
 supposedly guaranteed consistency semantics of the cluster.
 * Nodes can flap up and down at any time, so even if a human takes care to 
 look at which nodes are up and things about it carefully before 
 bootstrapping, there's no guarantee.
 A complication is that not only does it depend on use-case where this is an 
 issue (if all you ever do you do at CL.ONE, it's fine); even in a cluster 
 which is otherwise used for QUORUM operations you may wish to accept 
 less-than-quorum nodes during bootstrap in various emergency situations.
 A potential easy fix is to have bootstrap take an argument which is the 
 number of hosts to bootstrap from, or to assume QUORUM if none is given.
 (A related concern is bootstrapping across data centers. You may *want* to 
 bootstrap to a local node and then do a repair to avoid sending loads of data 
 across DC:s while still achieving consistency. Or even if you don't care 
 about the consistency issues, I don't think there is currently a way to 
 bootstrap from local nodes only.)
 Thoughts?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163782 - /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java

2011-08-31 Thread jake
Author: jake
Date: Wed Aug 31 20:04:51 2011
New Revision: 1163782

URL: http://svn.apache.org/viewvc?rev=1163782view=rev
Log:
Fix div by zero error take two
patch by tjake; reviewed by jbellis for CASSANDRA-3076

Modified:

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java?rev=1163782r1=1163781r2=1163782view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/GCInspector.java
 Wed Aug 31 20:04:51 2011
@@ -103,10 +103,12 @@ public class GCInspector
 
 Long previousCount = gccounts.get(gc.getName());
 Long count = gc.getCollectionCount();
-if (count == 0)
-continue;
+
 if (previousCount == null)
-previousCount = 0L;
+previousCount = 0L;   
+if (count == previousCount)
+continue;
+
 gccounts.put(gc.getName(), count);
 
 MemoryUsage mu = membean.getHeapMemoryUsage();




svn commit: r1163783 - in /cassandra/branches/cassandra-0.8: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/service/

2011-08-31 Thread jake
Author: jake
Date: Wed Aug 31 20:05:50 2011
New Revision: 1163783

URL: http://svn.apache.org/viewvc?rev=1163783view=rev
Log:
merge from 0.7

Modified:
cassandra/branches/cassandra-0.8/   (props changed)
cassandra/branches/cassandra-0.8/contrib/   (props changed)

cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
   (props changed)

cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
   (props changed)

cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
   (props changed)

cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
   (props changed)

cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
   (props changed)

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/GCInspector.java

Propchange: cassandra/branches/cassandra-0.8/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 20:05:50 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7:1026516-1163280
+/cassandra/branches/cassandra-0.7:1026516-1163782
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
 /cassandra/branches/cassandra-0.8:1090934-1125013,1125041
 /cassandra/branches/cassandra-0.8.0:1125021-1130369

Propchange: cassandra/branches/cassandra-0.8/contrib/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 20:05:50 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
-/cassandra/branches/cassandra-0.7/contrib:1026516-1163280
+/cassandra/branches/cassandra-0.7/contrib:1026516-1163782
 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
 /cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125041
 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369

Propchange: 
cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 20:05:50 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1163280
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1163782
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
 
/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125041
 
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369

Propchange: 
cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 20:05:50 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1163280
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1163782
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
 
/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125041
 
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1125021-1130369

Propchange: 
cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 20:05:50 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1163280

[jira] [Resolved] (CASSANDRA-3076) AssertionError in new GCInspector log

2011-08-31 Thread T Jake Luciani (JIRA)

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

T Jake Luciani resolved CASSANDRA-3076.
---

Resolution: Fixed

committed 

 AssertionError in new GCInspector log
 -

 Key: CASSANDRA-3076
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3076
 Project: Cassandra
  Issue Type: Bug
 Environment: Lion OSX
Reporter: T Jake Luciani
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.7.9, 0.8.5

 Attachments: 3076.txt, v1-0001-CASSANDRA-3076-avoid-div-by-zero.txt


 Small regression from CASSANDRA-2868

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163784 - in /cassandra/trunk: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/service/

2011-08-31 Thread jake
Author: jake
Date: Wed Aug 31 20:06:43 2011
New Revision: 1163784

URL: http://svn.apache.org/viewvc?rev=1163784view=rev
Log:
merge from 0.8

Modified:
cassandra/trunk/   (props changed)
cassandra/trunk/contrib/   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
   (props changed)

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
   (props changed)
cassandra/trunk/src/java/org/apache/cassandra/service/GCInspector.java

Propchange: cassandra/trunk/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 20:06:43 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7:1026516-1163280
+/cassandra/branches/cassandra-0.7:1026516-1163782
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
-/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1163752
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1163783
 /cassandra/branches/cassandra-0.8.0:1125021-1130369
 /cassandra/branches/cassandra-0.8.1:1101014-1125018
 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689

Propchange: cassandra/trunk/contrib/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 20:06:43 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
-/cassandra/branches/cassandra-0.7/contrib:1026516-1163280
+/cassandra/branches/cassandra-0.7/contrib:1026516-1163782
 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
-/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1163752
+/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1163783
 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018
 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 20:06:43 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1163280
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1163782
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1163752
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1163783
 
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369
 
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1101014-1125018
 
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 31 20:06:43 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1163280
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1163782
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1163752
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1163783
 

[jira] [Commented] (CASSANDRA-2434) node bootstrapping can violate consistency

2011-08-31 Thread Nick Bailey (JIRA)

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

Nick Bailey commented on CASSANDRA-2434:


Well, I imagine the 'force' option would pick the nearest live node. By 'force' 
I mean the option should be posed to the user as We can't guarantee 
consistency in your cluster after this bootstrap since a node is down, if you 
would like to do this anyway, specify option X. Just saying you can either 
bootstrap or bootstrap from the closest node doesn't convey the implications as 
well I don't think.

Maybe we are on the same page and arguing over wording though.

 node bootstrapping can violate consistency
 --

 Key: CASSANDRA-2434
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2434
 Project: Cassandra
  Issue Type: Bug
Reporter: Peter Schuller
Assignee: paul cannon
 Fix For: 1.1

 Attachments: 2434.patch.txt


 My reading (a while ago) of the code indicates that there is no logic 
 involved during bootstrapping that avoids consistency level violations. If I 
 recall correctly it just grabs neighbors that are currently up.
 There are at least two issues I have with this behavior:
 * If I have a cluster where I have applications relying on QUORUM with RF=3, 
 and bootstrapping complete based on only one node, I have just violated the 
 supposedly guaranteed consistency semantics of the cluster.
 * Nodes can flap up and down at any time, so even if a human takes care to 
 look at which nodes are up and things about it carefully before 
 bootstrapping, there's no guarantee.
 A complication is that not only does it depend on use-case where this is an 
 issue (if all you ever do you do at CL.ONE, it's fine); even in a cluster 
 which is otherwise used for QUORUM operations you may wish to accept 
 less-than-quorum nodes during bootstrap in various emergency situations.
 A potential easy fix is to have bootstrap take an argument which is the 
 number of hosts to bootstrap from, or to assume QUORUM if none is given.
 (A related concern is bootstrapping across data centers. You may *want* to 
 bootstrap to a local node and then do a repair to avoid sending loads of data 
 across DC:s while still achieving consistency. Or even if you don't care 
 about the consistency issues, I don't think there is currently a way to 
 bootstrap from local nodes only.)
 Thoughts?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163795 - in /cassandra/branches/cassandra-0.7: CHANGES.txt debian/changelog

2011-08-31 Thread eevans
Author: eevans
Date: Wed Aug 31 20:20:36 2011
New Revision: 1163795

URL: http://svn.apache.org/viewvc?rev=1163795view=rev
Log:
update changelogs for 0.7.9 re-roll

Modified:
cassandra/branches/cassandra-0.7/CHANGES.txt
cassandra/branches/cassandra-0.7/debian/changelog

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1163795r1=1163794r2=1163795view=diff
==
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Wed Aug 31 20:20:36 2011
@@ -1,7 +1,3 @@
-0.7.10
- * fix UnavailableException with writes at CL.EACH_QUORM (CASSANDRA-3084)
-
-
 0.7.9
  * don't include tmp files as sstable when create cfs (CASSANDRA-2929)
  * log Java classpath on startup (CASSANDRA-2895)
@@ -14,6 +10,7 @@
  * remove gossip state when a new IP takes over a token (CASSANDRA-3071)
  * work around native memory leak in com.sun.management.GarbageCollectorMXBean
(CASSANDRA-2868, 3076)
+ * fix UnavailableException with writes at CL.EACH_QUORM (CASSANDRA-3084)
 
 
 0.7.8

Modified: cassandra/branches/cassandra-0.7/debian/changelog
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/debian/changelog?rev=1163795r1=1163794r2=1163795view=diff
==
--- cassandra/branches/cassandra-0.7/debian/changelog (original)
+++ cassandra/branches/cassandra-0.7/debian/changelog Wed Aug 31 20:20:36 2011
@@ -2,7 +2,7 @@ cassandra (0.7.9) unstable; urgency=low
 
   * New stable point release
 
- -- Eric Evans eev...@apache.org  Tue, 23 Aug 2011 14:53:39 -0500
+ -- Eric Evans eev...@apache.org  Wed, 31 Aug 2011 15:17:38 -0500
 
 cassandra (0.7.8) unstable; urgency=low
 




svn commit: r1163801 [1/4] - in /cassandra/trunk: ./ interface/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/avro/ src/java/org/apache/cassandra/cli/ src/java/org/apache/cassandra/config

2011-08-31 Thread xedin
Author: xedin
Date: Wed Aug 31 20:30:20 2011
New Revision: 1163801

URL: http://svn.apache.org/viewvc?rev=1163801view=rev
Log:
Make the compression algorithm and chunk length configurable
patch by Sylvain Lebresne; reviewed by Pavel Yaskevich for CASSANDRA-3001

Added:

cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressionParameters.java

cassandra/trunk/src/java/org/apache/cassandra/io/compress/DeflateCompressor.java
cassandra/trunk/src/java/org/apache/cassandra/io/compress/ICompressor.java

cassandra/trunk/src/java/org/apache/cassandra/io/compress/SnappyCompressor.java
Modified:
cassandra/trunk/CHANGES.txt
cassandra/trunk/interface/cassandra.thrift

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationException.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationRequest.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthorizationException.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnDef.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnOrSuperColumn.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnParent.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnPath.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CounterColumn.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CounterSuperColumn.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlResult.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlRow.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Deletion.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexClause.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexExpression.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/KeyCount.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/KeyRange.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/KeySlice.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/KsDef.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Mutation.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SchemaDisagreementException.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SlicePredicate.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SliceRange.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/TimedOutException.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/TokenRange.java

cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/UnavailableException.java
cassandra/trunk/src/avro/internode.genavro
cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java

cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java

cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java

cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
cassandra/trunk/src/resources/org/apache/cassandra/cli/CliHelp.yaml
cassandra/trunk/test/unit/org/apache/cassandra/SchemaLoader.java

cassandra/trunk/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java
cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/Session.java

Modified: cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1163801r1=1163800r2=1163801view=diff
==
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Wed Aug 31 20:30:20 2011
@@ -53,7 +53,7 @@
  * remove compaction_thread_priority setting (CASSANDRA-3104)
  * generate hints for replicas that timeout, not just replicas that are known
to be down before starting 

svn commit: r1163801 [4/4] - in /cassandra/trunk: ./ interface/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/avro/ src/java/org/apache/cassandra/cli/ src/java/org/apache/cassandra/config

2011-08-31 Thread xedin
Added: 
cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressionParameters.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressionParameters.java?rev=1163801view=auto
==
--- 
cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressionParameters.java
 (added)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressionParameters.java
 Wed Aug 31 20:30:20 2011
@@ -0,0 +1,196 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * License); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cassandra.io.compress;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+import org.apache.cassandra.config.ConfigurationException;
+
+public class CompressionParameters
+{
+public final static int DEFAULT_CHUNK_LENGTH = 65536;
+public static final String CHUNK_LENGTH_PARAMETER = chunk_length_kb;
+
+public final Class? extends ICompressor compressorClass;
+public final MapString, String compressionOptions;
+
+public final transient ICompressor compressor;
+public final transient int chunkLength;
+
+public CompressionParameters(CharSequence compressorClassName, Map? 
extends CharSequence, ? extends CharSequence options) throws 
ConfigurationException
+{
+this(compressorClassName, copyOptions(options), -1);
+}
+
+public CompressionParameters(CharSequence compressorClassName, MapString, 
String options, int chunkLength) throws ConfigurationException
+{
+this(createCompressor(parseCompressorClass(compressorClassName), 
options), options, chunkLength  0 ? getChunkLength(options) : chunkLength);
+validateChunkLength();
+}
+
+public CompressionParameters(ICompressor compressor)
+{
+this(compressor, null, DEFAULT_CHUNK_LENGTH);
+}
+
+public CompressionParameters(ICompressor compressor, MapString, String 
compressionOptions, int chunkLength)
+{
+this.compressorClass = compressor == null ? null : 
compressor.getClass();
+this.compressionOptions = compressor == null ? null : 
(compressionOptions == null ? Collections.String, StringemptyMap() : 
compressionOptions);
+this.chunkLength = chunkLength;
+this.compressor = compressor;
+}
+
+private static Class? extends ICompressor 
parseCompressorClass(CharSequence cc) throws ConfigurationException
+{
+if (cc == null)
+return null;
+
+String className = cc.toString();
+className = className.contains(.) ? className : 
org.apache.cassandra.io.compress. + className;
+try
+{
+return (Class? extends ICompressor)Class.forName(className);
+}
+catch (Exception e)
+{
+throw new ConfigurationException(Could not create Compression for 
type  + cc.toString(), e);
+}
+}
+
+private static ICompressor createCompressor(Class? extends ICompressor 
compressorClass, MapString, String compressionOptions) throws 
ConfigurationException
+{
+if (compressorClass == null)
+return null;
+
+try
+{
+Method method = compressorClass.getMethod(create, Map.class);
+return (ICompressor)method.invoke(null, compressionOptions);
+}
+catch (NoSuchMethodException e)
+{
+throw new ConfigurationException(create method not found, e);
+}
+catch (SecurityException e)
+{
+throw new ConfigurationException(Access forbiden, e);
+}
+catch (IllegalAccessException e)
+{
+throw new ConfigurationException(Cannot access method create in  
+ compressorClass.getName(), e);
+}
+catch (InvocationTargetException e)
+{
+throw new ConfigurationException(compressorClass.getSimpleName() + 
.create() throwed an error, e);
+}
+catch (ExceptionInInitializerError e)
+ 

[jira] [Resolved] (CASSANDRA-3001) Make the compression algorithm and chunk length configurable

2011-08-31 Thread Pavel Yaskevich (JIRA)

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

Pavel Yaskevich resolved CASSANDRA-3001.


Resolution: Fixed

Committed.

 Make the compression algorithm and chunk length configurable
 

 Key: CASSANDRA-3001
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3001
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
Priority: Minor
  Labels: compression
 Fix For: 1.0

 Attachments: 0001-Pluggable-algorithm-and-chunk-length.patch, 
 0002-Thrift-crap.patch, 0003-Add-deflate-compressor.patch




--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (CASSANDRA-3114) After Choosing EC2Snitch you can't migrate off w/o a full cluster restart

2011-08-31 Thread Benjamin Coverston (JIRA)
After Choosing EC2Snitch you can't migrate off w/o a full cluster restart
-

 Key: CASSANDRA-3114
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3114
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.8.4, 0.7.8
Reporter: Benjamin Coverston


Once you choose the Ec2Snitch the gossip messages will trigger this exception 
if you try to move (for example) to the property file snitch:

ERROR [pool-2-thread-11] 2011-08-30 16:38:06,935 Cassandra.java (line 3041) 
Internal error processing get_slice 
java.lang.NullPointerException 
at org.apache.cassandra.locator.Ec2Snitch.getDatacenter(Ec2Snitch.java:84) 
at 
org.apache.cassandra.locator.DynamicEndpointSnitch.getDatacenter(DynamicEndpointSnitch.java:122)
 
at 
org.apache.cassandra.service.DatacenterReadCallback.assureSufficientLiveNodes(DatacenterReadCallback.java:77)
 
at org.apache.cassandra.service.StorageProxy.fetchRows(StorageProxy.java:516) 
at org.apache.cassandra.service.StorageProxy.read(StorageProxy.java:480) 
at 
org.apache.cassandra.thrift.CassandraServer.readColumnFamily(CassandraServer.java:109)
 
at 
org.apache.cassandra.thrift.CassandraServer.getSlice(CassandraServer.java:263) 
at 
org.apache.cassandra.thrift.CassandraServer.multigetSliceInternal(CassandraServer.java:345)
 
at 
org.apache.cassandra.thrift.CassandraServer.get_slice(CassandraServer.java:306) 
at 
org.apache.cassandra.thrift.Cassandra$Processor$get_slice.process(Cassandra.java:3033)
 
at org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2889) 
at 
org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:187)
 
at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
 
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
at java.lang.Thread.run(Thread.java:662)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3106) getRangeToEndpointMap() method removed

2011-08-31 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-3106:
---

Integrated in Cassandra #1063 (See 
[https://builds.apache.org/job/Cassandra/1063/])
Restore getRangeToEndpointMap.
Patch by Nick Bailey, reviewed by brandonwilliams for CASSANDRA-3106

brandonwilliams : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1163772
Files : 
* /cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java


 getRangeToEndpointMap() method removed
 --

 Key: CASSANDRA-3106
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3106
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Affects Versions: 1.0
Reporter: Nick Bailey
Assignee: Nick Bailey
Priority: Minor
 Fix For: 1.0

 Attachments: 0001-Add-getRangeToEndpointMap-method-back.patch


 When getRangeToRPCAddress was added, getRangeToEndpointMap was removed, 
 however, both are useful. We should add it back.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3001) Make the compression algorithm and chunk length configurable

2011-08-31 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-3001:
---

Integrated in Cassandra #1063 (See 
[https://builds.apache.org/job/Cassandra/1063/])
Make the compression algorithm and chunk length configurable
patch by Sylvain Lebresne; reviewed by Pavel Yaskevich for CASSANDRA-3001

xedin : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1163801
Files : 
* /cassandra/trunk/CHANGES.txt
* /cassandra/trunk/interface/cassandra.thrift
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationException.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationRequest.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthorizationException.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnDef.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnOrSuperColumn.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnParent.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/ColumnPath.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CounterColumn.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CounterSuperColumn.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlResult.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlRow.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Deletion.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexClause.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexExpression.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/KeyCount.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/KeyRange.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/KeySlice.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/KsDef.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Mutation.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SchemaDisagreementException.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SlicePredicate.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SliceRange.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/TimedOutException.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/TokenRange.java
* 
/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/UnavailableException.java
* /cassandra/trunk/src/avro/internode.genavro
* /cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
* /cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressedRandomAccessReader.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/io/compress/CompressionParameters.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/io/compress/DeflateCompressor.java
* /cassandra/trunk/src/java/org/apache/cassandra/io/compress/ICompressor.java
* 
/cassandra/trunk/src/java/org/apache/cassandra/io/compress/SnappyCompressor.java
* /cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
* /cassandra/trunk/src/resources/org/apache/cassandra/cli/CliHelp.yaml
* /cassandra/trunk/test/unit/org/apache/cassandra/SchemaLoader.java
* 
/cassandra/trunk/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java
* /cassandra/trunk/tools/stress/src/org/apache/cassandra/stress/Session.java


 Make the compression algorithm and chunk length configurable
 

 Key: CASSANDRA-3001
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3001
 Project: Cassandra
  

[jira] [Created] (CASSANDRA-3115) LongCompactionSpeedTest running longing starting with builds on Aug31

2011-08-31 Thread Cathy Daw (JIRA)
LongCompactionSpeedTest running longing starting with builds on Aug31
-

 Key: CASSANDRA-3115
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3115
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.8.5
 Environment: Cassandra-0.8 branch, nightly builds.
MacOS and Debian
Reporter: Cathy Daw
Priority: Minor


The Long tests started consistently timing out as this build of cassandra: 
[https://jenkins.qa.datastax.com/job/CassandraLong/131/console]

The regression server shows pretty consistent run times for this test, and then 
consistent timeouts from this point forward.
{code}
[junit] Testsuite: 
org.apache.cassandra.db.compaction.LongCompactionSpeedTest
[junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 111.379 sec
[junit] 
[junit] - Standard Output ---
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=1 colsper=20: 1637 ms
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=20 colsper=1: 6144 ms
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=100 rowsper=800 colsper=5: 2379 ms
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=1 colsper=50: 15690 ms
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=50 colsper=1: 20953 ms
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=100 rowsper=1000 colsper=5: 5672 ms
{code}



*Single node local run:  Build 1056 / on Aug 30 / Macbook Pro w/ 8 GB ram (all 
apps shutdown)*
{panel}
+Run 1: Fresh install with no log or lib dir+
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=1 colsper=20: 850 ms
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=20 colsper=1: *3004 ms*
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=100 rowsper=800 colsper=5: 767 ms

+Run 2: Invoke test without restarting the server+
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=1 colsper=20: 826 ms
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=20 colsper=1: *3030 ms*
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=100 rowsper=800 colsper=5: 776 ms

+Run 3: Invoke test without restarting the server+
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=1 colsper=20: 830 ms
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=20 colsper=1: *2964 ms*
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=100 rowsper=800 colsper=5: 635 ms

+Run 4: Invoke test without restarting the server+
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=1 colsper=20: 931 ms
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=20 colsper=1: *2987 ms*
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=100 rowsper=800 colsper=5: 910 ms
{panel}

*Singled node local run: Build 1062 / on Aug 31 / Macbook pro w/ 8GB ram (all 
apps shutdown)*
{panel}
+Run 1: Fresh restart with no log or lib dir+
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=1 colsper=20: 802 ms
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=20 colsper=1: *17649 ms*
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=100 rowsper=800 colsper=5: 713 ms

+Run 2: Invoke test without restarting the server+
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=1 colsper=20: 832 ms
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=20 colsper=1: *16875 ms*
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=100 rowsper=800 colsper=5: 868 ms

+Run 3: Invoke test without restarting the server+
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=1 colsper=20: 809 ms
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=20 colsper=1: *16818 ms*
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=100 rowsper=800 colsper=5: 807 ms

+Run 4: Invoke test without restarting the server+
[junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
sstables=2 rowsper=1 colsper=20: 834 ms
[junit] 

[jira] [Updated] (CASSANDRA-1391) Allow Concurrent Schema Migrations

2011-08-31 Thread Pavel Yaskevich (JIRA)

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

Pavel Yaskevich updated CASSANDRA-1391:
---

Attachment: CASSANDRA-1391.patch

rebased.

 Allow Concurrent Schema Migrations
 --

 Key: CASSANDRA-1391
 URL: https://issues.apache.org/jira/browse/CASSANDRA-1391
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Stu Hood
Assignee: Pavel Yaskevich
 Fix For: 1.0

 Attachments: CASSANDRA-1391.patch


 CASSANDRA-1292 fixed multiple migrations started from the same node to 
 properly queue themselves, but it is still possible for migrations initiated 
 on different nodes to conflict and leave the cluster in a bad state. Since 
 the system_add/drop/rename methods are accessible directly from the client 
 API, they should be completely safe for concurrent use.
 It should be possible to allow for most types of concurrent migrations by 
 converting the UUID schema ID into a VersionVectorClock (as provided by 
 CASSANDRA-580).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-3115) LongCompactionSpeedTest running longer starting with builds on Aug31

2011-08-31 Thread Cathy Daw (JIRA)

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

Cathy Daw updated CASSANDRA-3115:
-

Summary: LongCompactionSpeedTest running longer starting with builds on 
Aug31  (was: LongCompactionSpeedTest running longing starting with builds on 
Aug31)

 LongCompactionSpeedTest running longer starting with builds on Aug31
 

 Key: CASSANDRA-3115
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3115
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.8.5
 Environment: Cassandra-0.8 branch, nightly builds.
 MacOS and Debian
Reporter: Cathy Daw
Priority: Minor

 The Long tests started consistently timing out as this build of cassandra: 
 [https://jenkins.qa.datastax.com/job/CassandraLong/131/console]
 The regression server shows pretty consistent run times for this test, and 
 then consistent timeouts from this point forward.
 {code}
 [junit] Testsuite: 
 org.apache.cassandra.db.compaction.LongCompactionSpeedTest
 [junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 111.379 sec
 [junit] 
 [junit] - Standard Output ---
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 1637 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: 6144 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 2379 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=50: 15690 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=50 colsper=1: 20953 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=1000 colsper=5: 5672 ms
 {code}
 *Single node local run:  Build 1056 / on Aug 30 / Macbook Pro w/ 8 GB ram 
 (all apps shutdown)*
 {panel}
 +Run 1: Fresh install with no log or lib dir+
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 850 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: *3004 ms*
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 767 ms
 
 +Run 2: Invoke test without restarting the server+
   [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 826 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: *3030 ms*
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 776 ms
 +Run 3: Invoke test without restarting the server+
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 830 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: *2964 ms*
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 635 ms
 +Run 4: Invoke test without restarting the server+
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 931 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: *2987 ms*
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 910 ms
 {panel}
 *Singled node local run: Build 1062 / on Aug 31 / Macbook pro w/ 8GB ram (all 
 apps shutdown)*
 {panel}
 +Run 1: Fresh restart with no log or lib dir+
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 802 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: *17649 ms*
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 713 ms
 +Run 2: Invoke test without restarting the server+
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 832 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: *16875 ms*
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 868 ms
 +Run 3: Invoke test without restarting the server+
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 809 ms
 [junit] 

svn commit: r1163817 - /cassandra/trunk/NEWS.txt

2011-08-31 Thread xedin
Author: xedin
Date: Wed Aug 31 21:12:31 2011
New Revision: 1163817

URL: http://svn.apache.org/viewvc?rev=1163817view=rev
Log:
NEWS.txt updated to reflect latest compression developments

Modified:
cassandra/trunk/NEWS.txt

Modified: cassandra/trunk/NEWS.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/NEWS.txt?rev=1163817r1=1163816r2=1163817view=diff
==
--- cassandra/trunk/NEWS.txt (original)
+++ cassandra/trunk/NEWS.txt Wed Aug 31 21:12:31 2011
@@ -12,7 +12,13 @@ Upgrading
 Features
 
 - cassandra.bat install will install Cassandra as a Windows Service
-- SSTable compression can be enabled by setting options ???
+- SSTable compression can be enabled by setting compressionParameters
+  attribute on CFMetaData (set compressionParameters to null to disable 
compression).
+  SnappyCompressor and DeflateCompressor are currently
+  available as compression class and chunk_length_kb as compression
+  option. Stress tool supports -I option to provide compressor and
+  CLI `{create/update} column family` commands support compression
+  and compression_options parameters.
 - Compressed SSTable blocks are checksummed to protect against bitrot
 - New LevelDB-inspired compaction algorithm can be enabled by setting the 
   Columnfamily compaction_strategy=LeveledCompactionStrategy option.  




[jira] [Commented] (CASSANDRA-3114) After Choosing EC2Snitch you can't migrate off w/o a full cluster restart

2011-08-31 Thread Brandon Williams (JIRA)

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

Brandon Williams commented on CASSANDRA-3114:
-

I'm not sure there's a good solution here.  We could make PFEPS inject the 
local nodes dc/rack info into gossip similar to what I suggested in 
CASSANDRA-1974, but you'd still have to name things with the ec2snitch 
conventions for things to not break, and it would be very PFEPS-specific; other 
snitches are out of the question.

Ultimately I'm inclined to say you need to choose your snitch like you choose 
your partitioner: very carefully.

 After Choosing EC2Snitch you can't migrate off w/o a full cluster restart
 -

 Key: CASSANDRA-3114
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3114
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.8, 0.8.4
Reporter: Benjamin Coverston

 Once you choose the Ec2Snitch the gossip messages will trigger this exception 
 if you try to move (for example) to the property file snitch:
 ERROR [pool-2-thread-11] 2011-08-30 16:38:06,935 Cassandra.java (line 3041) 
 Internal error processing get_slice 
 java.lang.NullPointerException 
 at org.apache.cassandra.locator.Ec2Snitch.getDatacenter(Ec2Snitch.java:84) 
 at 
 org.apache.cassandra.locator.DynamicEndpointSnitch.getDatacenter(DynamicEndpointSnitch.java:122)
  
 at 
 org.apache.cassandra.service.DatacenterReadCallback.assureSufficientLiveNodes(DatacenterReadCallback.java:77)
  
 at org.apache.cassandra.service.StorageProxy.fetchRows(StorageProxy.java:516) 
 at org.apache.cassandra.service.StorageProxy.read(StorageProxy.java:480) 
 at 
 org.apache.cassandra.thrift.CassandraServer.readColumnFamily(CassandraServer.java:109)
  
 at 
 org.apache.cassandra.thrift.CassandraServer.getSlice(CassandraServer.java:263)
  
 at 
 org.apache.cassandra.thrift.CassandraServer.multigetSliceInternal(CassandraServer.java:345)
  
 at 
 org.apache.cassandra.thrift.CassandraServer.get_slice(CassandraServer.java:306)
  
 at 
 org.apache.cassandra.thrift.Cassandra$Processor$get_slice.process(Cassandra.java:3033)
  
 at 
 org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2889) 
 at 
 org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:187)
  
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  
 at java.lang.Thread.run(Thread.java:662)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-2434) node bootstrapping can violate consistency

2011-08-31 Thread Nick Bailey (JIRA)

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

Nick Bailey updated CASSANDRA-2434:
---

Reviewer: nickmbailey

 node bootstrapping can violate consistency
 --

 Key: CASSANDRA-2434
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2434
 Project: Cassandra
  Issue Type: Bug
Reporter: Peter Schuller
Assignee: paul cannon
 Fix For: 1.1

 Attachments: 2434.patch.txt


 My reading (a while ago) of the code indicates that there is no logic 
 involved during bootstrapping that avoids consistency level violations. If I 
 recall correctly it just grabs neighbors that are currently up.
 There are at least two issues I have with this behavior:
 * If I have a cluster where I have applications relying on QUORUM with RF=3, 
 and bootstrapping complete based on only one node, I have just violated the 
 supposedly guaranteed consistency semantics of the cluster.
 * Nodes can flap up and down at any time, so even if a human takes care to 
 look at which nodes are up and things about it carefully before 
 bootstrapping, there's no guarantee.
 A complication is that not only does it depend on use-case where this is an 
 issue (if all you ever do you do at CL.ONE, it's fine); even in a cluster 
 which is otherwise used for QUORUM operations you may wish to accept 
 less-than-quorum nodes during bootstrap in various emergency situations.
 A potential easy fix is to have bootstrap take an argument which is the 
 number of hosts to bootstrap from, or to assume QUORUM if none is given.
 (A related concern is bootstrapping across data centers. You may *want* to 
 bootstrap to a local node and then do a repair to avoid sending loads of data 
 across DC:s while still achieving consistency. Or even if you don't care 
 about the consistency issues, I don't think there is currently a way to 
 bootstrap from local nodes only.)
 Thoughts?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Assigned] (CASSANDRA-3115) LongCompactionSpeedTest running longer starting with builds on Aug31

2011-08-31 Thread Brandon Williams (JIRA)

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

Brandon Williams reassigned CASSANDRA-3115:
---

Assignee: Brandon Williams

 LongCompactionSpeedTest running longer starting with builds on Aug31
 

 Key: CASSANDRA-3115
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3115
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.8.5
 Environment: Cassandra-0.8 branch, nightly builds.
 MacOS and Debian
Reporter: Cathy Daw
Assignee: Brandon Williams
Priority: Minor

 The Long tests started consistently timing out as this build of cassandra: 
 [https://jenkins.qa.datastax.com/job/CassandraLong/131/console]
 The regression server shows pretty consistent run times for this test, and 
 then consistent timeouts from this point forward.
 {code}
 [junit] Testsuite: 
 org.apache.cassandra.db.compaction.LongCompactionSpeedTest
 [junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 111.379 sec
 [junit] 
 [junit] - Standard Output ---
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 1637 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: 6144 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 2379 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=50: 15690 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=50 colsper=1: 20953 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=1000 colsper=5: 5672 ms
 {code}
 *Single node local run:  Build 1056 / on Aug 30 / Macbook Pro w/ 8 GB ram 
 (all apps shutdown)*
 {panel}
 +Run 1: Fresh install with no log or lib dir+
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 850 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: *3004 ms*
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 767 ms
 
 +Run 2: Invoke test without restarting the server+
   [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 826 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: *3030 ms*
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 776 ms
 +Run 3: Invoke test without restarting the server+
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 830 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: *2964 ms*
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 635 ms
 +Run 4: Invoke test without restarting the server+
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 931 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: *2987 ms*
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 910 ms
 {panel}
 *Singled node local run: Build 1062 / on Aug 31 / Macbook pro w/ 8GB ram (all 
 apps shutdown)*
 {panel}
 +Run 1: Fresh restart with no log or lib dir+
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 802 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: *17649 ms*
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 713 ms
 +Run 2: Invoke test without restarting the server+
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 832 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 colsper=1: *16875 ms*
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=100 rowsper=800 colsper=5: 868 ms
 +Run 3: Invoke test without restarting the server+
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=1 colsper=20: 809 ms
 [junit] org.apache.cassandra.db.compaction.LongCompactionSpeedTest: 
 sstables=2 rowsper=20 

[jira] [Updated] (CASSANDRA-3056) Able to set path location of HeapDump in cassandra-env

2011-08-31 Thread Eric Evans (JIRA)

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

Eric Evans updated CASSANDRA-3056:
--

Reviewer: urandom

 Able to set path location of HeapDump in cassandra-env
 --

 Key: CASSANDRA-3056
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3056
 Project: Cassandra
  Issue Type: Improvement
Affects Versions: 0.7.8, 0.8.4
Reporter: David Talbott
Priority: Minor
  Labels: lhf
 Attachments: CASSANDRA-3056-1.txt, CASSANDRA-3056-2.txt, 
 CASSANDRA-3056-3.txt


 We should be able to designate the path location to put any perf dumps that 
 are performed. By Default with this not set the perf dump can occur on the 
 root disk and fill the drive. 
 Should be able to solve this by simply inserting JVM_OPTS=$JVM_OPTS 
 -XX:HeapDumpPath=path to dir into cassandra-env.sh as a default option 
 available and set. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-2500) Ruby dbi client (for CQL) that conforms to AR:ConnectionAdapter

2011-08-31 Thread Robert Jackson (JIRA)

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

Robert Jackson commented on CASSANDRA-2500:
---

I have been using the repo from GitHub[1] quite a bit locally and things work 
quite well at this point.

At this point the tests pass, and a simple comparison against the 
fauna/cassandra gem shows that the performance is at least on par with the 
fauna client(in most cases it is better)[2].

Also, note that it is possible to require both cassandra-cql and 
fauna/cassandra at the same time without conflict.

[1] https://github.com/kreynolds/cassandra-cql
[2] https://gist.github.com/1185026


 Ruby dbi client (for CQL) that conforms to AR:ConnectionAdapter
 ---

 Key: CASSANDRA-2500
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2500
 Project: Cassandra
  Issue Type: Task
  Components: API
Reporter: Jon Hermes
Assignee: Kelley Reynolds
  Labels: cql
 Fix For: 0.8.5

 Attachments: 2500.txt, genthriftrb.txt, rbcql-0.0.0.tgz


 Create a ruby driver for CQL.
 Lacking something standard (such as py-dbapi), going with something common 
 instead -- RoR ActiveRecord Connection Adapter 
 (http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/AbstractAdapter.html).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163873 - /cassandra/branches/cassandra-0.8/conf/cassandra-env.sh

2011-08-31 Thread eevans
Author: eevans
Date: Wed Aug 31 23:57:37 2011
New Revision: 1163873

URL: http://svn.apache.org/viewvc?rev=1163873view=rev
Log:
set -XX:HeapDumpPath based on env

Patch by satish babu krishnamoorthy and eevans for CASSANDRA-3056

Modified:
cassandra/branches/cassandra-0.8/conf/cassandra-env.sh

Modified: cassandra/branches/cassandra-0.8/conf/cassandra-env.sh
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/conf/cassandra-env.sh?rev=1163873r1=1163872r2=1163873view=diff
==
--- cassandra/branches/cassandra-0.8/conf/cassandra-env.sh (original)
+++ cassandra/branches/cassandra-0.8/conf/cassandra-env.sh Wed Aug 31 23:57:37 
2011
@@ -117,7 +117,12 @@ JVM_OPTS=$JVM_OPTS -XX:ThreadPriorityPo
 JVM_OPTS=$JVM_OPTS -Xms${MAX_HEAP_SIZE}
 JVM_OPTS=$JVM_OPTS -Xmx${MAX_HEAP_SIZE}
 JVM_OPTS=$JVM_OPTS -Xmn${HEAP_NEWSIZE}
-JVM_OPTS=$JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError 
+JVM_OPTS=$JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError
+
+# set jvm HeapDumpPath with CASSANDRA_HEAPDUMP_DIR
+if [ x$CASSANDRA_HEAPDUMP_DIR != x ]; then
+JVM_OPTS=$JVM_OPTS 
-XX:HeapDumpPath=$CASSANDRA_HEAPDUMP_DIR/cassandra-`date +%s`-pid$$.hprof
+fi
 
 if [ `uname` = Linux ] ; then
 # reduce the per-thread stack size to minimize the impact of Thrift




[jira] [Issue Comment Edited] (CASSANDRA-3080) Add throttling for internode streaming

2011-08-31 Thread Stu Hood (JIRA)

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

Stu Hood edited comment on CASSANDRA-3080 at 9/1/11 12:07 AM:
--

Attaching an example TRACE log from a stream throttling session (grep 
'Stream'). The throttling is fairly bursty because we send 10 MB chunks, but 
since these are sub-100ms bursts, I'm not sure its worth worrying about.

  was (Author: stuhood):
Attaching an example log from a stream throttling session (grep 'Stream'). 
The throttling is fairly bursty because we send 10 MB chunks, but since these 
are sub-second 100ms bursts, I'm not sure its worth worrying about.
  
 Add throttling for internode streaming
 --

 Key: CASSANDRA-3080
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3080
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Stu Hood
Assignee: Stu Hood
 Fix For: 1.0

 Attachments: 0001-Extract-throttling-into-a-Throttle-class.txt, 
 0002-Remove-orphaned-throttling-path.txt, 
 0003-Add-stream_throughput_outbound_megabits_per_sec-settin.txt, 
 0004-Add-outbound-stream-throttling.txt, stream-throttling-example.log


 Cassandra does (mostly) sequential reads from disk to send data to other 
 nodes, which means that it is easily possible to stream upwards of 100 MB/s 
 per source node.
 To avoid affecting service, we should add streaming throttling across all 
 streams in the outbound direction, preferably configurable from JMX, and with 
 `nodetool netstats` integration.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-3080) Add throttling for internode streaming

2011-08-31 Thread Stu Hood (JIRA)

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

Stu Hood updated CASSANDRA-3080:


Attachment: stream-throttling-example.log

Attaching an example log from a stream throttling session (grep 'Stream'). The 
throttling is fairly bursty because we send 10 MB chunks, but since these are 
sub-second 100ms bursts, I'm not sure its worth worrying about.

 Add throttling for internode streaming
 --

 Key: CASSANDRA-3080
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3080
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Stu Hood
Assignee: Stu Hood
 Fix For: 1.0

 Attachments: 0001-Extract-throttling-into-a-Throttle-class.txt, 
 0002-Remove-orphaned-throttling-path.txt, 
 0003-Add-stream_throughput_outbound_megabits_per_sec-settin.txt, 
 0004-Add-outbound-stream-throttling.txt, stream-throttling-example.log


 Cassandra does (mostly) sequential reads from disk to send data to other 
 nodes, which means that it is easily possible to stream upwards of 100 MB/s 
 per source node.
 To avoid affecting service, we should add streaming throttling across all 
 streams in the outbound direction, preferably configurable from JMX, and with 
 `nodetool netstats` integration.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-3070) counter repair

2011-08-31 Thread ivan (JIRA)

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

ivan commented on CASSANDRA-3070:
-

Hi Sylvain,

our sstables contain sensitive information so i can't provide them. Sorry.

I reloaded sstables in our test environment and catched a new ouput log ().
In this new log there is two new debug message:
1. rows containing CF resolve string (message printed at the begining of 
resolve method in src/java/org/apache/cassandra/db/ColumnFamily.java)
2. rows containing CF addAll string (message printed at the begining of 
addAll method in src/java/org/apache/cassandra/db/ColumnFamily.java)

We have a backup of sstables with these counters so I can do any test on them.
We have a 6 node cluster using RF=3.

When we experienced problems with some counters I started to debug this problem.

Using LOCAL_QUORUM CL we get the same answer from all servers but using ONE CL 
we get a lower number from 2 servers of 6.
The results from the 2 server was lower with 3 than other server.

I found the following:
- server (10.20.255.55) notices when there is a digest mismatch (using 
LOCAL_QUORUM)
- server (10.20.255.55) sends a repair (rowmutation) message to related servers
- server (10.20.255.53) receives this mutation (which contains the same total() 
received by client)
- when mutation is handled by Memtable.put() ColumnFamily.resolve() produces a 
different result
  (data contained in Memtable have a delta and the right counter value is not 
applied instead of this deltha)

I don't know the resolved value is correct or not (I suspect it's not beacuse 
total() value seems to be wrong), because I don't know in details how counter 
works.



Regards,
ivan


 counter repair
 --

 Key: CASSANDRA-3070
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3070
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.8.4
Reporter: ivan
Assignee: Sylvain Lebresne
 Attachments: counter_local_quroum_maybeschedulerepairs.txt, 
 counter_local_quroum_maybeschedulerepairs_2.txt


 Hi!
 We have some counters out of sync but repair doesn't sync values.
 We tried nodetool repair.
 We use LOCAL_QUORUM for read. A repair row mutation is sent to other nodes 
 while reading a bad row but counters wasn't repaired by mutation.
 Output of two nodes were uploaded. (Some new debug messages were added.)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (CASSANDRA-3116) Compactions can (seriously )delay schema migrations

2011-08-31 Thread Eric Evans (JIRA)
Compactions can (seriously )delay schema migrations
---

 Key: CASSANDRA-3116
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3116
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.8.4
Reporter: Eric Evans


A compaction lock is acquired when dropping keyspaces or column families which 
will cause the schema migration to block if a compaction is in progress.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (CASSANDRA-3117) StorageServiceMBean is missing a getCompactionThroughputMbPerSec() method

2011-08-31 Thread Eric Evans (JIRA)
StorageServiceMBean is missing a getCompactionThroughputMbPerSec() method
-

 Key: CASSANDRA-3117
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3117
 Project: Cassandra
  Issue Type: Bug
Reporter: Eric Evans
Priority: Minor


Without a getter, you can assign a new value but not query the existing one 
(which is strange).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-3116) Compactions can (seriously )delay schema migrations

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-3116:
--

Fix Version/s: 1.1

agreed that this sucks.  would like to switch to some kind of test-and-set 
safety for compaction vs migration instead.  not immediately obvious to me how 
to do this.

 Compactions can (seriously )delay schema migrations
 ---

 Key: CASSANDRA-3116
 URL: https://issues.apache.org/jira/browse/CASSANDRA-3116
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.8.4
Reporter: Eric Evans
 Fix For: 1.1


 A compaction lock is acquired when dropping keyspaces or column families 
 which will cause the schema migration to block if a compaction is in progress.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




svn commit: r1163898 - in /cassandra/trunk: CHANGES.txt src/java/org/apache/cassandra/scheduler/RoundRobinScheduler.java src/java/org/apache/cassandra/scheduler/WeightedQueue.java

2011-08-31 Thread jbellis
Author: jbellis
Date: Thu Sep  1 03:14:12 2011
New Revision: 1163898

URL: http://svn.apache.org/viewvc?rev=1163898view=rev
Log:
Properly throw timeouts, decrement the count of waiters on timeout, fix 
off-by-one in taskCount
patch by Stu Hood; reviewed by Ryan King for CASSANDRA-3096

Modified:
cassandra/trunk/CHANGES.txt

cassandra/trunk/src/java/org/apache/cassandra/scheduler/RoundRobinScheduler.java
cassandra/trunk/src/java/org/apache/cassandra/scheduler/WeightedQueue.java

Modified: cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1163898r1=1163897r2=1163898view=diff
==
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Thu Sep  1 03:14:12 2011
@@ -42,7 +42,7 @@
  * Add install command to cassandra.bat (CASSANDRA-292)
  * clean up KSMetadata, CFMetadata from unnecessary
Thrift-Avro conversion methods (CASSANDRA-3032)
- * Add timeouts to client request schedulers (CASSANDRA-3079)
+ * Add timeouts to client request schedulers (CASSANDRA-3079, 3096)
  * Cli to use hashes rather than array of hashes for strategy options 
(CASSANDRA-3081)
  * LeveledCompactionStrategy (CASSANDRA-1608, 3085, 3110, 3087)
  * Improvements of the CLI `describe` command (CASSANDRA-2630)

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/scheduler/RoundRobinScheduler.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/scheduler/RoundRobinScheduler.java?rev=1163898r1=1163897r2=1163898view=diff
==
--- 
cassandra/trunk/src/java/org/apache/cassandra/scheduler/RoundRobinScheduler.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/scheduler/RoundRobinScheduler.java
 Thu Sep  1 03:14:12 2011
@@ -43,7 +43,6 @@ public class RoundRobinScheduler impleme
 
 //Map of queue id to weighted queue
 private final NonBlockingHashMapString, WeightedQueue queues;
-private static boolean started = false;
 
 private final Semaphore taskCount;
 
@@ -56,12 +55,12 @@ public class RoundRobinScheduler impleme
 
 public RoundRobinScheduler(RequestSchedulerOptions options)
 {
-assert !started;
-
 defaultWeight = options.default_weight;
 weights = options.weights;
 
-taskCount = new Semaphore(options.throttle_limit);
+// the task count is acquired for the first time _after_ releasing a 
thread, so we pre-decrement
+taskCount = new Semaphore(options.throttle_limit - 1);
+
 queues = new NonBlockingHashMapString, WeightedQueue();
 Runnable runnable = new Runnable()
 {
@@ -75,7 +74,6 @@ public class RoundRobinScheduler impleme
 };
 Thread scheduler = new Thread(runnable, REQUEST-SCHEDULER);
 scheduler.start();
-started = true;
 logger.info(Started the RoundRobin Request Scheduler);
 }
 
@@ -86,7 +84,21 @@ public class RoundRobinScheduler impleme
 try
 {
 queueSize.release();
-weightedQueue.put(t, timeoutMS);
+try
+{
+weightedQueue.put(t, timeoutMS);
+// the scheduler will release us when a slot is available
+}
+catch (TimeoutException e)
+{
+queueSize.acquireUninterruptibly();
+throw e;
+}
+catch (InterruptedException e)
+{
+queueSize.acquireUninterruptibly();
+throw e;
+}
 }
 catch (InterruptedException e)
 {

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/scheduler/WeightedQueue.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/scheduler/WeightedQueue.java?rev=1163898r1=1163897r2=1163898view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/scheduler/WeightedQueue.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/scheduler/WeightedQueue.java 
Thu Sep  1 03:14:12 2011
@@ -60,7 +60,8 @@ class WeightedQueue implements WeightedQ
 
 public void put(Thread t, long timeoutMS) throws InterruptedException, 
TimeoutException
 {
-queue.offer(new WeightedQueue.Entry(t), timeoutMS, 
TimeUnit.MILLISECONDS);
+if (!queue.offer(new WeightedQueue.Entry(t), timeoutMS, 
TimeUnit.MILLISECONDS))
+throw new TimeoutException(Failed to acquire request scheduler 
slot for ' + key + ');
 }
 
 public Thread poll()




[jira] [Commented] (CASSANDRA-1391) Allow Concurrent Schema Migrations

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-1391:
---

what is the isIsolated mode stuff for?

 Allow Concurrent Schema Migrations
 --

 Key: CASSANDRA-1391
 URL: https://issues.apache.org/jira/browse/CASSANDRA-1391
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Stu Hood
Assignee: Pavel Yaskevich
 Fix For: 1.0

 Attachments: CASSANDRA-1391.patch


 CASSANDRA-1292 fixed multiple migrations started from the same node to 
 properly queue themselves, but it is still possible for migrations initiated 
 on different nodes to conflict and leave the cluster in a bad state. Since 
 the system_add/drop/rename methods are accessible directly from the client 
 API, they should be completely safe for concurrent use.
 It should be possible to allow for most types of concurrent migrations by 
 converting the UUID schema ID into a VersionVectorClock (as provided by 
 CASSANDRA-580).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (CASSANDRA-2961) Expire dead gossip states based on time

2011-08-31 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-2961:
--

Fix Version/s: 1.0
 Assignee: (was: Patricio Echague)

 Expire dead gossip states based on time
 ---

 Key: CASSANDRA-2961
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2961
 Project: Cassandra
  Issue Type: Improvement
Reporter: Brandon Williams
 Fix For: 1.0


 Currently dead states are held until aVeryLongTime, 3 days.  The problem is 
 that if a node reboots within this period, it begins a new 3 days and will 
 repopulate the ring with the dead state.  While mostly harmless, perpetuating 
 the state forever is at least wasting a small amount of bandwidth.  Instead, 
 we can expire states based on a ttl, which will require that the cluster be 
 loosely time synced; within the quarantine period of 60s.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




  1   2   >