[jira] [Commented] (CASSANDRA-2753) Capture the max client timestamp for an SSTable

2011-06-28 Thread Alan Liang (JIRA)

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

Alan Liang commented on CASSANDRA-2753:
---

bq. No support for supercolumns?

Wow. Good catch. I've added test tests for this as well.

bq. it would be more clear if observeColumnsInSSTable took a CFMetaData object 
instead of a CF, to get a serializer from.

I've added a helper method CFMetaData.getColumnSerializer() to do this.

bq. nit: SSTMC.setMaxTimestamp would be more accurately named updateMaxTimestamp

Makes sense.

bq. IMO SSTM deserialize versioning logic would be clearer if it were all in 
SSTMSerializer instead of split between that and openFromDescriptor.

Makes sense.

bq. Suggest adding a comment that SSTableWriter.append(AbstractCompactedRow 
row) deliberately avoids calling updateMaxTimestamp b/c otherwise we'd have to 
deserialize EchoedRow.

Sounds good.

bq. where is the max-timestamp-of-compacted-sstables logic? I didn't notice it.

I put this in ColumnFamilyStore.createCompactionWriter():

{code}
public SSTableWriter createCompactionWriter(long estimatedRows, String 
location, CollectionSSTableReader sstables) throws IOException
{
ReplayPosition rp = ReplayPosition.getReplayPosition(sstables);
SSTableMetadata.Collector sstableMetadataCollector = 
SSTableMetadata.createCollector().replayPosition(rp);

// get the max timestamp of the precompacted sstables
for (SSTableReader sstable : sstables)
sstableMetadataCollector.updateMaxTimestamp(sstable.getMaxTimestamp());

return new SSTableWriter(getTempSSTablePath(location), estimatedRows, 
metadata, partitioner, sstableMetadataCollector);
}
{code}

bq. nit: renaming SSTableWriter.writeMetadata feels gratuitous

I renamed it back to writeMetadata.

bq. nit: prefer initializing fields that don't need constructor parameters, at 
declaration time (looking at RowIndexer.sstMC)

Makes sense.


 Capture the max client timestamp for an SSTable
 ---

 Key: CASSANDRA-2753
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2753
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Alan Liang
Assignee: Alan Liang
Priority: Minor
 Attachments: 
 0001-capture-max-timestamp-and-created-SSTableMetadata-to.patch, 
 0003-capture-max-timestamp-for-sstable-and-introduced-SST.patch




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




[jira] [Updated] (CASSANDRA-2753) Capture the max client timestamp for an SSTable

2011-06-28 Thread Alan Liang (JIRA)

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

Alan Liang updated CASSANDRA-2753:
--

Attachment: 
0001-capture-max-timestamp-and-created-SSTableMetadata-to-V2.patch

V2 patch based on jbellis' comments

 Capture the max client timestamp for an SSTable
 ---

 Key: CASSANDRA-2753
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2753
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Alan Liang
Assignee: Alan Liang
Priority: Minor
 Attachments: 
 0001-capture-max-timestamp-and-created-SSTableMetadata-to-V2.patch, 
 0001-capture-max-timestamp-and-created-SSTableMetadata-to.patch, 
 0003-capture-max-timestamp-for-sstable-and-introduced-SST.patch




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




svn commit: r1140470 - in /cassandra/branches/cassandra-0.8: CHANGES.txt src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java src/java/org/apache/cassandra/service/RowRepairResolver.j

2011-06-28 Thread slebresne
Author: slebresne
Date: Tue Jun 28 07:53:08 2011
New Revision: 1140470

URL: http://svn.apache.org/viewvc?rev=1140470view=rev
Log:
Fix potential NPE in range slice read repair
patch by slebresne; reviewed by jbellis for CASSANDRA-2823

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

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

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

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1140470r1=1140469r2=1140470view=diff
==
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Jun 28 07:53:08 2011
@@ -7,6 +7,8 @@
  * add ability to return endpoints to nodetool (CASSANDRA-2776)
  * Add support for multiple (comma-delimited) coordinator addresses
to ColumnFamilyInputFormat (CASSANDRA-2807)
+ * fix potential NPE while scheduling read repair for range slice
+   (CASSANDRA-2823)
 
 
 0.8.1

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java?rev=1140470r1=1140469r2=1140470view=diff
==
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java
 Tue Jun 28 07:53:08 2011
@@ -117,7 +117,9 @@ public class RangeSliceResponseResolver 
 }
 }
 }
-RowRepairResolver.maybeScheduleRepairs(resolved, table, key, 
versions, versionSources);
+// resolved can be null even if versions doesn't have all 
nulls because of the call to removeDeleted in resolveSuperSet
+if (resolved != null)
+RowRepairResolver.maybeScheduleRepairs(resolved, table, 
key, versions, versionSources);
 versions.clear();
 versionSources.clear();
 return new Row(key, resolved);

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RowRepairResolver.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RowRepairResolver.java?rev=1140470r1=1140469r2=1140470view=diff
==
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RowRepairResolver.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RowRepairResolver.java
 Tue Jun 28 07:53:08 2011
@@ -80,7 +80,9 @@ public class RowRepairResolver extends A
 resolved = resolveSuperset(versions);
 if (logger.isDebugEnabled())
 logger.debug(versions merged);
-maybeScheduleRepairs(resolved, table, key, versions, endpoints);
+// resolved can be null even if versions doesn't have all nulls 
because of the call to removeDeleted in resolveSuperSet
+if (resolved != null)
+maybeScheduleRepairs(resolved, table, key, versions, 
endpoints);
 }
 else
 {




[jira] [Resolved] (CASSANDRA-2823) NPE during range slices with rowrepairs

2011-06-28 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne resolved CASSANDRA-2823.
-

   Resolution: Fixed
Fix Version/s: 0.8.2
 Reviewer: jbellis

Committed, thanks

 NPE during range slices with rowrepairs
 ---

 Key: CASSANDRA-2823
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2823
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.8.2
 Environment: This is a trunk build with 2521 and 2433
 I somewhat doubt that is related however.
Reporter: Terje Marthinussen
Assignee: Sylvain Lebresne
 Fix For: 0.8.2

 Attachments: 2823.patch


 Doing some heavy testing of relatively fast feeding (5000+ mutations/sec) + 
 repair on all node + range slices.
 Then occasionally killing a node here and there and restarting it.
 Triggers the following NPE
  ERROR [pool-2-thread-3] 2011-06-24 20:56:27,289 Cassandra.java (line 3210) 
 Internal error processing get_range_slices
 java.lang.NullPointerException
   at 
 org.apache.cassandra.service.RowRepairResolver.maybeScheduleRepairs(RowRepairResolver.java:109)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver$2.getReduced(RangeSliceResponseResolver.java:112)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver$2.getReduced(RangeSliceResponseResolver.java:83)
   at 
 org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:161)
   at 
 org.apache.cassandra.utils.MergeIterator.computeNext(MergeIterator.java:88)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:140)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:135)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver.resolve(RangeSliceResponseResolver.java:120)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver.resolve(RangeSliceResponseResolver.java:43)
 Looking at the code in getReduced:
 {noformat}
 ColumnFamily resolved = versions.size()  1
   ? 
 RowRepairResolver.resolveSuperset(versions)
   : versions.get(0);
 {noformat}
 seems like resolved becomes null when this happens and versions.size is 
 larger than 1.
 RowRepairResolver.resolveSuperset() does actually return null if it cannot 
 resolve anything, so there is definately a case here which can occur and is 
 not handled.
 It may also be an interesting question if it is guaranteed that   
  
 versions.add(current.left.cf);
 can never return null?
 Jonathan suggested on IRC that maybe 
 {noformat}
 ColumnFamily resolved = versions.size()  1
   ? 
 RowRepairResolver.resolveSuperset(versions)
   : versions.get(0);
 if (resolved == null)
   return new Row(key, resolved);
 {noformat}
 could be a fix.

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




svn commit: r1140472 - in /cassandra/branches/cassandra-0.8: CHANGES.txt src/java/org/apache/cassandra/db/SystemTable.java

2011-06-28 Thread slebresne
Author: slebresne
Date: Tue Jun 28 07:58:56 2011
New Revision: 1140472

URL: http://svn.apache.org/viewvc?rev=1140472view=rev
Log:
Avoids race in SystemTable.getCurrentLocalNodeId
patch by slebresne; reviewed by jbellis for CASSANDRA-2824

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

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1140472r1=1140471r2=1140472view=diff
==
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Jun 28 07:58:56 2011
@@ -9,6 +9,7 @@
to ColumnFamilyInputFormat (CASSANDRA-2807)
  * fix potential NPE while scheduling read repair for range slice
(CASSANDRA-2823)
+ * Fix race in SystemTable.getCurrentLocalNodeId (CASSANDRA-2824)
 
 
 0.8.1

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java?rev=1140472r1=1140471r2=1140472view=diff
==
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java
 Tue Jun 28 07:58:56 2011
@@ -380,6 +380,8 @@ public class SystemTable
 ColumnFamily cf = 
table.getColumnFamilyStore(NODE_ID_CF).getColumnFamily(filter);
 if (cf != null)
 {
+// Even though gc_grace==0 on System table, we can have a race 
where we get back tombstones (see CASSANDRA-2824)
+cf = ColumnFamilyStore.removeDeleted(cf, 0);
 assert cf.getColumnCount() = 1;
 if (cf.getColumnCount()  0)
 id = cf.iterator().next().name();




[jira] [Updated] (CASSANDRA-2653) index scan errors out when zero columns are requested

2011-06-28 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-2653:


Attachment: 2653_v3.patch

 index scan errors out when zero columns are requested
 -

 Key: CASSANDRA-2653
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2653
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.6, 0.8.0 beta 2
Reporter: Jonathan Ellis
Assignee: Sylvain Lebresne
Priority: Minor
 Fix For: 0.7.7, 0.8.1

 Attachments: 
 0001-Handle-data-get-returning-null-in-secondary-indexes.patch, 
 0001-Handle-null-returns-in-data-index-query-v0.7.patch, 
 0001-Reset-SSTII-in-EchoedRow-constructor.patch, 2653_v2.patch, 
 2653_v3.patch, v1-0001-CASSANDRA-2653-reproduce-regression.txt


 As reported by Tyler Hobbs as an addendum to CASSANDRA-2401,
 {noformat}
 ERROR 16:13:38,864 Fatal exception in thread Thread[ReadStage:16,5,main]
 java.lang.AssertionError: No data found for 
 SliceQueryFilter(start=java.nio.HeapByteBuffer[pos=10 lim=10 cap=30], 
 finish=java.nio.HeapByteBuffer[pos=17 lim=17 cap=30], reversed=false, 
 count=0] in DecoratedKey(81509516161424251288255223397843705139, 
 6b657931):QueryPath(columnFamilyName='cf', superColumnName='null', 
 columnName='null') (original filter 
 SliceQueryFilter(start=java.nio.HeapByteBuffer[pos=10 lim=10 cap=30], 
 finish=java.nio.HeapByteBuffer[pos=17 lim=17 cap=30], reversed=false, 
 count=0]) from expression 'cf.626972746864617465 EQ 1'
   at 
 org.apache.cassandra.db.ColumnFamilyStore.scan(ColumnFamilyStore.java:1517)
   at 
 org.apache.cassandra.service.IndexScanVerbHandler.doVerb(IndexScanVerbHandler.java:42)
   at 
 org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:72)
   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)
 {noformat}

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




[jira] [Commented] (CASSANDRA-2824) assert err on SystemTable.getCurrentLocalNodeId during a cleanup

2011-06-28 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2824:
---

Integrated in Cassandra-0.8 #195 (See 
[https://builds.apache.org/job/Cassandra-0.8/195/])
Avoids race in SystemTable.getCurrentLocalNodeId
patch by slebresne; reviewed by jbellis for CASSANDRA-2824

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


 assert err on SystemTable.getCurrentLocalNodeId during a cleanup
 

 Key: CASSANDRA-2824
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2824
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.8.0
Reporter: Jackson Chung
Assignee: Sylvain Lebresne
Priority: Minor
 Fix For: 0.8.2

 Attachments: 2824.patch, 2824_v2.patch


 when running nodetool cleanup the following happened:
 $ ./bin/nodetool cleanup --host localhost
 Exception in thread main java.lang.AssertionError
 at 
 org.apache.cassandra.db.SystemTable.getCurrentLocalNodeId(SystemTable.java:383)
 at 
 org.apache.cassandra.utils.NodeId$LocalNodeIdHistory.init(NodeId.java:179)
 at org.apache.cassandra.utils.NodeId.clinit(NodeId.java:38)
 at org.apache.cassandra.utils.NodeId$OneShotRenewer.init(NodeId.java:159)
 at 
 org.apache.cassandra.service.StorageService.forceTableCleanup(StorageService.java:1317)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at 
 com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
 at 
 com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
 at 
 com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
 at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)
 at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)
 at 
 com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
 at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
 at 
 javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1427)
 at 
 javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
 at 
 javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265)
 at 
 javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1360)
 at 
 javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
 at sun.rmi.transport.Transport$1.run(Transport.java:159)
 at java.security.AccessController.doPrivileged(Native Method)
 at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
 at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
 at 
 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
 at 
 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
 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-2823) NPE during range slices with rowrepairs

2011-06-28 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2823:
---

Integrated in Cassandra-0.8 #195 (See 
[https://builds.apache.org/job/Cassandra-0.8/195/])
Fix potential NPE in range slice read repair
patch by slebresne; reviewed by jbellis for CASSANDRA-2823

slebresne : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1140470
Files : 
* /cassandra/branches/cassandra-0.8/CHANGES.txt
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RowRepairResolver.java
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java


 NPE during range slices with rowrepairs
 ---

 Key: CASSANDRA-2823
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2823
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.8.2
 Environment: This is a trunk build with 2521 and 2433
 I somewhat doubt that is related however.
Reporter: Terje Marthinussen
Assignee: Sylvain Lebresne
 Fix For: 0.8.2

 Attachments: 2823.patch


 Doing some heavy testing of relatively fast feeding (5000+ mutations/sec) + 
 repair on all node + range slices.
 Then occasionally killing a node here and there and restarting it.
 Triggers the following NPE
  ERROR [pool-2-thread-3] 2011-06-24 20:56:27,289 Cassandra.java (line 3210) 
 Internal error processing get_range_slices
 java.lang.NullPointerException
   at 
 org.apache.cassandra.service.RowRepairResolver.maybeScheduleRepairs(RowRepairResolver.java:109)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver$2.getReduced(RangeSliceResponseResolver.java:112)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver$2.getReduced(RangeSliceResponseResolver.java:83)
   at 
 org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:161)
   at 
 org.apache.cassandra.utils.MergeIterator.computeNext(MergeIterator.java:88)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:140)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:135)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver.resolve(RangeSliceResponseResolver.java:120)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver.resolve(RangeSliceResponseResolver.java:43)
 Looking at the code in getReduced:
 {noformat}
 ColumnFamily resolved = versions.size()  1
   ? 
 RowRepairResolver.resolveSuperset(versions)
   : versions.get(0);
 {noformat}
 seems like resolved becomes null when this happens and versions.size is 
 larger than 1.
 RowRepairResolver.resolveSuperset() does actually return null if it cannot 
 resolve anything, so there is definately a case here which can occur and is 
 not handled.
 It may also be an interesting question if it is guaranteed that   
  
 versions.add(current.left.cf);
 can never return null?
 Jonathan suggested on IRC that maybe 
 {noformat}
 ColumnFamily resolved = versions.size()  1
   ? 
 RowRepairResolver.resolveSuperset(versions)
   : versions.get(0);
 if (resolved == null)
   return new Row(key, resolved);
 {noformat}
 could be a fix.

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




[jira] [Commented] (CASSANDRA-2653) index scan errors out when zero columns are requested

2011-06-28 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-2653:
-

bq. doesn't this assert still have the the query to the index and the data is 
not atomic problem?

No you're right, I focused on adding back the assert forgetting it wasn't safe 
in the first place. Attaching v3 based on v2, but instead of asserting that the 
row return contains the primary clause column, it skips the row if it doesn't 
contain it. That is, instead of asserting the non-corruption of the index, it 
ignores any possible corruption. But more importantly (one could hope we don't 
have a bug that corrupt indexes), it will avoid returning incoherent result to 
the user in the event of a race between reads and writes.

Trying to prevent the race from happening would require synchronization with 
write, which will be much harder and less efficient. And we probably need to 
have a fix for that out sooner than later (both the error when zero columns are 
requested and the possibly to throw assertion errors wrongly).

In the longer term, I think we should explore the possibility of stopping to 
care whether our secondary indexes are coherent at all time and repair them at 
read time as  this may allow us to get rid of the read-before-write. But it's a 
longer term goal at best and work for another ticket.

 

 index scan errors out when zero columns are requested
 -

 Key: CASSANDRA-2653
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2653
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.6, 0.8.0 beta 2
Reporter: Jonathan Ellis
Assignee: Sylvain Lebresne
Priority: Minor
 Fix For: 0.7.7, 0.8.1

 Attachments: 
 0001-Handle-data-get-returning-null-in-secondary-indexes.patch, 
 0001-Handle-null-returns-in-data-index-query-v0.7.patch, 
 0001-Reset-SSTII-in-EchoedRow-constructor.patch, 2653_v2.patch, 
 2653_v3.patch, v1-0001-CASSANDRA-2653-reproduce-regression.txt


 As reported by Tyler Hobbs as an addendum to CASSANDRA-2401,
 {noformat}
 ERROR 16:13:38,864 Fatal exception in thread Thread[ReadStage:16,5,main]
 java.lang.AssertionError: No data found for 
 SliceQueryFilter(start=java.nio.HeapByteBuffer[pos=10 lim=10 cap=30], 
 finish=java.nio.HeapByteBuffer[pos=17 lim=17 cap=30], reversed=false, 
 count=0] in DecoratedKey(81509516161424251288255223397843705139, 
 6b657931):QueryPath(columnFamilyName='cf', superColumnName='null', 
 columnName='null') (original filter 
 SliceQueryFilter(start=java.nio.HeapByteBuffer[pos=10 lim=10 cap=30], 
 finish=java.nio.HeapByteBuffer[pos=17 lim=17 cap=30], reversed=false, 
 count=0]) from expression 'cf.626972746864617465 EQ 1'
   at 
 org.apache.cassandra.db.ColumnFamilyStore.scan(ColumnFamilyStore.java:1517)
   at 
 org.apache.cassandra.service.IndexScanVerbHandler.doVerb(IndexScanVerbHandler.java:42)
   at 
 org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:72)
   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)
 {noformat}

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




[jira] [Commented] (CASSANDRA-2834) Avoid repair getting started twice at the same time for the same CF

2011-06-28 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-2834:
-

bq. It may seem like it is possible to start repair twice at the same time on 
the same CF?

It is possible. Right now the only cases where we abort a repair quickly is if 
some neighbors are dead.

Repairing twice on the same CF is indeed useless and we can try to avoid it. 
This is however not totally trivial because the two repairs can be started on 
different nodes so we'll have to synchronize somehow. Rather, it's not hard per 
se, but this will require some addition to the network protocol and is thus a 
little longer term that one could hope.

Note that this may be made simpler by CASSANDRA-1740 in that it would propose 
to have a way to abort a repair (which don't have so far).

 Avoid repair getting started twice at the same time for the same CF
 ---

 Key: CASSANDRA-2834
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2834
 Project: Cassandra
  Issue Type: Improvement
Reporter: Terje Marthinussen

 It may seem like it is possible to start repair twice at the same time on the 
 same CF?
 Not 100% verified, but if this is indeed the case, we may want to consider 
 avoiding that including making nodetool repair abort and return and error if 
 repair is attempted on the same CF as one which already have repair running.

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




[jira] [Commented] (CASSANDRA-2521) Move away from Phantom References for Compaction/Memtable

2011-06-28 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-2521:
-

bq. but I guess these may be results of references acquired which are not freed 
as the streaming fills up the disk and fails.

Yes, until we have CASSANDRA-2433 (rebased with this), we don't detect failing 
streaming and thus never delete the files (until restart). Which btw make me 
say that we better have CASSANDRA-2433 if we have this ticket. But that was the 
plan anyway.

bq. there are no less but 53 tmp files. A lot of concurrent streams here!

Though it is not related to this ticket, I'll note that CASSANDRA-2816 only 
stagger the merkle tree creation, not the streaming. That is, the streaming 
will be staggered to some extends, but if the streaming part is much longer 
than the merkle tree creation one, you will still have lots of concurrent 
stream going on. But -tmp files also includes the compaction that are going on, 
and failed repair leaves -tmp file around, which could also help explaining 
there large number. In any case, this is not related to the issue at hand :)

{quote}
However I noticed this in the log:
INFO [Thread-185] 2011-06-28 05:01:15,390 StorageService.java (line 2083) 
requesting GC to free disk space
I guess we can get rid of that?
{quote}

In some cases (mmap with non-sun jvm at least) we are still relying on the GC 
to free space.


Terje, if you can confirm that you didn't saw something utterly wrong with the 
last patch (related to that patch, no repair), I'll commit it. I think having 
it in trunk quicker will help with having more testing quicker. And given that 
we don't want to have bugs in our force unmapping it'll be a good thing. In 
particular, could be good to have someone try that on windows.

 Move away from Phantom References for Compaction/Memtable
 -

 Key: CASSANDRA-2521
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2521
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Chris Goffinet
Assignee: Sylvain Lebresne
 Fix For: 1.0

 Attachments: 
 0001-Use-reference-counting-to-decide-when-a-sstable-can-.patch, 
 0001-Use-reference-counting-to-decide-when-a-sstable-can-v2.patch, 
 0002-Force-unmapping-files-before-deletion-v2.patch, 2521-v3.txt, 2521-v4.txt


 http://wiki.apache.org/cassandra/MemtableSSTable
 Let's move to using reference counting instead of relying on GC to be called 
 in StorageService.

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




[jira] [Commented] (CASSANDRA-2833) CounterColumn should have an optional binary field so that double can be incremented/decremented along with long

2011-06-28 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-2833:
-

Do people really still use double nowadays ?! :)

I mean I'll admit that I don't see right away why you can't use long to track 
durations or other values common to analytics. Don't get me wrong, that may 
require the client to multiply its values by some power of 10, but *not 
feasible* seems a bit of a strong word to me. I guess what I'm saying is that I 
think we should avoid being in the let's have it because it sounds cool 
(a.k.a feature creep) and make sure we stay in let's have it because it is 
generally useful and solve a problem that can't be solved otherwise easily 
land.  And I'm not saying that adding double support is of the former kind, but 
I guess I'm not yet convinced it is completely of the latter kind either.

Initial ranting being done, this is technically doable and fairly easily so.  
This will add a bit of clutter internally (imho, you'd want to add a 
DoubleCounterType (or RealCounterType so people don't think it doubles the 
value each time) and subclass/refactor CounterContext somehow) but probably not 
too much.

 CounterColumn should have an optional binary field so that double can be 
 incremented/decremented along with long
 

 Key: CASSANDRA-2833
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2833
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Joe Stein

 Currently CounterColumn only has a long making it not feasible to track 
 increment/decrement of durations or other values common to analytics 
 represented as a double
 The change I am proposing to implement, after some discussions/advice in the 
 irc to issues raised, is to add a new optional binary field to CounterColumn 
 (thrift).  I was thinking we could call it *operand*
 Under the hood (src/java/org/apache/cassandra/db/CounterColumn.java) I would 
 handle things with byte[] moving between long and double as internal helper 
 functions with case switch on type of operand we are setting might also 
 need an optional enum for type perhaps too so the client can let the server 
 know how it should materialize the bytes for when it += the value stored
 The clients should continue to work as expected and folks looking to use this 
 can just do so.

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




[jira] [Commented] (CASSANDRA-2755) ColumnFamilyRecordWriter fails to throw a write exception encountered after the user begins to close the writer

2011-06-28 Thread Mck SembWever (JIRA)

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

Mck SembWever commented on CASSANDRA-2755:
--

Jonathan: Is your patch being applied?

 ColumnFamilyRecordWriter fails to throw a write exception encountered after 
 the user begins to close the writer
 ---

 Key: CASSANDRA-2755
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2755
 Project: Cassandra
  Issue Type: Bug
  Components: Hadoop
Affects Versions: 0.8.0
Reporter: Greg Katz
Assignee: Mck SembWever
 Attachments: 2755-v2.txt, CASSANDRA-2755.patch


 There appears to be a race condition in {{ColumnFamilyRecordWriter}} that can 
 result in the loss of an exception. Here is how it can happen (W stands for 
 the {{RangeClient}}'s worker thread; U stands for the 
 {{ColumnFamilyRecordWriter}} user's thread):
 # W: {{RangeClient}}'s {{run}} method catches an exception originating in the 
 Thrift client/socket, but doesn't get a chance to set it on the 
 {{lastException}} field before it the thread is preempted.
 # U: The user calls {{close}} which calls {{stopNicely}}. Because the 
 {{lastException}} field is null, {{stopNicely}} does not throw anything. 
 {{close}} then joins on the worker thread.
 # W: The {{RangeClient}}'s {{run}} method sets the {{lastException}} field 
 and exits.
 # U: Although the thread in {{close}} is waiting for the worker thread to 
 exit, it has already checked the {{lastException}} field so it doesn't detect 
 the presence of the last exception. Instead, {{close}} returns without 
 throwing anything.
 This race condition means that intermittently write failures will go 
 undetected.

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




[jira] [Commented] (CASSANDRA-2823) NPE during range slices with rowrepairs

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2823:
---

does 0.7 need this?

 NPE during range slices with rowrepairs
 ---

 Key: CASSANDRA-2823
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2823
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.8.2
 Environment: This is a trunk build with 2521 and 2433
 I somewhat doubt that is related however.
Reporter: Terje Marthinussen
Assignee: Sylvain Lebresne
 Fix For: 0.8.2

 Attachments: 2823.patch


 Doing some heavy testing of relatively fast feeding (5000+ mutations/sec) + 
 repair on all node + range slices.
 Then occasionally killing a node here and there and restarting it.
 Triggers the following NPE
  ERROR [pool-2-thread-3] 2011-06-24 20:56:27,289 Cassandra.java (line 3210) 
 Internal error processing get_range_slices
 java.lang.NullPointerException
   at 
 org.apache.cassandra.service.RowRepairResolver.maybeScheduleRepairs(RowRepairResolver.java:109)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver$2.getReduced(RangeSliceResponseResolver.java:112)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver$2.getReduced(RangeSliceResponseResolver.java:83)
   at 
 org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:161)
   at 
 org.apache.cassandra.utils.MergeIterator.computeNext(MergeIterator.java:88)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:140)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:135)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver.resolve(RangeSliceResponseResolver.java:120)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver.resolve(RangeSliceResponseResolver.java:43)
 Looking at the code in getReduced:
 {noformat}
 ColumnFamily resolved = versions.size()  1
   ? 
 RowRepairResolver.resolveSuperset(versions)
   : versions.get(0);
 {noformat}
 seems like resolved becomes null when this happens and versions.size is 
 larger than 1.
 RowRepairResolver.resolveSuperset() does actually return null if it cannot 
 resolve anything, so there is definately a case here which can occur and is 
 not handled.
 It may also be an interesting question if it is guaranteed that   
  
 versions.add(current.left.cf);
 can never return null?
 Jonathan suggested on IRC that maybe 
 {noformat}
 ColumnFamily resolved = versions.size()  1
   ? 
 RowRepairResolver.resolveSuperset(versions)
   : versions.get(0);
 if (resolved == null)
   return new Row(key, resolved);
 {noformat}
 could be a fix.

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




[jira] [Commented] (CASSANDRA-2755) ColumnFamilyRecordWriter fails to throw a write exception encountered after the user begins to close the writer

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2755:
---

waiting for a +1, wasn't clear if your last comment was intended that way.

 ColumnFamilyRecordWriter fails to throw a write exception encountered after 
 the user begins to close the writer
 ---

 Key: CASSANDRA-2755
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2755
 Project: Cassandra
  Issue Type: Bug
  Components: Hadoop
Affects Versions: 0.8.0
Reporter: Greg Katz
Assignee: Mck SembWever
 Attachments: 2755-v2.txt, CASSANDRA-2755.patch


 There appears to be a race condition in {{ColumnFamilyRecordWriter}} that can 
 result in the loss of an exception. Here is how it can happen (W stands for 
 the {{RangeClient}}'s worker thread; U stands for the 
 {{ColumnFamilyRecordWriter}} user's thread):
 # W: {{RangeClient}}'s {{run}} method catches an exception originating in the 
 Thrift client/socket, but doesn't get a chance to set it on the 
 {{lastException}} field before it the thread is preempted.
 # U: The user calls {{close}} which calls {{stopNicely}}. Because the 
 {{lastException}} field is null, {{stopNicely}} does not throw anything. 
 {{close}} then joins on the worker thread.
 # W: The {{RangeClient}}'s {{run}} method sets the {{lastException}} field 
 and exits.
 # U: Although the thread in {{close}} is waiting for the worker thread to 
 exit, it has already checked the {{lastException}} field so it doesn't detect 
 the presence of the last exception. Instead, {{close}} returns without 
 throwing anything.
 This race condition means that intermittently write failures will go 
 undetected.

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




[jira] [Commented] (CASSANDRA-2755) ColumnFamilyRecordWriter fails to throw a write exception encountered after the user begins to close the writer

2011-06-28 Thread Mck SembWever (JIRA)

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

Mck SembWever commented on CASSANDRA-2755:
--

Yes it was a +1

 ColumnFamilyRecordWriter fails to throw a write exception encountered after 
 the user begins to close the writer
 ---

 Key: CASSANDRA-2755
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2755
 Project: Cassandra
  Issue Type: Bug
  Components: Hadoop
Affects Versions: 0.8.0
Reporter: Greg Katz
Assignee: Mck SembWever
 Attachments: 2755-v2.txt, CASSANDRA-2755.patch


 There appears to be a race condition in {{ColumnFamilyRecordWriter}} that can 
 result in the loss of an exception. Here is how it can happen (W stands for 
 the {{RangeClient}}'s worker thread; U stands for the 
 {{ColumnFamilyRecordWriter}} user's thread):
 # W: {{RangeClient}}'s {{run}} method catches an exception originating in the 
 Thrift client/socket, but doesn't get a chance to set it on the 
 {{lastException}} field before it the thread is preempted.
 # U: The user calls {{close}} which calls {{stopNicely}}. Because the 
 {{lastException}} field is null, {{stopNicely}} does not throw anything. 
 {{close}} then joins on the worker thread.
 # W: The {{RangeClient}}'s {{run}} method sets the {{lastException}} field 
 and exits.
 # U: Although the thread in {{close}} is waiting for the worker thread to 
 exit, it has already checked the {{lastException}} field so it doesn't detect 
 the presence of the last exception. Instead, {{close}} returns without 
 throwing anything.
 This race condition means that intermittently write failures will go 
 undetected.

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




svn commit: r1140550 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java src/java/org/apache/cassandra/service/RowRepairResolver.j

2011-06-28 Thread slebresne
Author: slebresne
Date: Tue Jun 28 12:12:15 2011
New Revision: 1140550

URL: http://svn.apache.org/viewvc?rev=1140550view=rev
Log:
Fix potential NPE during read repair
patch by slebresne; reviewed by jbellis for CASSANDRA-2823

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

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

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

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1140550r1=1140549r2=1140550view=diff
==
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Tue Jun 28 12:12:15 2011
@@ -22,6 +22,7 @@
(CASSANDRA-2766, CASSANDRA-2792)
  * Expose number of threads blocked on submitting memtable to flush
(CASSANDRA-2817)
+ * Fix potential NPE during read repair (CASSANDRA-2823)
 
 
 0.7.6

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java?rev=1140550r1=1140549r2=1140550view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java
 Tue Jun 28 12:12:15 2011
@@ -117,7 +117,9 @@ public class RangeSliceResponseResolver 
 }
 }
 }
-RowRepairResolver.maybeScheduleRepairs(resolved, table, key, 
versions, versionSources);
+// resolved can be null even if versions doesn't have all 
nulls because of the call to removeDeleted in resolveSuperSet
+if (resolved != null)
+RowRepairResolver.maybeScheduleRepairs(resolved, table, 
key, versions, versionSources);
 versions.clear();
 versionSources.clear();
 return new Row(key, resolved);

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/RowRepairResolver.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/RowRepairResolver.java?rev=1140550r1=1140549r2=1140550view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/RowRepairResolver.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/RowRepairResolver.java
 Tue Jun 28 12:12:15 2011
@@ -78,7 +78,9 @@ public class RowRepairResolver extends A
 resolved = resolveSuperset(versions);
 if (logger.isDebugEnabled())
 logger.debug(versions merged);
-maybeScheduleRepairs(resolved, table, key, versions, endpoints);
+// resolved can be null even if versions doesn't have all nulls 
because of the call to removeDeleted in resolveSuperSet
+if (resolved != null)
+maybeScheduleRepairs(resolved, table, key, versions, 
endpoints);
 }
 else
 {




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

2011-06-28 Thread slebresne
Author: slebresne
Date: Tue Jun 28 12:13:51 2011
New Revision: 1140551

URL: http://svn.apache.org/viewvc?rev=1140551view=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)

Propchange: cassandra/branches/cassandra-0.8/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun 28 12:13:51 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7:1026516-1138710,1138996
+/cassandra/branches/cassandra-0.7:1026516-1138710,1138996,1140550
 /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 Tue Jun 28 12:13:51 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-1138710,1138996
+/cassandra/branches/cassandra-0.7/contrib:1026516-1138710,1138996,1140550
 /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 Tue Jun 28 12:13:51 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-1138710,1138996
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1138710,1138996,1140550
 
/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 Tue Jun 28 12:13:51 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-1138710,1138996
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1138710,1138996,1140550
 
/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 Tue Jun 28 12:13:51 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-1138710,1138996

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

2011-06-28 Thread slebresne
Author: slebresne
Date: Tue Jun 28 12:15:18 2011
New Revision: 1140553

URL: http://svn.apache.org/viewvc?rev=1140553view=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/service/RangeSliceResponseResolver.java
cassandra/trunk/src/java/org/apache/cassandra/service/RowRepairResolver.java

Propchange: cassandra/trunk/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun 28 12:15:18 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7:1026516-1138710,1138996
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
-/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1139360
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1139360,1140470
 /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=1140553r1=1140552r2=1140553view=diff
==
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Tue Jun 28 12:15:18 2011
@@ -16,6 +16,8 @@
  * Expose number of threads blocked on submitting memtable to flush
(CASSANDRA-2817)
  * add ability to return endpoints to nodetool (CASSANDRA-2776)
+ * fix potential NPE while scheduling read repair for range slice
+   (CASSANDRA-2823)
 
 
 0.8.1

Propchange: cassandra/trunk/contrib/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun 28 12:15:18 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-1138710,1138996
 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
-/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1139360
+/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1139360,1140470
 /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 Tue Jun 28 12:15:18 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-1138710,1138996
 
/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-1139360
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1139360,1140470
 
/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 Tue Jun 28 12:15:18 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-1138710,1138996
 

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

2011-06-28 Thread slebresne
Author: slebresne
Date: Tue Jun 28 12:16:08 2011
New Revision: 1140554

URL: http://svn.apache.org/viewvc?rev=1140554view=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/db/SystemTable.java

Propchange: cassandra/trunk/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun 28 12:16:08 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7:1026516-1138710,1138996
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
-/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1139360,1140470
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1139360,1140470,1140472
 /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=1140554r1=1140553r2=1140554view=diff
==
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Tue Jun 28 12:16:08 2011
@@ -18,6 +18,7 @@
  * add ability to return endpoints to nodetool (CASSANDRA-2776)
  * fix potential NPE while scheduling read repair for range slice
(CASSANDRA-2823)
+ * Fix race in SystemTable.getCurrentLocalNodeId (CASSANDRA-2824)
 
 
 0.8.1

Propchange: cassandra/trunk/contrib/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun 28 12:16:08 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-1138710,1138996
 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
-/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1139360,1140470
+/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1139360,1140470,1140472
 /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 Tue Jun 28 12:16:08 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-1138710,1138996
 
/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-1139360,1140470
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1139360,1140470,1140472
 
/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 Tue Jun 28 12:16:08 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-1138710,1138996
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654

[jira] [Commented] (CASSANDRA-2823) NPE during range slices with rowrepairs

2011-06-28 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-2823:
-

You're right, 0.7 needs that too. I've committed it there too.

 NPE during range slices with rowrepairs
 ---

 Key: CASSANDRA-2823
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2823
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.8.2
 Environment: This is a trunk build with 2521 and 2433
 I somewhat doubt that is related however.
Reporter: Terje Marthinussen
Assignee: Sylvain Lebresne
 Fix For: 0.8.2

 Attachments: 2823.patch


 Doing some heavy testing of relatively fast feeding (5000+ mutations/sec) + 
 repair on all node + range slices.
 Then occasionally killing a node here and there and restarting it.
 Triggers the following NPE
  ERROR [pool-2-thread-3] 2011-06-24 20:56:27,289 Cassandra.java (line 3210) 
 Internal error processing get_range_slices
 java.lang.NullPointerException
   at 
 org.apache.cassandra.service.RowRepairResolver.maybeScheduleRepairs(RowRepairResolver.java:109)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver$2.getReduced(RangeSliceResponseResolver.java:112)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver$2.getReduced(RangeSliceResponseResolver.java:83)
   at 
 org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:161)
   at 
 org.apache.cassandra.utils.MergeIterator.computeNext(MergeIterator.java:88)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:140)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:135)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver.resolve(RangeSliceResponseResolver.java:120)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver.resolve(RangeSliceResponseResolver.java:43)
 Looking at the code in getReduced:
 {noformat}
 ColumnFamily resolved = versions.size()  1
   ? 
 RowRepairResolver.resolveSuperset(versions)
   : versions.get(0);
 {noformat}
 seems like resolved becomes null when this happens and versions.size is 
 larger than 1.
 RowRepairResolver.resolveSuperset() does actually return null if it cannot 
 resolve anything, so there is definately a case here which can occur and is 
 not handled.
 It may also be an interesting question if it is guaranteed that   
  
 versions.add(current.left.cf);
 can never return null?
 Jonathan suggested on IRC that maybe 
 {noformat}
 ColumnFamily resolved = versions.size()  1
   ? 
 RowRepairResolver.resolveSuperset(versions)
   : versions.get(0);
 if (resolved == null)
   return new Row(key, resolved);
 {noformat}
 could be a fix.

--
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-06-28 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/1397

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

Buildslave for this Build: isis_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch cassandra/trunk] 1140553
Blamelist: slebresne

Build succeeded!

sincerely,
 -The Buildbot



[jira] [Updated] (CASSANDRA-2755) ColumnFamilyRecordWriter fails to throw a write exception encountered after the user begins to close the writer

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-2755:
--

 Priority: Minor  (was: Major)
Affects Version/s: (was: 0.8.0)
   0.7.0
Fix Version/s: 0.8.2
   0.7.7

 ColumnFamilyRecordWriter fails to throw a write exception encountered after 
 the user begins to close the writer
 ---

 Key: CASSANDRA-2755
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2755
 Project: Cassandra
  Issue Type: Bug
  Components: Hadoop
Affects Versions: 0.7.0
Reporter: Greg Katz
Assignee: Mck SembWever
Priority: Minor
 Fix For: 0.7.7, 0.8.2

 Attachments: 2755-v2.txt, CASSANDRA-2755.patch


 There appears to be a race condition in {{ColumnFamilyRecordWriter}} that can 
 result in the loss of an exception. Here is how it can happen (W stands for 
 the {{RangeClient}}'s worker thread; U stands for the 
 {{ColumnFamilyRecordWriter}} user's thread):
 # W: {{RangeClient}}'s {{run}} method catches an exception originating in the 
 Thrift client/socket, but doesn't get a chance to set it on the 
 {{lastException}} field before it the thread is preempted.
 # U: The user calls {{close}} which calls {{stopNicely}}. Because the 
 {{lastException}} field is null, {{stopNicely}} does not throw anything. 
 {{close}} then joins on the worker thread.
 # W: The {{RangeClient}}'s {{run}} method sets the {{lastException}} field 
 and exits.
 # U: Although the thread in {{close}} is waiting for the worker thread to 
 exit, it has already checked the {{lastException}} field so it doesn't detect 
 the presence of the last exception. Instead, {{close}} returns without 
 throwing anything.
 This race condition means that intermittently write failures will go 
 undetected.

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




svn commit: r1140565 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java

2011-06-28 Thread jbellis
Author: jbellis
Date: Tue Jun 28 12:28:00 2011
New Revision: 1140565

URL: http://svn.apache.org/viewvc?rev=1140565view=rev
Log:
fix race that could result in Hadoopwriter failing to throw exception for 
encountered error
patch by Mck SembWever and jbellis for CASSANDRA-2755

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

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1140565r1=1140564r2=1140565view=diff
==
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Tue Jun 28 12:28:00 2011
@@ -23,6 +23,8 @@
  * Expose number of threads blocked on submitting memtable to flush
(CASSANDRA-2817)
  * Fix potential NPE during read repair (CASSANDRA-2823)
+ * fix race that could result in Hadoop writer failing to throw an
+   exception encountered after close() (CASSANDRA-2755)
 
 
 0.7.6

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java?rev=1140565r1=1140564r2=1140565view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java
 Tue Jun 28 12:28:00 2011
@@ -32,15 +32,14 @@ import java.util.concurrent.TimeUnit;
 import org.apache.cassandra.client.RingCache;
 import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.thrift.*;
+import org.apache.cassandra.utils.ByteBufferUtil;
 import org.apache.cassandra.utils.Pair;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.mapreduce.OutputFormat;
 import org.apache.hadoop.mapreduce.RecordWriter;
 import org.apache.hadoop.mapreduce.TaskAttemptContext;
 import org.apache.thrift.TException;
 import org.apache.thrift.transport.TSocket;
 
-import org.apache.cassandra.utils.ByteBufferUtil;
 
 /**
  * The codeColumnFamilyRecordWriter/code maps the output lt;key, valuegt;
@@ -219,27 +218,33 @@ implements org.apache.hadoop.mapred.Reco
 @Override
 public void close(TaskAttemptContext context) throws IOException, 
InterruptedException
 {
-close((org.apache.hadoop.mapred.Reporter)null);
+close();
 }
 
 /** Fills the deprecated RecordWriter interface for streaming. */
 @Deprecated
 public void close(org.apache.hadoop.mapred.Reporter reporter) throws 
IOException
 {
+close();
+}
+
+private void close() throws IOException
+{
+// close all the clients before throwing anything
+IOException clientException = null;
 for (RangeClient client : clients.values())
-client.stopNicely();
-try
 {
-for (RangeClient client : clients.values())
+try
 {
-client.join();
 client.close();
 }
+catch (IOException e)
+{
+clientException = e;
+}
 }
-catch (InterruptedException e)
-{
-throw new AssertionError(e);
-}
+if (clientException != null)
+throw clientException;
 }
 
 /**
@@ -255,6 +260,9 @@ implements org.apache.hadoop.mapred.Reco
 private final BlockingQueuePairByteBuffer, Mutation queue = new 
ArrayBlockingQueuePairByteBuffer,Mutation(queueSize);
 
 private volatile boolean run = true;
+// we want the caller to know if something went wrong, so we record 
any unrecoverable exception while writing
+// so we can throw it on the caller's stack when he calls put() again, 
or if there are no more put calls,
+// when the client is closed.
 private volatile IOException lastException;
 
 private Cassandra.Client thriftClient;
@@ -291,15 +299,25 @@ implements org.apache.hadoop.mapred.Reco
 }
 }
 
-public void stopNicely() throws IOException
+public void close() throws IOException
 {
-if (lastException != null)
-throw lastException;
+// stop the run loop.  this will result in closeInternal being 
called by the time join() finishes.
 run = false;
 interrupt();
+try
+{
+this.join();
+}
+catch (InterruptedException e)
+{
+throw new AssertionError(e);
+}
+
+if (lastException != null)
+throw lastException;

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

2011-06-28 Thread jbellis
Author: jbellis
Date: Tue Jun 28 12:31:51 2011
New Revision: 1140567

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

Modified:
cassandra/branches/cassandra-0.8/   (props changed)
cassandra/branches/cassandra-0.8/CHANGES.txt
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/concurrent/DebuggableThreadPoolExecutor.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/HintedHandOffManager.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionManager.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java

Propchange: cassandra/branches/cassandra-0.8/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun 28 12:31:51 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7:1026516-1138710,1138996,1140550
+/cassandra/branches/cassandra-0.7:1026516-1140565
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
 /cassandra/branches/cassandra-0.8:1090934-1125013,1125041
 /cassandra/branches/cassandra-0.8.0:1125021-1130369

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1140567r1=1140566r2=1140567view=diff
==
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Jun 28 12:31:51 2011
@@ -84,6 +84,8 @@
  * fix repair hanging if a neighbor has nothing to send (CASSANDRA-2797)
  * purge tombstone even if row is in only one sstable (CASSANDRA-2801)
  * Fix wrong purge of deleted cf during compaction (CASSANDRA-2786)
+ * fix race that could result in Hadoop writer failing to throw an
+   exception encountered after close() (CASSANDRA-2755)
 
 
 0.8.0-final
@@ -202,9 +204,6 @@
  * reduce contention on Table.flusherLock (CASSANDRA-1954)
  * try harder to detect failures during streaming, cleaning up temporary
files more reliably (CASSANDRA-2088)
-
-
-0.6.13
  * shut down server for OOM on a Thrift thread (CASSANDRA-2269)
  * fix tombstone handling in repair and sstable2json (CASSANDRA-2279)
  * preserve version when streaming data from old sstables (CASSANDRA-2283)

Propchange: cassandra/branches/cassandra-0.8/contrib/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun 28 12:31:51 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-1138710,1138996,1140550
+/cassandra/branches/cassandra-0.7/contrib:1026516-1140565
 /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 Tue Jun 28 12:31:51 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-1138710,1138996,1140550
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1140565
 
/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

[jira] [Commented] (CASSANDRA-2823) NPE during range slices with rowrepairs

2011-06-28 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2823:
---

Integrated in Cassandra-0.7 #514 (See 
[https://builds.apache.org/job/Cassandra-0.7/514/])
Fix potential NPE during read repair
patch by slebresne; reviewed by jbellis for CASSANDRA-2823

slebresne : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1140550
Files : 
* /cassandra/branches/cassandra-0.7/CHANGES.txt
* 
/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java
* 
/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/RowRepairResolver.java


 NPE during range slices with rowrepairs
 ---

 Key: CASSANDRA-2823
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2823
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.8.2
 Environment: This is a trunk build with 2521 and 2433
 I somewhat doubt that is related however.
Reporter: Terje Marthinussen
Assignee: Sylvain Lebresne
 Fix For: 0.8.2

 Attachments: 2823.patch


 Doing some heavy testing of relatively fast feeding (5000+ mutations/sec) + 
 repair on all node + range slices.
 Then occasionally killing a node here and there and restarting it.
 Triggers the following NPE
  ERROR [pool-2-thread-3] 2011-06-24 20:56:27,289 Cassandra.java (line 3210) 
 Internal error processing get_range_slices
 java.lang.NullPointerException
   at 
 org.apache.cassandra.service.RowRepairResolver.maybeScheduleRepairs(RowRepairResolver.java:109)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver$2.getReduced(RangeSliceResponseResolver.java:112)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver$2.getReduced(RangeSliceResponseResolver.java:83)
   at 
 org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:161)
   at 
 org.apache.cassandra.utils.MergeIterator.computeNext(MergeIterator.java:88)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:140)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:135)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver.resolve(RangeSliceResponseResolver.java:120)
   at 
 org.apache.cassandra.service.RangeSliceResponseResolver.resolve(RangeSliceResponseResolver.java:43)
 Looking at the code in getReduced:
 {noformat}
 ColumnFamily resolved = versions.size()  1
   ? 
 RowRepairResolver.resolveSuperset(versions)
   : versions.get(0);
 {noformat}
 seems like resolved becomes null when this happens and versions.size is 
 larger than 1.
 RowRepairResolver.resolveSuperset() does actually return null if it cannot 
 resolve anything, so there is definately a case here which can occur and is 
 not handled.
 It may also be an interesting question if it is guaranteed that   
  
 versions.add(current.left.cf);
 can never return null?
 Jonathan suggested on IRC that maybe 
 {noformat}
 ColumnFamily resolved = versions.size()  1
   ? 
 RowRepairResolver.resolveSuperset(versions)
   : versions.get(0);
 if (resolved == null)
   return new Row(key, resolved);
 {noformat}
 could be a fix.

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




[jira] [Created] (CASSANDRA-2835) CFMetadata don't set the default for Replicate_on_write correctly

2011-06-28 Thread Sylvain Lebresne (JIRA)
CFMetadata don't set the default for Replicate_on_write correctly 
--

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

Replicate_on_write *must* default to true (defaulting to false is very 
dangerous and imho, the option of setting it to false shouldn't exist in the 
first place) and CFMetadata.DEFAULT_REPLICATE_ON_WRITE is correctly true. But 
it doesn't get set correctly. Instead, the code force the value of the cf_def 
even if it wasn't defined, resulting in setting it to false since that is the 
default value for a boolean in JAVA.

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




[jira] [Updated] (CASSANDRA-2835) CFMetadata don't set the default for Replicate_on_write correctly

2011-06-28 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-2835:


Attachment: 2835.patch

 CFMetadata don't set the default for Replicate_on_write correctly 
 --

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

 Attachments: 2835.patch


 Replicate_on_write *must* default to true (defaulting to false is very 
 dangerous and imho, the option of setting it to false shouldn't exist in the 
 first place) and CFMetadata.DEFAULT_REPLICATE_ON_WRITE is correctly true. But 
 it doesn't get set correctly. Instead, the code force the value of the cf_def 
 even if it wasn't defined, resulting in setting it to false since that is the 
 default value for a boolean in JAVA.

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




[jira] [Commented] (CASSANDRA-2835) CFMetadata don't set the default for Replicate_on_write correctly

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2835:
---

+1

 CFMetadata don't set the default for Replicate_on_write correctly 
 --

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

 Attachments: 2835.patch


 Replicate_on_write *must* default to true (defaulting to false is very 
 dangerous and imho, the option of setting it to false shouldn't exist in the 
 first place) and CFMetadata.DEFAULT_REPLICATE_ON_WRITE is correctly true. But 
 it doesn't get set correctly. Instead, the code force the value of the cf_def 
 even if it wasn't defined, resulting in setting it to false since that is the 
 default value for a boolean in JAVA.

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




[Cassandra Wiki] Update of Counters by SylvainLebresne

2011-06-28 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on Cassandra Wiki for 
change notification.

The Counters page has been changed by SylvainLebresne:
http://wiki.apache.org/cassandra/Counters?action=diffrev1=13rev2=14

  
  == Getting started ==
  
- In order to use counters in Cassandra you need to first set up a cluster, see 
the [[http://wiki.apache.org/cassandra/GettingStarted|Getting started]] guide 
for more information. Currently the counters code is slated for a release in 
Cassandra 0.8.0.
+ In order to use counters in Cassandra you need to first set up a cluster, see 
the [[http://wiki.apache.org/cassandra/GettingStarted|Getting started]] guide 
for more information. Also note that counters are available starting with 
Cassandra 0.8.0.
  
   Configuration 
  
+ To use counters, you have to define a column family (or super column family) 
whose columns will act as counters. To create such a column family `counterCF` 
using the CLI, you will have to do:
- When first setting up the cluster you can specify a column or super column 
that will act as counters.
- For example using the cassandra.yaml configuration file:
- 
  {{{
+ [default@test] create column family counterCF with 
default_validation_class=CounterColumnType and replicate_on_write=true;
- - name: Counter1
-   default_validation_class: CounterColumnType
- 
- - name: SuperCounter1
-   column_type: Super
-   default_validation_class: CounterColumnType
  }}}
+ Setting the `default_validation_class` to `CounterColumnType` indicates that 
the column will be counters. Setting `replicate_on_write=true` will be optional 
starting in 0.8.2, but a bug made it default to false in 0.8.0 and 0.8.1, which 
is unsafe.
  
   Incrementing and accessing counters 
  


svn commit: r1140585 - in /cassandra/branches/cassandra-0.8: CHANGES.txt NEWS.txt build.xml src/java/org/apache/cassandra/config/CFMetaData.java

2011-06-28 Thread slebresne
Author: slebresne
Date: Tue Jun 28 13:14:55 2011
New Revision: 1140585

URL: http://svn.apache.org/viewvc?rev=1140585view=rev
Log:
Fix incorrect default setting for replicate_on_write
patch by slebresne; reviewed by jbellis for CASSANDRA-2835

Modified:
cassandra/branches/cassandra-0.8/CHANGES.txt
cassandra/branches/cassandra-0.8/NEWS.txt
cassandra/branches/cassandra-0.8/build.xml

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/CFMetaData.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1140585r1=1140584r2=1140585view=diff
==
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Jun 28 13:14:55 2011
@@ -10,6 +10,7 @@
  * fix potential NPE while scheduling read repair for range slice
(CASSANDRA-2823)
  * Fix race in SystemTable.getCurrentLocalNodeId (CASSANDRA-2824)
+ * Correctly set default for replicate_on_write (CASSANDRA-2835)
 
 
 0.8.1

Modified: cassandra/branches/cassandra-0.8/NEWS.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/NEWS.txt?rev=1140585r1=1140584r2=1140585view=diff
==
--- cassandra/branches/cassandra-0.8/NEWS.txt (original)
+++ cassandra/branches/cassandra-0.8/NEWS.txt Tue Jun 28 13:14:55 2011
@@ -1,3 +1,17 @@
+0.8.2
+=
+
+Upgrading
+-
+- 0.8.0 and 0.8.1 shipped with a bug that was setting the
+  replicate_on_write option for counter column families to false (this
+  option has no effect on non-counter column family). This is an unsafe
+  default and 0.8.2 correct this, the default for replicate_on_write is
+  now true. It is advised to update your counter column family definitions
+  if replicate_on_write was uncorrectly set to false (before or after
+  upgrade).
+
+
 0.8.1
 =
 

Modified: cassandra/branches/cassandra-0.8/build.xml
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/build.xml?rev=1140585r1=1140584r2=1140585view=diff
==
--- cassandra/branches/cassandra-0.8/build.xml (original)
+++ cassandra/branches/cassandra-0.8/build.xml Tue Jun 28 13:14:55 2011
@@ -25,7 +25,7 @@
 property name=debuglevel value=source,lines,vars/
 
 !-- default version and SCM information (we need the default SCM info as 
people may checkout with git-svn) --
-property name=base.version value=0.8.1/
+property name=base.version value=0.8.2-dev/
 property name=scm.default.path 
value=cassandra/branches/cassandra-0.8/
 property name=scm.default.connection 
value=scm:svn:http://svn.apache.org/repos/asf/${scm.default.path}/
 property name=scm.default.developerConnection 
value=scm:svn:https://svn.apache.org/repos/asf/${scm.default.path}/

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/CFMetaData.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/CFMetaData.java?rev=1140585r1=1140584r2=1140585view=diff
==
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/CFMetaData.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/CFMetaData.java
 Tue Jun 28 13:14:55 2011
@@ -614,6 +614,8 @@ public final class CFMetaData
 {
 if (!cf_def.isSetComment())
 cf_def.setComment();
+if (!cf_def.isSetReplicate_on_write())
+
cf_def.setReplicate_on_write(CFMetaData.DEFAULT_REPLICATE_ON_WRITE);
 if (!cf_def.isSetMin_compaction_threshold())
 
cf_def.setMin_compaction_threshold(CFMetaData.DEFAULT_MIN_COMPACTION_THRESHOLD);
 if (!cf_def.isSetMax_compaction_threshold())




[jira] [Commented] (CASSANDRA-2835) CFMetadata don't set the default for Replicate_on_write correctly

2011-06-28 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-2835:
-

Committed, thanks (I've included a not in the NEWS file as well as updated the 
wiki).

 CFMetadata don't set the default for Replicate_on_write correctly 
 --

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

 Attachments: 2835.patch


 Replicate_on_write *must* default to true (defaulting to false is very 
 dangerous and imho, the option of setting it to false shouldn't exist in the 
 first place) and CFMetadata.DEFAULT_REPLICATE_ON_WRITE is correctly true. But 
 it doesn't get set correctly. Instead, the code force the value of the cf_def 
 even if it wasn't defined, resulting in setting it to false since that is the 
 default value for a boolean in JAVA.

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




[jira] [Commented] (CASSANDRA-957) convenience workflow for replacing dead node

2011-06-28 Thread Vijay (JIRA)

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

Vijay commented on CASSANDRA-957:
-

Thanks Chris, I will give it a try...

 convenience workflow for replacing dead node
 

 Key: CASSANDRA-957
 URL: https://issues.apache.org/jira/browse/CASSANDRA-957
 Project: Cassandra
  Issue Type: Wish
  Components: Core, Tools
Reporter: Jonathan Ellis
 Fix For: 1.0

 Attachments: 
 0001-Support-bringing-back-a-node-to-the-cluster-that-exi.patch, 
 0002-Do-not-include-local-node-when-computing-workMap.patch

   Original Estimate: 24h
  Remaining Estimate: 24h

 Replacing a dead node with a new one is a common operation, but nodetool 
 removetoken followed by bootstrap is inefficient (re-replicating data first 
 to the remaining nodes, then to the new one) and manually bootstrapping to a 
 token just less than the old one's, followed by nodetool removetoken is 
 slightly painful and prone to manual errors.
 First question: how would you expose this in our tool ecosystem?  It needs to 
 be a startup-time option to the new node, so it can't be nodetool, and 
 messing with the config xml definitely takes the convenience out.  A 
 one-off -DreplaceToken=XXY argument?

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




[jira] [Commented] (CASSANDRA-2755) ColumnFamilyRecordWriter fails to throw a write exception encountered after the user begins to close the writer

2011-06-28 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2755:
---

Integrated in Cassandra-0.7 #515 (See 
[https://builds.apache.org/job/Cassandra-0.7/515/])
fix race that could result in Hadoopwriter failing to throw exception for 
encountered error
patch by Mck SembWever and jbellis for CASSANDRA-2755

jbellis : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1140565
Files : 
* /cassandra/branches/cassandra-0.7/CHANGES.txt
* 
/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java


 ColumnFamilyRecordWriter fails to throw a write exception encountered after 
 the user begins to close the writer
 ---

 Key: CASSANDRA-2755
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2755
 Project: Cassandra
  Issue Type: Bug
  Components: Hadoop
Affects Versions: 0.7.0
Reporter: Greg Katz
Assignee: Mck SembWever
Priority: Minor
 Fix For: 0.7.7, 0.8.2

 Attachments: 2755-v2.txt, CASSANDRA-2755.patch


 There appears to be a race condition in {{ColumnFamilyRecordWriter}} that can 
 result in the loss of an exception. Here is how it can happen (W stands for 
 the {{RangeClient}}'s worker thread; U stands for the 
 {{ColumnFamilyRecordWriter}} user's thread):
 # W: {{RangeClient}}'s {{run}} method catches an exception originating in the 
 Thrift client/socket, but doesn't get a chance to set it on the 
 {{lastException}} field before it the thread is preempted.
 # U: The user calls {{close}} which calls {{stopNicely}}. Because the 
 {{lastException}} field is null, {{stopNicely}} does not throw anything. 
 {{close}} then joins on the worker thread.
 # W: The {{RangeClient}}'s {{run}} method sets the {{lastException}} field 
 and exits.
 # U: Although the thread in {{close}} is waiting for the worker thread to 
 exit, it has already checked the {{lastException}} field so it doesn't detect 
 the presence of the last exception. Instead, {{close}} returns without 
 throwing anything.
 This race condition means that intermittently write failures will go 
 undetected.

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




[jira] [Commented] (CASSANDRA-2833) CounterColumn should have an optional binary field so that double can be incremented/decremented along with long

2011-06-28 Thread Joe Stein (JIRA)

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

Joe Stein commented on CASSANDRA-2833:
--

the phrasing *not feasible* was a bit strong.

In general I would argue that the up take of a system would want to have the 
edges smoothed out as it continued so that the flexibility of it being able to 
have workarounds are fantastic but as it evolved those workarounds can be 
internalized to the system.  This burden is not always completely on the 
programming side but in essence the development team and having to explain to 
every developer that touches your system why you are multiplying by 10 and when 
they need to divide by 10 to get data out in the format they want.  This just 
makes for an unclean implementation, granted functional for now with your nice 
workaround, by having to-do some type of naming conventions realPricing, 
longInventory so that folks do not incorrectly infer the wrong implementation 
of the counter in their own work effort.

Not using double as a name anywhere is a really good point that is just going 
to add possible confusion.

And, yes.  floats are used a lot in Analytics in Mobile and Healthcare (at 
least two I can speak about directly) in addition to Advertising.  In mobile 
the duration of users using application is a metric very much sought after and 
used and in Healthcare (as would also hold true for lots of other business 
verticals) when providing analyses of reimbursement between payer and provider. 
 Most often these durations are coupled with a duration count because you do 
not always have 1:1 duration between uses and times you have that data though 
this complex type of counter I think representing as 2 columns (one long and 
one double) so the caller can create their average themselves which is how it 
is done now.

What do you think about the idea to not upset existing users and support new 
ones with the thrift CounterColumn additional optional binary operand field?  
It was not my idea but I think a good one (thanks Stu Hood)?

So the change could then be:

1) create a new CF RealCounterType - this would let the underlying code know to 
use the double instead of the long
2) change CounterColumn thrift and db accordingly so that old clients still 
work but new ones can use this new CF RealCounterType 
 a) either with a optional double realvalue 
 or 
 b) optional binary operand

3) CounterContext seems it needs to have the support between long and double in 
how it wants to pass the data inside for the += in total as well as some 
overloading of writeElement

looking at the context it seems cleaner to make the double in addition to long 
rather than storing it in bytes, granted this is the first time I am looking at 
:) or if we store it in bytes the conversion 

If you and others think this is a good change I am happy to start on it granted 
while it is probably a simple change it will take me some bumps and bruises as 
I go through it to get it working.  

And I do agree that change for the sake of change or because it is cool is 
never a good way to proceed which can be argued for this change, yes.  But I am 
arguing that it is useful 

+1 

but would like to hear from others so this change is not only for me maybe 
everyone else is ok the way it is

 CounterColumn should have an optional binary field so that double can be 
 incremented/decremented along with long
 

 Key: CASSANDRA-2833
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2833
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Joe Stein

 Currently CounterColumn only has a long making it not feasible to track 
 increment/decrement of durations or other values common to analytics 
 represented as a double
 The change I am proposing to implement, after some discussions/advice in the 
 irc to issues raised, is to add a new optional binary field to CounterColumn 
 (thrift).  I was thinking we could call it *operand*
 Under the hood (src/java/org/apache/cassandra/db/CounterColumn.java) I would 
 handle things with byte[] moving between long and double as internal helper 
 functions with case switch on type of operand we are setting might also 
 need an optional enum for type perhaps too so the client can let the server 
 know how it should materialize the bytes for when it += the value stored
 The clients should continue to work as expected and folks looking to use this 
 can just do so.

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




[jira] [Commented] (CASSANDRA-2833) CounterColumn should have an optional binary field so that double can be incremented/decremented along with long

2011-06-28 Thread Rick Shaw (JIRA)

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

Rick Shaw commented on CASSANDRA-2833:
--

A wrinkle that might be worth consideration is that the JDBC driver will 
eventually need an {{AbstractType}} implementation of {{BigDecimal}} 
({{NumericType}}?) in order to complete it data type support in 
{{PreparedStatement}} and {{ResultSet}}.

This data type represents arbitrary-precision signed decimal numbers in a 
generalized way. It has attributes similar to {{BigInteger}} ({{IntegerType}}) 
It is really a {{BigInteger}} representing the unscaled part with a long 
representing the scaling.

This may be a better alternative than Double as a generalized counter type 
targeted at analytics data.

 CounterColumn should have an optional binary field so that double can be 
 incremented/decremented along with long
 

 Key: CASSANDRA-2833
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2833
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Joe Stein

 Currently CounterColumn only has a long making it not feasible to track 
 increment/decrement of durations or other values common to analytics 
 represented as a double
 The change I am proposing to implement, after some discussions/advice in the 
 irc to issues raised, is to add a new optional binary field to CounterColumn 
 (thrift).  I was thinking we could call it *operand*
 Under the hood (src/java/org/apache/cassandra/db/CounterColumn.java) I would 
 handle things with byte[] moving between long and double as internal helper 
 functions with case switch on type of operand we are setting might also 
 need an optional enum for type perhaps too so the client can let the server 
 know how it should materialize the bytes for when it += the value stored
 The clients should continue to work as expected and folks looking to use this 
 can just do so.

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




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

2011-06-28 Thread Mck SembWever (JIRA)

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

Mck SembWever commented on CASSANDRA-2388:
--

bq. It looks like there's a ton of effort put in to avoiding making 
sortByProximity work w/ non-local nodes
Because it's only when that local node is down that we actually need to sort...
When/if DynamicEndpointSnitch's limitation is fixed (and it can sort by 
non-local nodes) then CassandraServer.java need not bypass it. But this won't 
simplify the code in CFRR. Now that CFIF supports multiple initialAddresses the 
method sortEndpointsByProximity(..) in CFIF can be rewritten (ie any connection 
to any initialAddress is all we need, no need to mess around with trying to 
connect through replica's to find information about replicas...)
bq. Wait, why do we even care? local node IS the right host to sort against
No. initialAddress is the right node to sort against. And it should be local 
node. And then we don't care about the replica.
But when initialAddress is down, then we randomly connect to another c* node 
so to find out of the replica we know about which are 1) up, 2) closest, and 3) 
in the same dc. Then it is a random c* node that becomes the local node and 
the call needs to be {{snitch.sortByProximity(initialAddress, addresses)}}.
But yes... the CFRR code is contorted. In many ways i prefer the simplicity of 
the first patch (both in api and in implementation) despite it not being as 
correct. i thought of this fallback to replica as a last resort to keep the 
m/r job running, rather than an actively used feature where 
DynamicEndpointSnitch's scores will maximise performance. But then i'm only 
thinking in terms of a small c* cluster and i certainly am naive about what 
performance gains these scores can give...

 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.7.6, 0.8.0
Reporter: Eldon Stegall
Assignee: Jeremy Hanna
  Labels: hadoop, inputformat
 Fix For: 0.7.7, 0.8.2

 Attachments: 0002_On_TException_try_next_split.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] [Issue Comment Edited] (CASSANDRA-2388) ColumnFamilyRecordReader fails for a given split because a host is down, even if records could reasonably be read from other replica.

2011-06-28 Thread Mck SembWever (JIRA)

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

Mck SembWever edited comment on CASSANDRA-2388 at 6/28/11 2:14 PM:
---

bq. It looks like there's a ton of effort put in to avoiding making 
sortByProximity work w/ non-local nodes
Because it's only when that local node is down that we actually need to sort...
When/if DynamicEndpointSnitch's limitation is fixed (and it can sort by 
non-local nodes) then CassandraServer.java need not bypass it. But this won't 
simplify the code in CFRR. Now that CFIF supports multiple initialAddresses the 
method CFRR.sortEndpointsByProximity(..) can be rewritten (ie any connection to 
any initialAddress is all we need, no need to mess around with trying to 
connect through replica's to find information about replicas...)
bq. Wait, why do we even care? local node IS the right host to sort against
No. initialAddress is the right node to sort against. And it should be local 
node. And then we don't care about the replica.
But when initialAddress is down, then we randomly connect to another c* node 
so to find out of the replica we know about which are 1) up, 2) closest, and 3) 
in the same dc. Then it is a random c* node that becomes the local node and 
the call needs to be {{snitch.sortByProximity(initialAddress, addresses)}}.
But yes... the CFRR code is contorted. In many ways i prefer the simplicity of 
the first patch (both in api and in implementation) despite it not being as 
correct. i thought of this fallback to replica as a last resort to keep the 
m/r job running, rather than an actively used feature where 
DynamicEndpointSnitch's scores will maximise performance. But then i'm only 
thinking in terms of a small c* cluster and i certainly am naive about what 
performance gains these scores can give...

  was (Author: michaelsembwever):
bq. It looks like there's a ton of effort put in to avoiding making 
sortByProximity work w/ non-local nodes
Because it's only when that local node is down that we actually need to sort...
When/if DynamicEndpointSnitch's limitation is fixed (and it can sort by 
non-local nodes) then CassandraServer.java need not bypass it. But this won't 
simplify the code in CFRR. Now that CFIF supports multiple initialAddresses the 
method sortEndpointsByProximity(..) in CFIF can be rewritten (ie any connection 
to any initialAddress is all we need, no need to mess around with trying to 
connect through replica's to find information about replicas...)
bq. Wait, why do we even care? local node IS the right host to sort against
No. initialAddress is the right node to sort against. And it should be local 
node. And then we don't care about the replica.
But when initialAddress is down, then we randomly connect to another c* node 
so to find out of the replica we know about which are 1) up, 2) closest, and 3) 
in the same dc. Then it is a random c* node that becomes the local node and 
the call needs to be {{snitch.sortByProximity(initialAddress, addresses)}}.
But yes... the CFRR code is contorted. In many ways i prefer the simplicity of 
the first patch (both in api and in implementation) despite it not being as 
correct. i thought of this fallback to replica as a last resort to keep the 
m/r job running, rather than an actively used feature where 
DynamicEndpointSnitch's scores will maximise performance. But then i'm only 
thinking in terms of a small c* cluster and i certainly am naive about what 
performance gains these scores can give...
  
 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.7.6, 0.8.0
Reporter: Eldon Stegall
Assignee: Jeremy Hanna
  Labels: hadoop, inputformat
 Fix For: 0.7.7, 0.8.2

 Attachments: 0002_On_TException_try_next_split.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] [Issue Comment Edited] (CASSANDRA-2388) ColumnFamilyRecordReader fails for a given split because a host is down, even if records could reasonably be read from other replica.

2011-06-28 Thread Mck SembWever (JIRA)

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

Mck SembWever edited comment on CASSANDRA-2388 at 6/28/11 2:19 PM:
---

bq. It looks like there's a ton of effort put in to avoiding making 
sortByProximity work w/ non-local nodes
Because it's only when that local node is down that we actually need to sort...
When/if DynamicEndpointSnitch's limitation is fixed (and it can sort by 
non-local nodes) then CassandraServer.java need not bypass it. But this won't 
simplify the code in CFRR. Now that CFIF supports multiple initialAddresses the 
method CFRR.sortEndpointsByProximity(..) can be rewritten (ie any connection to 
any initialAddress is all we need, no need to mess around with trying to 
connect through replica's to find information about replicas...)
bq. Wait, why do we even care? local node IS the right host to sort against
Depends on this is CFRR's local node or CassandraServer's local node... 
CFRR's local node is the right and only node worth sorting against, it being 
the task tracker node. 
But when c* on the task tracker node is down, then we randomly connect to 
another c* node so to find out of the replica we know about which are 1) up, 2) 
closest, and 3) in the same dc. Then it is a random c* node that becomes the 
local node and the call needs to be {{snitch.sortByProximity(initialAddress, 
addresses)}}.
But yes... the CFRR code is contorted. In many ways i prefer the simplicity of 
the first patch (both in api and in implementation) despite it not being as 
correct. i thought of this fallback to replica as a last resort to keep the 
m/r job running, rather than an actively used feature where 
DynamicEndpointSnitch's scores will maximise performance. But then i'm only 
thinking in terms of a small c* cluster and i certainly am naive about what 
performance gains these scores can give...

  was (Author: michaelsembwever):
bq. It looks like there's a ton of effort put in to avoiding making 
sortByProximity work w/ non-local nodes
Because it's only when that local node is down that we actually need to sort...
When/if DynamicEndpointSnitch's limitation is fixed (and it can sort by 
non-local nodes) then CassandraServer.java need not bypass it. But this won't 
simplify the code in CFRR. Now that CFIF supports multiple initialAddresses the 
method CFRR.sortEndpointsByProximity(..) can be rewritten (ie any connection to 
any initialAddress is all we need, no need to mess around with trying to 
connect through replica's to find information about replicas...)
bq. Wait, why do we even care? local node IS the right host to sort against
No. initialAddress is the right node to sort against. And it should be local 
node. And then we don't care about the replica.
But when initialAddress is down, then we randomly connect to another c* node 
so to find out of the replica we know about which are 1) up, 2) closest, and 3) 
in the same dc. Then it is a random c* node that becomes the local node and 
the call needs to be {{snitch.sortByProximity(initialAddress, addresses)}}.
But yes... the CFRR code is contorted. In many ways i prefer the simplicity of 
the first patch (both in api and in implementation) despite it not being as 
correct. i thought of this fallback to replica as a last resort to keep the 
m/r job running, rather than an actively used feature where 
DynamicEndpointSnitch's scores will maximise performance. But then i'm only 
thinking in terms of a small c* cluster and i certainly am naive about what 
performance gains these scores can give...
  
 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.7.6, 0.8.0
Reporter: Eldon Stegall
Assignee: Jeremy Hanna
  Labels: hadoop, inputformat
 Fix For: 0.7.7, 0.8.2

 Attachments: 0002_On_TException_try_next_split.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] [Commented] (CASSANDRA-2388) ColumnFamilyRecordReader fails for a given split because a host is down, even if records could reasonably be read from other replica.

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2388:
---

bq. CFRR's local node is the right and only node worth sorting against, it 
being the task tracker node. 

Right.

bq. Then it is a random c* node that becomes the local node

We still want to sort by proxmity-to-TT, because CFRR connects directly to the 
split owner to do the reads.  initialAddress isn't involved 
post-split-discovery.

Again, all the complexity goes away if we just embed the snitch into CFIF/TT.

One wrinkle: ec2snitch requires gossip, so TT would need a separate local ip to 
participate in the gossip ring.  We could make that optional (and fall back to 
old recognize local data, otherwise you get a random replica behavior 
otherwise).


 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.7.6, 0.8.0
Reporter: Eldon Stegall
Assignee: Jeremy Hanna
  Labels: hadoop, inputformat
 Fix For: 0.7.7, 0.8.2

 Attachments: 0002_On_TException_try_next_split.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-2388) ColumnFamilyRecordReader fails for a given split because a host is down, even if records could reasonably be read from other replica.

2011-06-28 Thread Mck SembWever (JIRA)

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

Mck SembWever updated CASSANDRA-2388:
-

Attachment: CASSANDRA-2388-addition1.patch

Simplify CFRR now that multiple initialAddresses are supported.

 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.7.6, 0.8.0
Reporter: Eldon Stegall
Assignee: Jeremy Hanna
  Labels: hadoop, inputformat
 Fix For: 0.7.7, 0.8.2

 Attachments: 0002_On_TException_try_next_split.patch, 
 CASSANDRA-2388-addition1.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] [Commented] (CASSANDRA-2388) ColumnFamilyRecordReader fails for a given split because a host is down, even if records could reasonably be read from other replica.

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2388:
---

Taking a step back: aren't we optimizing for (1) a corner case with (2) the 
wrong solution?

Here's what I mean:

1) CFRR already prioritizes the local replica.  So if you have = one TT for 
each replica, this only helps if the local C* node dies, BUT the TT does not.  
This doesn't happen often.

2) If we ARE in that situation, the right solution would be to send the job 
to a TT whose local replica IS live, not to read the data from a nonlocal 
replica.  How can we signal that?  

 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.7.6, 0.8.0
Reporter: Eldon Stegall
Assignee: Jeremy Hanna
  Labels: hadoop, inputformat
 Fix For: 0.7.7, 0.8.2

 Attachments: 0002_On_TException_try_next_split.patch, 
 CASSANDRA-2388-addition1.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] [Commented] (CASSANDRA-2653) index scan errors out when zero columns are requested

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2653:
---

+1

 index scan errors out when zero columns are requested
 -

 Key: CASSANDRA-2653
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2653
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.6, 0.8.0 beta 2
Reporter: Jonathan Ellis
Assignee: Sylvain Lebresne
Priority: Minor
 Fix For: 0.7.7, 0.8.1

 Attachments: 
 0001-Handle-data-get-returning-null-in-secondary-indexes.patch, 
 0001-Handle-null-returns-in-data-index-query-v0.7.patch, 
 0001-Reset-SSTII-in-EchoedRow-constructor.patch, 2653_v2.patch, 
 2653_v3.patch, v1-0001-CASSANDRA-2653-reproduce-regression.txt


 As reported by Tyler Hobbs as an addendum to CASSANDRA-2401,
 {noformat}
 ERROR 16:13:38,864 Fatal exception in thread Thread[ReadStage:16,5,main]
 java.lang.AssertionError: No data found for 
 SliceQueryFilter(start=java.nio.HeapByteBuffer[pos=10 lim=10 cap=30], 
 finish=java.nio.HeapByteBuffer[pos=17 lim=17 cap=30], reversed=false, 
 count=0] in DecoratedKey(81509516161424251288255223397843705139, 
 6b657931):QueryPath(columnFamilyName='cf', superColumnName='null', 
 columnName='null') (original filter 
 SliceQueryFilter(start=java.nio.HeapByteBuffer[pos=10 lim=10 cap=30], 
 finish=java.nio.HeapByteBuffer[pos=17 lim=17 cap=30], reversed=false, 
 count=0]) from expression 'cf.626972746864617465 EQ 1'
   at 
 org.apache.cassandra.db.ColumnFamilyStore.scan(ColumnFamilyStore.java:1517)
   at 
 org.apache.cassandra.service.IndexScanVerbHandler.doVerb(IndexScanVerbHandler.java:42)
   at 
 org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:72)
   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)
 {noformat}

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




[jira] [Updated] (CASSANDRA-2653) index scan errors out when zero columns are requested

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-2653:
--

Fix Version/s: (was: 0.8.1)
   0.8.2

 index scan errors out when zero columns are requested
 -

 Key: CASSANDRA-2653
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2653
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.6, 0.8.0 beta 2
Reporter: Jonathan Ellis
Assignee: Sylvain Lebresne
Priority: Minor
 Fix For: 0.7.7, 0.8.2

 Attachments: 
 0001-Handle-data-get-returning-null-in-secondary-indexes.patch, 
 0001-Handle-null-returns-in-data-index-query-v0.7.patch, 
 0001-Reset-SSTII-in-EchoedRow-constructor.patch, 2653_v2.patch, 
 2653_v3.patch, v1-0001-CASSANDRA-2653-reproduce-regression.txt


 As reported by Tyler Hobbs as an addendum to CASSANDRA-2401,
 {noformat}
 ERROR 16:13:38,864 Fatal exception in thread Thread[ReadStage:16,5,main]
 java.lang.AssertionError: No data found for 
 SliceQueryFilter(start=java.nio.HeapByteBuffer[pos=10 lim=10 cap=30], 
 finish=java.nio.HeapByteBuffer[pos=17 lim=17 cap=30], reversed=false, 
 count=0] in DecoratedKey(81509516161424251288255223397843705139, 
 6b657931):QueryPath(columnFamilyName='cf', superColumnName='null', 
 columnName='null') (original filter 
 SliceQueryFilter(start=java.nio.HeapByteBuffer[pos=10 lim=10 cap=30], 
 finish=java.nio.HeapByteBuffer[pos=17 lim=17 cap=30], reversed=false, 
 count=0]) from expression 'cf.626972746864617465 EQ 1'
   at 
 org.apache.cassandra.db.ColumnFamilyStore.scan(ColumnFamilyStore.java:1517)
   at 
 org.apache.cassandra.service.IndexScanVerbHandler.doVerb(IndexScanVerbHandler.java:42)
   at 
 org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:72)
   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)
 {noformat}

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




svn commit: r1140691 - in /cassandra/site: publish/download/index.html publish/index.html src/settings.py

2011-06-28 Thread slebresne
Author: slebresne
Date: Tue Jun 28 15:51:35 2011
New Revision: 1140691

URL: http://svn.apache.org/viewvc?rev=1140691view=rev
Log:
Update web site for 0.8.1 release

Modified:
cassandra/site/publish/download/index.html
cassandra/site/publish/index.html
cassandra/site/src/settings.py

Modified: cassandra/site/publish/download/index.html
URL: 
http://svn.apache.org/viewvc/cassandra/site/publish/download/index.html?rev=1140691r1=1140690r2=1140691view=diff
==
--- cassandra/site/publish/download/index.html (original)
+++ cassandra/site/publish/download/index.html Tue Jun 28 15:51:35 2011
@@ -73,31 +73,31 @@
   
 
   p
-  The latest stable release of Apache Cassandra is 0.8.0
-  (released on 2011-06-02).  iIf you're just
+  The latest stable release of Apache Cassandra is 0.8.1
+  (released on 2011-06-28).  iIf you're just
   starting out, download this one./i
   /p
 
   ul
 li
 a class=filename 
-   
href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.0/apache-cassandra-0.8.0-bin.tar.gz;
+   
href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.1/apache-cassandra-0.8.1-bin.tar.gz;
onclick=javascript: 
pageTracker._trackPageview('/clicks/binary_download');
-  apache-cassandra-0.8.0-bin.tar.gz
+  apache-cassandra-0.8.1-bin.tar.gz
 /a
-[a 
href=http://www.apache.org/dist/cassandra/0.8.0/apache-cassandra-0.8.0-bin.tar.gz.asc;PGP/a]
-[a 
href=http://www.apache.org/dist/cassandra/0.8.0/apache-cassandra-0.8.0-bin.tar.gz.md5;MD5/a]
-[a 
href=http://www.apache.org/dist/cassandra/0.8.0/apache-cassandra-0.8.0-bin.tar.gz.sha;SHA1/a]
+[a 
href=http://www.apache.org/dist/cassandra/0.8.1/apache-cassandra-0.8.1-bin.tar.gz.asc;PGP/a]
+[a 
href=http://www.apache.org/dist/cassandra/0.8.1/apache-cassandra-0.8.1-bin.tar.gz.md5;MD5/a]
+[a 
href=http://www.apache.org/dist/cassandra/0.8.1/apache-cassandra-0.8.1-bin.tar.gz.sha;SHA1/a]
 /li
 li
 a class=filename 
-   
href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.0/apache-cassandra-0.8.0-src.tar.gz;
+   
href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.1/apache-cassandra-0.8.1-src.tar.gz;
onclick=javascript: 
pageTracker._trackPageview('/clicks/source_download');
-  apache-cassandra-0.8.0-src.tar.gz
+  apache-cassandra-0.8.1-src.tar.gz
 /a
-[a 
href=http://www.apache.org/dist/cassandra/0.8.0/apache-cassandra-0.8.0-src.tar.gz.asc;PGP/a]
-[a 
href=http://www.apache.org/dist/cassandra/0.8.0/apache-cassandra-0.8.0-src.tar.gz.md5;MD5/a]
-[a 
href=http://www.apache.org/dist/cassandra/0.8.0/apache-cassandra-0.8.0-src.tar.gz.sha;SHA1/a]
+[a 
href=http://www.apache.org/dist/cassandra/0.8.1/apache-cassandra-0.8.1-src.tar.gz.asc;PGP/a]
+[a 
href=http://www.apache.org/dist/cassandra/0.8.1/apache-cassandra-0.8.1-src.tar.gz.md5;MD5/a]
+[a 
href=http://www.apache.org/dist/cassandra/0.8.1/apache-cassandra-0.8.1-src.tar.gz.sha;SHA1/a]
 /li
   /ul 
 
@@ -162,15 +162,15 @@ New users to Cassandra should be sure to
   h2Download/h2
   div class=inner rc
 p
-The latest release is b0.8.0/b
-span class=relnotes(a 
href=https://svn.apache.org/repos/asf/cassandra/tags/cassandra-0.8.0/CHANGES.txt;Changes/a)/span
+The latest release is b0.8.1/b
+span class=relnotes(a 
href=https://svn.apache.org/repos/asf/cassandra/tags/cassandra-0.8.1/CHANGES.txt;Changes/a)/span
 /p
 
 p
 a class=filename 
-   
href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.0/apache-cassandra-0.8.0-bin.tar.gz;
+   
href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.1/apache-cassandra-0.8.1-bin.tar.gz;
onclick=javascript: 
pageTracker._trackPageview('/clicks/binary_download');
-  apache-cassandra-0.8.0-bin.tar.gz
+  apache-cassandra-0.8.1-bin.tar.gz
 /a
 /p
 
@@ -187,7 +187,7 @@ New users to Cassandra should be sure to
 Bleeding edge development snapshots of Cassandra are available for direct 
download.
   /p
   p
-a 
href=http://hudson.zones.apache.org/hudson/job/Cassandra/lastSuccessfulBuild/artifact/cassandra/build/;Latest
 Builds/a (Hudson)
+a 
href=https://builds.apache.org/job/Cassandra/lastSuccessfulBuild/artifact/cassandra/build/;Latest
 trunk build/a (Jenkins)
   /p
   h3 class=hdrArchived Releases/h3
   p

Modified: cassandra/site/publish/index.html
URL: 
http://svn.apache.org/viewvc/cassandra/site/publish/index.html?rev=1140691r1=1140690r2=1140691view=diff
==
--- cassandra/site/publish/index.html (original)
+++ cassandra/site/publish/index.html Tue Jun 28 15:51:35 2011
@@ -82,15 +82,15 @@
   h2Download/h2
   div class=inner rc
 p
-The latest release is b0.8.0/b
-span class=relnotes(a 
href=https://svn.apache.org/repos/asf/cassandra/tags/cassandra-0.8.0/CHANGES.txt;Changes/a)/span
+The 

svn commit: r1140700 - /cassandra/tags/cassandra-0.8.1/

2011-06-28 Thread slebresne
Author: slebresne
Date: Tue Jun 28 16:09:30 2011
New Revision: 1140700

URL: http://svn.apache.org/viewvc?rev=1140700view=rev
Log:
Create 0.8.1 tag

Added:
cassandra/tags/cassandra-0.8.1/   (props changed)
  - copied from r1139326, cassandra/branches/cassandra-0.8.1/

Propchange: cassandra/tags/cassandra-0.8.1/
--
--- svn:ignore (added)
+++ svn:ignore Tue Jun 28 16:09:30 2011
@@ -0,0 +1,8 @@
+.classpath
+.project
+.settings
+temp-testng-customsuite.xml
+build
+build.properties
+.idea
+out

Propchange: cassandra/tags/cassandra-0.8.1/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Tue Jun 28 16:09:30 2011
@@ -0,0 +1,12 @@
+/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
+/cassandra/branches/cassandra-0.7:1026516-1133874,1135638
+/cassandra/branches/cassandra-0.7.0:1053690-1055654
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125041
+/cassandra/branches/cassandra-0.8.0:1125021-1130369
+/cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689
+/cassandra/tags/cassandra-0.8.0-rc1:1102511-1125020
+/cassandra/trunk:1129049-1129050,1129065
+/incubator/cassandra/branches/cassandra-0.3:774578-796573
+/incubator/cassandra/branches/cassandra-0.4:810145-834239,834349-834350
+/incubator/cassandra/branches/cassandra-0.5:72-915439
+/incubator/cassandra/branches/cassandra-0.6:911237-922688




[jira] [Created] (CASSANDRA-2836) Add CFS.estimatedKeys to cfstats output

2011-06-28 Thread Brandon Williams (JIRA)
Add CFS.estimatedKeys to cfstats output
---

 Key: CASSANDRA-2836
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2836
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Brandon Williams
Priority: Trivial
 Fix For: 0.8.2


People ask for this all the time and making them resort to the hell that is JMX 
is not pleasant.

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




[jira] [Commented] (CASSANDRA-2521) Move away from Phantom References for Compaction/Memtable

2011-06-28 Thread Terje Marthinussen (JIRA)

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

Terje Marthinussen commented on CASSANDRA-2521:
---

Latest iteration of this patch look great in my case, but please note again, I 
have not tested mmap.

Maybe you can make the full GC trigger conditional if mmap is used?

Only thing missing beyond that is to get this into 0.8. 

Disk use is very significantly improved in some cases and I think this could 
easily be the biggest improvement you can do in 0.8.2 in terms of operation 
friendliness.

Regarding the above mentioned tmp tables, there is definitely issues there, but 
don't think it is related to this patch so feel free to merge.


 Move away from Phantom References for Compaction/Memtable
 -

 Key: CASSANDRA-2521
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2521
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Chris Goffinet
Assignee: Sylvain Lebresne
 Fix For: 1.0

 Attachments: 
 0001-Use-reference-counting-to-decide-when-a-sstable-can-.patch, 
 0001-Use-reference-counting-to-decide-when-a-sstable-can-v2.patch, 
 0002-Force-unmapping-files-before-deletion-v2.patch, 2521-v3.txt, 2521-v4.txt


 http://wiki.apache.org/cassandra/MemtableSSTable
 Let's move to using reference counting instead of relying on GC to be called 
 in StorageService.

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




[jira] [Commented] (CASSANDRA-2836) Add CFS.estimatedKeys to cfstats output

2011-06-28 Thread Joe Stein (JIRA)

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

Joe Stein commented on CASSANDRA-2836:
--

so the change looks like adding something like this

{code}

outs.println(\t\tNumber of Keys (estimate):  + cfstore.estimateKeys());

{code}

maybe between

{code}

outs.println(\t\tSpace used (total):  + cfstore.getTotalDiskSpaceUsed());
outs.println(\t\tNumber of Keys (estimate):  + cfstore.estimateKeys());   

outs.println(\t\tMemtable Columns Count:  + 
cfstore.getMemtableColumnsCount());

{code}

makes sense

in src/java/org/apache/cassandra/tools/NodeCmd.java



 Add CFS.estimatedKeys to cfstats output
 ---

 Key: CASSANDRA-2836
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2836
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Brandon Williams
Priority: Trivial
 Fix For: 0.8.2


 People ask for this all the time and making them resort to the hell that is 
 JMX is not pleasant.

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




[jira] [Updated] (CASSANDRA-2802) Enable encryption for data across the DC only.

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-2802:
--

  Component/s: (was: Contrib)
   Core
 Priority: Minor  (was: Trivial)
Affects Version/s: (was: 0.7.7)
   0.7.0
Fix Version/s: (was: 0.8.1)
   0.8.2

 Enable encryption for data across the DC only.
 --

 Key: CASSANDRA-2802
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2802
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Affects Versions: 0.7.0
 Environment: JVM
Reporter: Vijay
Assignee: Vijay
Priority: Minor
 Fix For: 0.8.2


 Make DC level Encryption option
 1) Modify EncryptionOptions to add inter_dc option.
 2) Modify OutboundTCPConnection.connect() to check if it is in the same DC 
 and if the encryption option is enabled.

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




[jira] [Updated] (CASSANDRA-2836) Add CFS.estimatedKeys to cfstats output

2011-06-28 Thread Joe Stein (JIRA)

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

Joe Stein updated CASSANDRA-2836:
-

Attachment: 2836.txt

 Add CFS.estimatedKeys to cfstats output
 ---

 Key: CASSANDRA-2836
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2836
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Brandon Williams
Priority: Trivial
 Fix For: 0.8.2

 Attachments: 2836.txt


 People ask for this all the time and making them resort to the hell that is 
 JMX is not pleasant.

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




[jira] [Assigned] (CASSANDRA-2677) Optimize streaming to be single-pass

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis reassigned CASSANDRA-2677:
-

Assignee: (was: Sylvain Lebresne)

 Optimize streaming to be single-pass
 

 Key: CASSANDRA-2677
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2677
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Jonathan Ellis
Priority: Minor
 Fix For: 0.8.2


 Streaming currently is a two-pass operation: one to write the Data component 
 do disk from the socket, then another to build the index and bloom filter 
 from it.  This means we do about 2x the i/o we would if we created the index 
 and BF during the original write.
 For node movement this was not considered to be a Big Deal because the stream 
 target is not a member of the ring, so we can be inefficient without hurting 
 live queries.  But optimizing node movement to not require un/rebootstrap 
 (CASSANDRA-1427) and bulk load (CASSANDRA-1278) mean we can stream to live 
 nodes too.
 The main obstacle here is we don't know how many keys will be in the new 
 sstable ahead of time, which we need to size the bloom filter correctly. We 
 can solve this by including that information (or a close approximation) in 
 the stream setup -- the source node can calculate that without hitting disk 
 from the in-memory index summary.

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




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

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis reassigned CASSANDRA-2034:
-

Assignee: Patricio Echague  (was: Sylvain Lebresne)

 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

   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] [Updated] (CASSANDRA-2506) Push read repair setting down to the DC-level

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-2506:
--

Assignee: Patricio Echague  (was: Brandon Williams)

 Push read repair setting down to the DC-level
 -

 Key: CASSANDRA-2506
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2506
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Brandon Williams
Assignee: Patricio Echague
 Fix For: 1.0


 Currently, read repair is a global setting.  However, when you have two DCs 
 and use one for analytics, it would be nice to turn it off only for that DC 
 so the live DC serving the application can still benefit from it.

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




svn commit: r1140751 - in /cassandra/branches/cassandra-0.8: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/gms/ src/java/org/apache/cassandra/net/

2011-06-28 Thread jbellis
Author: jbellis
Date: Tue Jun 28 17:50:43 2011
New Revision: 1140751

URL: http://svn.apache.org/viewvc?rev=1140751view=rev
Log:
fix Message version propagation fromold nodes to new ones
patch by brandonwilliams and jbellis for CASSANDRA-2818

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/gms/Gossiper.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/IncomingTcpConnection.java

Propchange: cassandra/branches/cassandra-0.8/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun 28 17:50:43 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7:1026516-1140565
+/cassandra/branches/cassandra-0.7:1026516-1140567
 /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 Tue Jun 28 17:50:43 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-1140565
+/cassandra/branches/cassandra-0.7/contrib:1026516-1140567
 /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 Tue Jun 28 17:50:43 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-1140565
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1140567
 
/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 Tue Jun 28 17:50:43 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-1140565
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1140567
 
/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 Tue Jun 28 17:50:43 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

[jira] [Resolved] (CASSANDRA-2818) 0.8.0 is unable to participate with nodes using a _newer_ protocol version

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis resolved CASSANDRA-2818.
---

Resolution: Fixed

committed

 0.8.0 is unable to participate with nodes using a _newer_ protocol version
 --

 Key: CASSANDRA-2818
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2818
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.8.0
Reporter: Michael Allen
Assignee: Brandon Williams
Priority: Minor
 Fix For: 0.8.2

 Attachments: 2818-disconnect.txt, 2818-v2.txt, 2818-v3.txt, 
 2818-v4.txt, 2818.txt


 When a 0.8.1 node tries to join a 0.8.0 ring, we see an endless supply of 
 these in system.log:
 INFO [Thread-4] 2011-06-23 21:14:04,149 IncomingTcpConnection.java (line 103) 
 Received connection from newer protocol version. Ignorning message.
 and the node never joins the ring.

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




svn commit: r1140759 - /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java

2011-06-28 Thread brandonwilliams
Author: brandonwilliams
Date: Tue Jun 28 17:59:17 2011
New Revision: 1140759

URL: http://svn.apache.org/viewvc?rev=1140759view=rev
Log:
Add CFS.estimatedKeys to cfstats output.
Patch by Joe Stein, reviewed by brandonwilliams for CASSANDRA-2836

Modified:

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=1140759r1=1140758r2=1140759view=diff
==
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java
 Tue Jun 28 17:59:17 2011
@@ -445,6 +445,7 @@ public class NodeCmd
 outs.println(\t\tSSTable count:  + 
cfstore.getLiveSSTableCount());
 outs.println(\t\tSpace used (live):  + 
cfstore.getLiveDiskSpaceUsed());
 outs.println(\t\tSpace used (total):  + 
cfstore.getTotalDiskSpaceUsed());
+outs.println(\t\tNumber of Keys (estimate):  + 
cfstore.estimateKeys());  
 outs.println(\t\tMemtable Columns Count:  + 
cfstore.getMemtableColumnsCount());
 outs.println(\t\tMemtable Data Size:  + 
cfstore.getMemtableDataSize());
 outs.println(\t\tMemtable Switch Count:  + 
cfstore.getMemtableSwitchCount());




svn commit: r1140760 - in /cassandra/branches/cassandra-0.8: ./ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/net/ src/java/org/apache/cassandra/service/ src/java/org/apache/cassandr

2011-06-28 Thread jbellis
Author: jbellis
Date: Tue Jun 28 17:59:21 2011
New Revision: 1140760

URL: http://svn.apache.org/viewvc?rev=1140760view=rev
Log:
revert r1133167 (#2280)

Modified:
cassandra/branches/cassandra-0.8/CHANGES.txt
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/Table.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.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/StorageService.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/streaming/StreamIn.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/streaming/StreamOut.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/streaming/StreamRequestMessage.java

cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/streaming/StreamRequestVerbHandler.java

cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/streaming/SerializationsTest.java

cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1140760r1=1140759r2=1140760view=diff
==
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Jun 28 17:59:21 2011
@@ -50,14 +50,12 @@
  * throttle migration replay (CASSANDRA-2714)
  * optimize column serializer creation (CASSANDRA-2716)
  * Added support for making bootstrap retry if nodes flap (CASSANDRA-2644)
- * Added statusthrift to nodetool to report if thrift server is running
-   (CASSANDRA-2722)
+ * Added statusthrift to nodetool to report if thrift server is running 
(CASSANDRA-2722)
  * Fixed rows being cached if they do not exist (CASSANDRA-2723)
  * fix truncate/compaction race (CASSANDRA-2673)
  * Support passing tableName and cfName to RowCacheProviders (CASSANDRA-2702)
  * workaround large resultsets causing large allocation retention
by nio sockets (CASSANDRA-2654)
- * restrict repair streaming to specific columnfamilies (CASSANDRA-2280)
  * fix nodetool ring use with Ec2Snitch (CASSANDRA-2733)
  * fix inconsistency window during bootstrap (CASSANDRA-833)
  * fix removing columns and subcolumns that are supressed by a row or

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/Table.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/Table.java?rev=1140760r1=1140759r2=1140760view=diff
==
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/Table.java 
(original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/Table.java 
Tue Jun 28 17:59:21 2011
@@ -253,7 +253,7 @@ public class Table
 }
 
 /**
- * @return A list of open SSTableReaders
+ * @return A list of open SSTableReaders (TODO: ensure that the caller 
doesn't modify these).
  */
 public ListSSTableReader getAllSSTables()
 {

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java?rev=1140760r1=1140759r2=1140760view=diff
==
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java
 Tue Jun 28 17:59:21 2011
@@ -58,9 +58,7 @@ import org.cliffc.high_scale_lib.NonBloc
 public final class MessagingService implements MessagingServiceMBean
 {
 public static final int VERSION_07 = 1;
-public static final int VERSION_080 = 2;
-public static final int version_ = 81;
-
+public static final int version_ = 2;
 //TODO: make this parameter dynamic somehow.  Not sure if config is 
appropriate.
 private SerializerType serializerType_ = SerializerType.BINARY;
 

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AntiEntropyService.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AntiEntropyService.java?rev=1140760r1=1140759r2=1140760view=diff
==
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AntiEntropyService.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AntiEntropyService.java
 Tue Jun 28 17:59:21 2011
@@ -494,7 +494,7 @@ public class 

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

2011-06-28 Thread jbellis
Author: jbellis
Date: Tue Jun 28 18:00:30 2011
New Revision: 1140762

URL: http://svn.apache.org/viewvc?rev=1140762view=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/net/MessagingService.java

Propchange: cassandra/trunk/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun 28 18:00:30 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7:1026516-1140567
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
-/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1140755
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1140755,1140760
 /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=1140762r1=1140761r2=1140762view=diff
==
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Tue Jun 28 18:00:30 2011
@@ -7,6 +7,7 @@
(CASSANDRA-2062)
  * Fixed the ability to set compaction strategy in cli using create column 
family command (CASSANDRA-2778)
  * clean up tmp files after failed compaction (CASSANDRA-2468)
+ * restrict repair streaming to specific columnfamilies (CASSANDRA-2280)
 
 
 0.8.2
@@ -71,7 +72,6 @@
  * fix truncate/compaction race (CASSANDRA-2673)
  * workaround large resultsets causing large allocation retention
by nio sockets (CASSANDRA-2654)
- * restrict repair streaming to specific columnfamilies (CASSANDRA-2280)
  * fix nodetool ring use with Ec2Snitch (CASSANDRA-2733)
  * fix inconsistency window during bootstrap (CASSANDRA-833)
  * fix removing columns and subcolumns that are supressed by a row or

Propchange: cassandra/trunk/contrib/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun 28 18:00:30 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-1140567
 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
-/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1140755
+/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1140755,1140760
 /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 Tue Jun 28 18:00:30 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-1140567
 
/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-1140755
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1140755,1140760
 
/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 Tue Jun 28 18:00:30 2011
@@ 

[jira] [Updated] (CASSANDRA-2280) Request specific column families using StreamIn

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-2280:
--

Fix Version/s: (was: 0.8.2)
   1.0

Reverted from 0.8 b/c of CASSANDRA-2818.

 Request specific column families using StreamIn
 ---

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

 Attachments: 
 0001-Allow-specific-column-families-to-be-requested-for-str.txt, 
 0001-Allow-specific-column-families-to-be-requested-for-str.txt, 2280-v3.txt, 
 2280-v4.txt, 2280-v5.txt


 StreamIn.requestRanges only specifies a keyspace, meaning that requesting a 
 range will request it for all column families: if you have a large number of 
 CFs, this can cause quite a headache.

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




[jira] [Resolved] (CASSANDRA-2836) Add CFS.estimatedKeys to cfstats output

2011-06-28 Thread Brandon Williams (JIRA)

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

Brandon Williams resolved CASSANDRA-2836.
-

Resolution: Fixed

Committed, thanks!

 Add CFS.estimatedKeys to cfstats output
 ---

 Key: CASSANDRA-2836
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2836
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Brandon Williams
Assignee: Joe Stein
Priority: Trivial
 Fix For: 0.8.2

 Attachments: 2836.txt


 People ask for this all the time and making them resort to the hell that is 
 JMX is not pleasant.

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




[jira] [Assigned] (CASSANDRA-2836) Add CFS.estimatedKeys to cfstats output

2011-06-28 Thread Brandon Williams (JIRA)

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

Brandon Williams reassigned CASSANDRA-2836:
---

Assignee: Joe Stein

 Add CFS.estimatedKeys to cfstats output
 ---

 Key: CASSANDRA-2836
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2836
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Brandon Williams
Assignee: Joe Stein
Priority: Trivial
 Fix For: 0.8.2

 Attachments: 2836.txt


 People ask for this all the time and making them resort to the hell that is 
 JMX is not pleasant.

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




[jira] [Commented] (CASSANDRA-2491) A new config parameter, broadcast_address

2011-06-28 Thread Brandon Williams (JIRA)

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

Brandon Williams commented on CASSANDRA-2491:
-

This looks good, but now I'm getting a patch error:


patch:  malformed patch at line 198: Index: 
src/java/org/apache/cassandra/db/HintedHandOffManager.java


 A new config parameter, broadcast_address
 -

 Key: CASSANDRA-2491
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2491
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
 Environment: x86_64 GNU/Linux
Reporter: Khee Chin
Assignee: Khee Chin
Priority: Trivial
  Labels: patch
 Fix For: 1.0

 Attachments: 2491_broadcast_address.patch, 
 2491_broadcast_address_v2.patch, 2491_broadcast_address_v3.patch, 
 2491_broadcast_address_v4.patch, 2491_broadcast_address_v5.patch, 
 2491_broadcast_address_v6.patch

   Original Estimate: 336h
  Remaining Estimate: 336h

 A new config parameter, broadcast_address
 In a cluster setup where one or more nodes is behind a firewall and has a 
 private ip address, listen_address does not allow the hosts behind the 
 firewalls to be discovered by other nodes.
 Attached is a patch that introduces a new config parameter broadcast_address 
 which allows Cassandra nodes to explicitly specify their external ip address. 
 In addition, this allows listen_address to be set to 0.0.0.0 on the already 
 firewalled node.
 broadcast_address fallsback to listen_address when it is not stated.

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




[jira] [Created] (CASSANDRA-2837) Setting RR Chance via CliClient results in chance being too low

2011-06-28 Thread Bill de hOra (JIRA)
Setting RR Chance via CliClient results in chance being too low 


 Key: CASSANDRA-2837
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2837
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.6
Reporter: Bill de hOra


running a command like 

{noformat}
update column family shorturls with read_repair_chance=0.4;
{noformat}

results in the value being set to 0.0040.

Affects 0.7.6.-2; seems to be fixed on trunk/0.8.

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




[jira] [Assigned] (CASSANDRA-2837) Setting RR Chance via CliClient results in chance being too low

2011-06-28 Thread Jon Hermes (JIRA)

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

Jon Hermes reassigned CASSANDRA-2837:
-

Assignee: Jon Hermes

 Setting RR Chance via CliClient results in chance being too low 
 

 Key: CASSANDRA-2837
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2837
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.6
Reporter: Bill de hOra
Assignee: Jon Hermes

 running a command like 
 {noformat}
 update column family shorturls with read_repair_chance=0.4;
 {noformat}
 results in the value being set to 0.0040.
 Affects 0.7.6.-2; seems to be fixed on trunk/0.8.

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




[jira] [Updated] (CASSANDRA-2837) Setting RR Chance via CliClient results in chance being too low

2011-06-28 Thread Bill de hOra (JIRA)

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

Bill de hOra updated CASSANDRA-2837:


Description: 
running a command like 

{noformat}
update column family shorturls with read_repair_chance=0.4;
{noformat}

results in the value being set to 0.0040. Was expecting it to be 0.4.

Affects 0.7.6.-2; seems to be fixed on trunk/0.8.

  was:
running a command like 

{noformat}
update column family shorturls with read_repair_chance=0.4;
{noformat}

results in the value being set to 0.0040.

Affects 0.7.6.-2; seems to be fixed on trunk/0.8.

   Assignee: (was: Jon Hermes)

 Setting RR Chance via CliClient results in chance being too low 
 

 Key: CASSANDRA-2837
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2837
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.6
Reporter: Bill de hOra

 running a command like 
 {noformat}
 update column family shorturls with read_repair_chance=0.4;
 {noformat}
 results in the value being set to 0.0040. Was expecting it to be 0.4.
 Affects 0.7.6.-2; seems to be fixed on trunk/0.8.

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




[jira] [Updated] (CASSANDRA-2837) Setting RR Chance via CliClient results in chance being too low

2011-06-28 Thread Jon Hermes (JIRA)

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

Jon Hermes updated CASSANDRA-2837:
--

Attachment: 2837.txt

Straightforward patch.
If the help says it expects a double from 0.0 to 1.0, it shouldn't then divide 
by 100 as if expecting a percentage.

 Setting RR Chance via CliClient results in chance being too low 
 

 Key: CASSANDRA-2837
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2837
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.6
Reporter: Bill de hOra
 Fix For: 0.7.7

 Attachments: 2837.txt


 running a command like 
 {noformat}
 update column family shorturls with read_repair_chance=0.4;
 {noformat}
 results in the value being set to 0.0040. Was expecting it to be 0.4.
 Affects 0.7.6.-2; seems to be fixed on trunk/0.8.

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




[jira] [Assigned] (CASSANDRA-2837) Setting RR Chance via CliClient results in chance being too low

2011-06-28 Thread Jon Hermes (JIRA)

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

Jon Hermes reassigned CASSANDRA-2837:
-

Assignee: Jon Hermes

 Setting RR Chance via CliClient results in chance being too low 
 

 Key: CASSANDRA-2837
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2837
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.6
Reporter: Bill de hOra
Assignee: Jon Hermes
Priority: Minor
 Fix For: 0.7.7

 Attachments: 2837.txt


 running a command like 
 {noformat}
 update column family shorturls with read_repair_chance=0.4;
 {noformat}
 results in the value being set to 0.0040. Was expecting it to be 0.4.
 Affects 0.7.6.-2; seems to be fixed on trunk/0.8.

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




[jira] [Updated] (CASSANDRA-2837) Setting RR Chance via CliClient results in chance being too low

2011-06-28 Thread Jon Hermes (JIRA)

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

Jon Hermes updated CASSANDRA-2837:
--

 Priority: Minor  (was: Major)
Fix Version/s: 0.7.7

 Setting RR Chance via CliClient results in chance being too low 
 

 Key: CASSANDRA-2837
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2837
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.6
Reporter: Bill de hOra
Priority: Minor
 Fix For: 0.7.7

 Attachments: 2837.txt


 running a command like 
 {noformat}
 update column family shorturls with read_repair_chance=0.4;
 {noformat}
 results in the value being set to 0.0040. Was expecting it to be 0.4.
 Affects 0.7.6.-2; seems to be fixed on trunk/0.8.

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




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

2011-06-28 Thread Brandon Williams (JIRA)

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

Brandon Williams commented on CASSANDRA-2388:
-

bq. If we ARE in that situation, the right solution would be to send the job 
to a TT whose local replica IS live, not to read the data from a nonlocal 
replica. How can we signal that?

ISTM the right thing to do in that situation is just fail and let the JT 
reschedule somewhere else.

 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.7.6, 0.8.0
Reporter: Eldon Stegall
Assignee: Jeremy Hanna
  Labels: hadoop, inputformat
 Fix For: 0.7.7, 0.8.2

 Attachments: 0002_On_TException_try_next_split.patch, 
 CASSANDRA-2388-addition1.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] [Commented] (CASSANDRA-2383) log4j unable to load properties file from classpath

2011-06-28 Thread David Allsopp (JIRA)

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

David Allsopp commented on CASSANDRA-2383:
--

OK, have gone around in circles a bit on this!

-Dlog4j.defaultInitOverride enables AbstractCassandraDaemon to take charge of 
the log4j configuration in order to make it dynamic (you can change the log4j 
config file, and it should be updated using the log4j PropertyConfigurator 
every 10 seconds).

The default value of log4j.configuration in the code and in the batch file is 
log4j-server.properties, which is not a valid URL, so we drop into:

{noformat} 
configLocation = 
AbstractCassandraDaemon.class.getClassLoader().getResource(config);
{noformat} 

as you said before. This *does* detect the correct file from 
CASSANDRA_HOME/conf, since log4j logs the *full path* even though we only 
supply the filename log4j-server.properties:

{noformat} 
log4j: 
[/C:/Users/David/Key%20Value/apache-cassandra-0.7.6-2/conf/log4j-server.properties]
 does not exist.
{noformat} 

getResource() returns a URL. Converting this to a file using getFile() works 
fine when there are no spaces, and you can verify that the file exists. If 
there are spaces, then this conversion produces a filename that includes the 
%20 encoding for spaces - this is an incorrect filename.

We need instead to convert using:

{noformat} 
new File(configLocation.toURI());
{noformat} 

(with appropriate exception handling for URISyntaxException) which produces a 
filename with spaces rather than %20.


 log4j unable to load properties file from classpath
 ---

 Key: CASSANDRA-2383
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2383
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Affects Versions: 0.7.4
 Environment: OS : windows
 java : 1.6.0.23
Reporter: david lee
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.7.7


 when cassandra home folder is placed inside a folder which has space 
 characters in its name,
 log4j settings are not properly loaded and warning messages are shown.

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




[jira] [Issue Comment Edited] (CASSANDRA-2383) log4j unable to load properties file from classpath

2011-06-28 Thread David Allsopp (JIRA)

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

David Allsopp edited comment on CASSANDRA-2383 at 6/28/11 9:24 PM:
---

OK, have gone around in circles a bit on this!

-Dlog4j.defaultInitOverride enables AbstractCassandraDaemon to take charge of 
the log4j configuration in order to make it dynamic (you can change the log4j 
config file, and it should be updated using the log4j PropertyConfigurator 
every 10 seconds).

The default value of log4j.configuration in the code and in the batch file is 
log4j-server.properties, which is not a valid URL, so we drop into:

{noformat} configLocation = 
AbstractCassandraDaemon.class.getClassLoader().getResource(config);{noformat} 

as you said before. This *does* detect the correct file from 
CASSANDRA_HOME/conf, since log4j logs the *full path* even though we only 
supply the filename log4j-server.properties:

{noformat} log4j: 
[/C:/Users/David/Key%20Value/apache-cassandra-0.7.6-2/conf/log4j-server.properties]
 does not exist.{noformat} 

getResource() returns a URL. Converting this to a file using getFile() works 
fine when there are no spaces; one can verify that the file exists 
(File.exists() == true). If there are spaces, then this conversion produces a 
filename that includes the %20 encoding for spaces - this is an incorrect 
filename.

We need instead to convert using:

{noformat} new File(configLocation.toURI());{noformat} 

(with appropriate exception handling for URISyntaxException) which produces a 
filename with spaces rather than %20.


  was (Author: dallsopp):
OK, have gone around in circles a bit on this!

-Dlog4j.defaultInitOverride enables AbstractCassandraDaemon to take charge of 
the log4j configuration in order to make it dynamic (you can change the log4j 
config file, and it should be updated using the log4j PropertyConfigurator 
every 10 seconds).

The default value of log4j.configuration in the code and in the batch file is 
log4j-server.properties, which is not a valid URL, so we drop into:

{noformat} 
configLocation = 
AbstractCassandraDaemon.class.getClassLoader().getResource(config);
{noformat} 

as you said before. This *does* detect the correct file from 
CASSANDRA_HOME/conf, since log4j logs the *full path* even though we only 
supply the filename log4j-server.properties:

{noformat} 
log4j: 
[/C:/Users/David/Key%20Value/apache-cassandra-0.7.6-2/conf/log4j-server.properties]
 does not exist.
{noformat} 

getResource() returns a URL. Converting this to a file using getFile() works 
fine when there are no spaces, and you can verify that the file exists. If 
there are spaces, then this conversion produces a filename that includes the 
%20 encoding for spaces - this is an incorrect filename.

We need instead to convert using:

{noformat} 
new File(configLocation.toURI());
{noformat} 

(with appropriate exception handling for URISyntaxException) which produces a 
filename with spaces rather than %20.

  
 log4j unable to load properties file from classpath
 ---

 Key: CASSANDRA-2383
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2383
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Affects Versions: 0.7.4
 Environment: OS : windows
 java : 1.6.0.23
Reporter: david lee
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.7.7


 when cassandra home folder is placed inside a folder which has space 
 characters in its name,
 log4j settings are not properly loaded and warning messages are shown.

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




[jira] [Commented] (CASSANDRA-2836) Add CFS.estimatedKeys to cfstats output

2011-06-28 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2836:
---

Integrated in Cassandra-0.8 #197 (See 
[https://builds.apache.org/job/Cassandra-0.8/197/])
Add CFS.estimatedKeys to cfstats output.
Patch by Joe Stein, reviewed by brandonwilliams for CASSANDRA-2836

brandonwilliams : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1140759
Files : 
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java


 Add CFS.estimatedKeys to cfstats output
 ---

 Key: CASSANDRA-2836
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2836
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Brandon Williams
Assignee: Joe Stein
Priority: Trivial
 Fix For: 0.8.2

 Attachments: 2836.txt


 People ask for this all the time and making them resort to the hell that is 
 JMX is not pleasant.

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




[jira] [Commented] (CASSANDRA-2835) CFMetadata don't set the default for Replicate_on_write correctly

2011-06-28 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2835:
---

Integrated in Cassandra-0.8 #197 (See 
[https://builds.apache.org/job/Cassandra-0.8/197/])


 CFMetadata don't set the default for Replicate_on_write correctly 
 --

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

 Attachments: 2835.patch


 Replicate_on_write *must* default to true (defaulting to false is very 
 dangerous and imho, the option of setting it to false shouldn't exist in the 
 first place) and CFMetadata.DEFAULT_REPLICATE_ON_WRITE is correctly true. But 
 it doesn't get set correctly. Instead, the code force the value of the cf_def 
 even if it wasn't defined, resulting in setting it to false since that is the 
 default value for a boolean in JAVA.

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




[jira] [Commented] (CASSANDRA-2383) log4j unable to load properties file from classpath

2011-06-28 Thread David Allsopp (JIRA)

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

David Allsopp commented on CASSANDRA-2383:
--

Suggested fix for AbstractCassandraDaemon static initializer (apologies - 
haven't got a suitable version of diff on this windows box yet). Untested on 
linux as yet.

{noformat}
//Initialize logging in such a way that it checks for config changes every 
10 seconds.
static
{
String config = System.getProperty(log4j.configuration, 
log4j-server.properties);
String configFileName = null;
URL configLocation = null;
try 
{
// try loading from a physical location first.
configLocation = new URL(config);
}
catch (MalformedURLException ex) 
{
// load from the classpath.
configLocation = 
AbstractCassandraDaemon.class.getClassLoader().getResource(config);
if (configLocation == null)
throw new RuntimeException(Couldn't figure out log4j 
configuration.);
try
{
configFileName = new 
File(configLocation.toURI()).getCanonicalPath();
} 
catch (Exception e)
{
throw new RuntimeException(Couldn't convert 
log4j configuration location to a valid file., e);
} 
}
PropertyConfigurator.configureAndWatch(configFileName, 1);

org.apache.log4j.Logger.getLogger(AbstractCassandraDaemon.class).info(Logging 
initialized);
}
{noformat}

 log4j unable to load properties file from classpath
 ---

 Key: CASSANDRA-2383
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2383
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Affects Versions: 0.7.4
 Environment: OS : windows
 java : 1.6.0.23
Reporter: david lee
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.7.7


 when cassandra home folder is placed inside a folder which has space 
 characters in its name,
 log4j settings are not properly loaded and warning messages are shown.

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




[jira] [Commented] (CASSANDRA-2739) Cannot recover SSTable with version f (current version g) during the node decommission.

2011-06-28 Thread Brandon Williams (JIRA)

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

Brandon Williams commented on CASSANDRA-2739:
-

Note that this can be encountered for any streaming operation (such as repair) 
and isn't limited to decommission.

 Cannot recover SSTable with version f (current version g) during the node 
 decommission.
 ---

 Key: CASSANDRA-2739
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2739
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.8.0
 Environment: centos, cassandra 0.7.4 upgrade to 0.8.0-final.
Reporter: Dikang Gu
  Labels: decommission, version

 I upgrade the 4-nodes cassandra 0.7.4 cluster to 0.8.0-final. Then, I do the 
 bin/nodetool decommission on one node, the decommission hangs there and I got 
 the following errors on other nodes.
 ERROR [Thread-55] 2011-06-03 18:02:03,500 AbstractCassandraDaemon.java (line 
 113) Fatal exception in thread Thread[Thread-55,5,main]
 java.lang.RuntimeException: Cannot recover SSTable with version f (current 
 version g).
   at 
 org.apache.cassandra.io.sstable.SSTableWriter.createBuilder(SSTableWriter.java:240)
   at 
 org.apache.cassandra.db.CompactionManager.submitSSTableBuild(CompactionManager.java:1088)
   at 
 org.apache.cassandra.streaming.StreamInSession.finished(StreamInSession.java:108)
   at 
 org.apache.cassandra.streaming.IncomingStreamReader.readFile(IncomingStreamReader.java:104)
   at 
 org.apache.cassandra.streaming.IncomingStreamReader.read(IncomingStreamReader.java:61)
   at 
 org.apache.cassandra.net.IncomingTcpConnection.stream(IncomingTcpConnection.java:155)
   at 
 org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:93)
 ERROR [Thread-56] 2011-06-03 18:02:04,285 AbstractCassandraDaemon.java (line 
 113) Fatal exception in thread Thread[Thread-56,5,main]
 java.lang.RuntimeException: Cannot recover SSTable with version f (current 
 version g).
   at 
 org.apache.cassandra.io.sstable.SSTableWriter.createBuilder(SSTableWriter.java:240)
   at 
 org.apache.cassandra.db.CompactionManager.submitSSTableBuild(CompactionManager.java:1088)
   at 
 org.apache.cassandra.streaming.StreamInSession.finished(StreamInSession.java:108)
   at 
 org.apache.cassandra.streaming.IncomingStreamReader.readFile(IncomingStreamReader.java:104)
   at 
 org.apache.cassandra.streaming.IncomingStreamReader.read(IncomingStreamReader.java:61)
   at 
 org.apache.cassandra.net.IncomingTcpConnection.stream(IncomingTcpConnection.java:155)
   at 
 org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:93)

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




[jira] [Updated] (CASSANDRA-2589) row deletes do not remove columns

2011-06-28 Thread Aaron Morton (JIRA)

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

Aaron Morton updated CASSANDRA-2589:


Attachment: 0001-remove-deleted-columns-before-flushing-memtable-v08-2.patch
0001-remove-deleted-columns-before-flushing-memtable-v07-2.patch

*-2.patch adds comment 

// Pedantically you could purge column level tombstones that are past GCGRace 
when writing to the SSTable.
// But it can result in unexpected behaviour where deletes never make it to 
disk,
// as they are lost and so cannot override existing column values. So we only 
remove deleted columns if there
// is a CF level tombstone to ensure the delete makes it into an SSTable.

 row deletes do not remove columns
 -

 Key: CASSANDRA-2589
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2589
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Aaron Morton
Assignee: Aaron Morton
Priority: Minor
 Fix For: 0.8.2

 Attachments: 
 0001-remove-deleted-columns-before-flushing-memtable-v07-2.patch, 
 0001-remove-deleted-columns-before-flushing-memtable-v07.patch, 
 0001-remove-deleted-columns-before-flushing-memtable-v08-2.patch, 
 0001-remove-deleted-columns-before-flushing-memtable-v08.patch


 When a row delete is issued CF.delete() sets the localDeletetionTime and 
 markedForDeleteAt values but does not remove columns which have a lower time 
 stamp. As a result:
 # Memory which could be freed is held on to (prob not too bad as it's already 
 counted)
 # The deleted columns are serialised to disk, along with the CF info to say 
 they are no longer valid. 
 # NamesQueryFilter and SliceQueryFilter have to do more work as they filter 
 out the irrelevant columns using QueryFilter.isRelevant()
 # Also columns written with a lower time stamp after the deletion are added 
 to the CF without checking markedForDeletionAt.
 This can cause RR to fail, will create another ticket for that and link. This 
 ticket is for a fix to removing the columns. 
 Two options I could think of:
 # Check for deletion when serialising to SSTable and ignore columns if the 
 have a lower timestamp. Otherwise leave as is so dead columns stay in memory. 
 # Ensure at all times if the CF is deleted all columns it contains have a 
 higher timestamp. 
 ## I *think* this would include all column types (DeletedColumn as well) as 
 the CF deletion has the same effect. But not sure.
 ## Deleting (potentially) all columns in delete() will take time. Could track 
 the highest timestamp in the CF so the normal case of deleting all cols does 
 not need to iterate. 
  

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




[jira] [Created] (CASSANDRA-2838) Query indexed column with key filte

2011-06-28 Thread Danny Wang (JIRA)
Query indexed column with key filte
---

 Key: CASSANDRA-2838
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2838
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Danny Wang


To be able to support query like this,

 (KEY  foo AND KEY  bar and name1 = value1


Currently I found this code
 
// Start and finish keys, *and* column relations (KEY  foo AND KEY  
bar and name1 = value1).
if (select.isKeyRange()  (select.getKeyFinish() != null)  
(select.getColumnRelations().size()  0))
throw new InvalidRequestException(You cannot combine key range and 
by-column clauses in a SELECT);
 
 in
 
 
http://svn.apache.org/repos/asf/cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java
 
 


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




[jira] [Updated] (CASSANDRA-2819) Split rpc timeout for read and write ops

2011-06-28 Thread Melvin Wang (JIRA)

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

Melvin Wang updated CASSANDRA-2819:
---

Attachment: rpc-rw-timeouts.patch

 Split rpc timeout for read and write ops
 

 Key: CASSANDRA-2819
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2819
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Stu Hood
Assignee: Melvin Wang
 Fix For: 1.0

 Attachments: rpc-rw-timeouts.patch


 Given the vastly different latency characteristics of reads and writes, it 
 makes sense for them to have independent rpc timeouts internally.

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




[jira] [Created] (CASSANDRA-2839) Small typos in the cli

2011-06-28 Thread Joaquin Casares (JIRA)
Small typos in the cli
--

 Key: CASSANDRA-2839
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2839
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.6
Reporter: Joaquin Casares
Assignee: Joaquin Casares
Priority: Minor
 Fix For: 0.7.7
 Attachments: 2839.diff

Memtable thresholds: %s/%s/%s (millions of ops/minutes/MB) was displaying 
ops/MB/minutes.

placement_strategy: the fully qualified class used to place replicas in
this keyspace. Valid values are
org.apache.cassandra.locator.SimpleStrategy,
org.apache.cassandra.locator.NetworkTopologyStrategy,
and 
org.apache.cassandra.locator.OldNetworkTopologyStrategy
was being displayed but would only accept SimpleStrategy.



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




[jira] [Updated] (CASSANDRA-2839) Small typos in the cli

2011-06-28 Thread Joaquin Casares (JIRA)

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

Joaquin Casares updated CASSANDRA-2839:
---

Attachment: 2839.diff

 Small typos in the cli
 --

 Key: CASSANDRA-2839
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2839
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.6
Reporter: Joaquin Casares
Assignee: Joaquin Casares
Priority: Minor
 Fix For: 0.7.7

 Attachments: 2839.diff


 Memtable thresholds: %s/%s/%s (millions of ops/minutes/MB) was displaying 
 ops/MB/minutes.
 placement_strategy: the fully qualified class used to place replicas in
 this keyspace. Valid values are
 org.apache.cassandra.locator.SimpleStrategy,
 org.apache.cassandra.locator.NetworkTopologyStrategy,
 and 
 org.apache.cassandra.locator.OldNetworkTopologyStrategy
 was being displayed but would only accept SimpleStrategy.

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




[jira] [Commented] (CASSANDRA-959) Allow different timeouts for different classes of operation

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-959:
--

Resurrected in CASSANDRA-2819.

 Allow different timeouts for different classes of operation
 ---

 Key: CASSANDRA-959
 URL: https://issues.apache.org/jira/browse/CASSANDRA-959
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Jonathan Ellis
Priority: Minor
 Fix For: 0.8 beta 1


 Currently we have one rpc timeout for intra-node operations.  But applying 
 the same timeout to read one row, read multiple rows [by key], and range 
 query multiple rows feels like an increasingly uncomfortable fit.  (See e.g. 
 CASSANDRA-919.)

--
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-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2034:
---

bq. If we had different timeouts for writes than reads then it might be nice to 
use say 80% of the timeout for the normal write, and reserve 20% for the hint 
phase

Different r/w timeouts is being added in CASSANDRA-2819.

 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

   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-2045) Simplify HH to decrease read load when nodes come back

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2045:
---

Thought of something else: if we're storing the full mutation, why add the 
complexity of hint headers and forwarding?  Can we just make the coordinator 
responsible for all hints instead?

 Simplify HH to decrease read load when nodes come back
 --

 Key: CASSANDRA-2045
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2045
 Project: Cassandra
  Issue Type: Improvement
Reporter: Chris Goffinet
Assignee: Nicholas Telford
 Fix For: 1.0

 Attachments: 
 0001-Changed-storage-of-Hints-to-store-a-serialized-RowMu.patch, 
 0002-Refactored-HintedHandoffManager.sendRow-to-reduce-co.patch, 
 0003-Fixed-some-coding-style-issues.patch, 
 0004-Fixed-direct-usage-of-Gossiper.getEndpointStateForEn.patch, 
 0005-Removed-duplicate-failure-detection-conditionals.-It.patch, 
 0006-Removed-handling-of-old-style-hints.patch, 2045-v3.txt, 
 CASSANDRA-2045-simplify-hinted-handoff-001.diff, 
 CASSANDRA-2045-simplify-hinted-handoff-002.diff


 Currently when HH is enabled, hints are stored, and when a node comes back, 
 we begin sending that node data. We do a lookup on the local node for the row 
 to send. To help reduce read load (if a node is offline for long period of 
 time) we should store the data we want forward the node locally instead. We 
 wouldn't have to do any lookups, just take byte[] and send to the destination.

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




[jira] [Reopened] (CASSANDRA-2838) Query indexed column with key filte

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis reopened CASSANDRA-2838:
---


 Query indexed column with key filte
 ---

 Key: CASSANDRA-2838
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2838
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Danny Wang

 To be able to support query like this,
  (KEY  foo AND KEY  bar and name1 = value1
 Currently I found this code
  
 // Start and finish keys, *and* column relations (KEY  foo AND KEY  
 bar and name1 = value1).
 if (select.isKeyRange()  (select.getKeyFinish() != null)  
 (select.getColumnRelations().size()  0))
 throw new InvalidRequestException(You cannot combine key range 
 and by-column clauses in a SELECT);
  
  in
  
  
 http://svn.apache.org/repos/asf/cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java
  
  

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




[jira] [Resolved] (CASSANDRA-2838) Query indexed column with key filte

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis resolved CASSANDRA-2838.
---

Resolution: Won't Fix

 Query indexed column with key filte
 ---

 Key: CASSANDRA-2838
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2838
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Danny Wang

 To be able to support query like this,
  (KEY  foo AND KEY  bar and name1 = value1
 Currently I found this code
  
 // Start and finish keys, *and* column relations (KEY  foo AND KEY  
 bar and name1 = value1).
 if (select.isKeyRange()  (select.getKeyFinish() != null)  
 (select.getColumnRelations().size()  0))
 throw new InvalidRequestException(You cannot combine key range 
 and by-column clauses in a SELECT);
  
  in
  
  
 http://svn.apache.org/repos/asf/cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java
  
  

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




[jira] [Resolved] (CASSANDRA-2838) Query indexed column with key filte

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis resolved CASSANDRA-2838.
---

Resolution: Fixed

key comparisons are only useful for OPP, which you shouldn't be using.

 Query indexed column with key filte
 ---

 Key: CASSANDRA-2838
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2838
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Danny Wang

 To be able to support query like this,
  (KEY  foo AND KEY  bar and name1 = value1
 Currently I found this code
  
 // Start and finish keys, *and* column relations (KEY  foo AND KEY  
 bar and name1 = value1).
 if (select.isKeyRange()  (select.getKeyFinish() != null)  
 (select.getColumnRelations().size()  0))
 throw new InvalidRequestException(You cannot combine key range 
 and by-column clauses in a SELECT);
  
  in
  
  
 http://svn.apache.org/repos/asf/cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java
  
  

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





[jira] [Commented] (CASSANDRA-2383) log4j unable to load properties file from classpath

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2383:
---

Looks like this breaks configuration parameter is a well-formed url?  
configLocation is never used if new URL succeeds.

 log4j unable to load properties file from classpath
 ---

 Key: CASSANDRA-2383
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2383
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Affects Versions: 0.7.4
 Environment: OS : windows
 java : 1.6.0.23
Reporter: david lee
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.7.7


 when cassandra home folder is placed inside a folder which has space 
 characters in its name,
 log4j settings are not properly loaded and warning messages are shown.

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




svn commit: r1140928 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/cli/CliClient.java

2011-06-28 Thread jbellis
Author: jbellis
Date: Wed Jun 29 01:14:44 2011
New Revision: 1140928

URL: http://svn.apache.org/viewvc?rev=1140928view=rev
Log:
fix CLI parsing of read_repair_chance
patch by Jon Hermes; reviewed by jbellis for CASSANDRA-2837

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

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1140928r1=1140927r2=1140928view=diff
==
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Wed Jun 29 01:14:44 2011
@@ -25,6 +25,7 @@
  * Fix potential NPE during read repair (CASSANDRA-2823)
  * fix race that could result in Hadoop writer failing to throw an
exception encountered after close() (CASSANDRA-2755)
+ * fix CLI parsing of read_repair_chance (CASSANDRA-2837)
 
 
 0.7.6

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java?rev=1140928r1=1140927r2=1140928view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java
 Wed Jun 29 01:14:44 2011
@@ -902,10 +902,10 @@ public class CliClient extends CliUserHe
 cfDef.setKey_cache_size(Double.parseDouble(mValue));
 break;
 case READ_REPAIR_CHANCE:
-double chance = Double.parseDouble(mValue) / 100;
+double chance = Double.parseDouble(mValue);
 
 if (chance  1)
-throw new RuntimeException(Error: read_repair_chance / 
100 should not be greater than 1.);
+throw new RuntimeException(Error: read_repair_chance 
should not be greater than 1.);
 
 cfDef.setRead_repair_chance(chance);
 break;




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

2011-06-28 Thread jbellis
Author: jbellis
Date: Wed Jun 29 01:24:46 2011
New Revision: 1140934

URL: http://svn.apache.org/viewvc?rev=1140934view=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)

Propchange: cassandra/branches/cassandra-0.8/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jun 29 01:24:46 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7:1026516-1140567
+/cassandra/branches/cassandra-0.7:1026516-1140567,1140928
 /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 Jun 29 01:24:46 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-1140567
+/cassandra/branches/cassandra-0.7/contrib:1026516-1140567,1140928
 /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 Jun 29 01:24:46 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-1140567
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1140567,1140928
 
/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 Jun 29 01:24:46 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-1140567
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1140567,1140928
 
/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 Jun 29 01:24:46 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-1140567

svn commit: r1140935 - in /cassandra/trunk: CHANGES.txt src/java/org/apache/cassandra/db/ColumnFamilyStore.java src/java/org/apache/cassandra/db/Memtable.java

2011-06-28 Thread jbellis
Author: jbellis
Date: Wed Jun 29 01:26:02 2011
New Revision: 1140935

URL: http://svn.apache.org/viewvc?rev=1140935view=rev
Log:
don't bother persisting columns shadowed by a row tombstone
patch by Aaron Morton; reviewed by jbellis for CASSANDRA-2589

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

Modified: cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1140935r1=1140934r2=1140935view=diff
==
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Wed Jun 29 01:26:02 2011
@@ -5,9 +5,11 @@
  * make AbstractBounds.normalize de-overlapp overlapping ranges 
(CASSANDRA-2641)
  * replace CollatingIterator, ReducingIterator with MergeIterator 
(CASSANDRA-2062)
- * Fixed the ability to set compaction strategy in cli using create column 
family command (CASSANDRA-2778)
+ * Fixed the ability to set compaction strategy in cli using create column 
+   family command (CASSANDRA-2778)
  * clean up tmp files after failed compaction (CASSANDRA-2468)
  * restrict repair streaming to specific columnfamilies (CASSANDRA-2280)
+ * don't bother persisting columns shadowed by a row tombstone (CASSANDRA-2589)
 
 
 0.8.2

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1140935r1=1140934r2=1140935view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Wed 
Jun 29 01:26:02 2011
@@ -795,7 +795,7 @@ public class ColumnFamilyStore implement
 return removeDeletedCF(cf, gcBefore);
 }
 
-private static void removeDeletedColumnsOnly(ColumnFamily cf, int gcBefore)
+public static void removeDeletedColumnsOnly(ColumnFamily cf, int gcBefore)
 {
 if (cf.isSuper())
 removeDeletedSuper(cf, gcBefore);

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java?rev=1140935r1=1140934r2=1140935view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java Wed Jun 29 
01:26:02 2011
@@ -232,7 +232,15 @@ public class Memtable
 // (we can't clear out the map as-we-go to free up memory,
 //  since the memtable is being used for queries in the pending 
flush category)
 for (Map.EntryDecoratedKey, ColumnFamily entry : 
columnFamilies.entrySet())
-writer.append(entry.getKey(), entry.getValue());
+{
+ColumnFamily cf = entry.getValue();
+if (cf.isMarkedForDelete())
+{
+// don't bother persisting data shadowed by a row tombstone
+ColumnFamilyStore.removeDeletedColumnsOnly(cf, 
Integer.MIN_VALUE);
+}
+writer.append(entry.getKey(), cf);
+}
 
 ssTable = writer.closeAndOpenReader();
 }




svn commit: r1140938 - /cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java

2011-06-28 Thread jbellis
Author: jbellis
Date: Wed Jun 29 01:28:22 2011
New Revision: 1140938

URL: http://svn.apache.org/viewvc?rev=1140938view=rev
Log:
use aaron's improved 2589 comment

Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java?rev=1140938r1=1140937r2=1140938view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java Wed Jun 29 
01:28:22 2011
@@ -236,7 +236,10 @@ public class Memtable
 ColumnFamily cf = entry.getValue();
 if (cf.isMarkedForDelete())
 {
-// don't bother persisting data shadowed by a row tombstone
+// Pedantically, you could purge column level tombstones 
that are past GcGRace when writing to the SSTable.
+// But it can result in unexpected behaviour where deletes 
never make it to disk,
+// as they are lost and so cannot override existing column 
values. So we only remove deleted columns if there
+// is a CF level tombstone to ensure the delete makes it 
into an SSTable.
 ColumnFamilyStore.removeDeletedColumnsOnly(cf, 
Integer.MIN_VALUE);
 }
 writer.append(entry.getKey(), cf);




[jira] [Resolved] (CASSANDRA-2589) row deletes do not remove columns

2011-06-28 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis resolved CASSANDRA-2589.
---

   Resolution: Fixed
Fix Version/s: (was: 0.8.2)
   1.0

Thanks, committed v2.

 row deletes do not remove columns
 -

 Key: CASSANDRA-2589
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2589
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Aaron Morton
Assignee: Aaron Morton
Priority: Minor
 Fix For: 1.0

 Attachments: 
 0001-remove-deleted-columns-before-flushing-memtable-v07-2.patch, 
 0001-remove-deleted-columns-before-flushing-memtable-v07.patch, 
 0001-remove-deleted-columns-before-flushing-memtable-v08-2.patch, 
 0001-remove-deleted-columns-before-flushing-memtable-v08.patch


 When a row delete is issued CF.delete() sets the localDeletetionTime and 
 markedForDeleteAt values but does not remove columns which have a lower time 
 stamp. As a result:
 # Memory which could be freed is held on to (prob not too bad as it's already 
 counted)
 # The deleted columns are serialised to disk, along with the CF info to say 
 they are no longer valid. 
 # NamesQueryFilter and SliceQueryFilter have to do more work as they filter 
 out the irrelevant columns using QueryFilter.isRelevant()
 # Also columns written with a lower time stamp after the deletion are added 
 to the CF without checking markedForDeletionAt.
 This can cause RR to fail, will create another ticket for that and link. This 
 ticket is for a fix to removing the columns. 
 Two options I could think of:
 # Check for deletion when serialising to SSTable and ignore columns if the 
 have a lower timestamp. Otherwise leave as is so dead columns stay in memory. 
 # Ensure at all times if the CF is deleted all columns it contains have a 
 higher timestamp. 
 ## I *think* this would include all column types (DeletedColumn as well) as 
 the CF deletion has the same effect. But not sure.
 ## Deleting (potentially) all columns in delete() will take time. Could track 
 the highest timestamp in the CF so the normal case of deleting all cols does 
 not need to iterate. 
  

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




[jira] [Commented] (CASSANDRA-2837) Setting RR Chance via CliClient results in chance being too low

2011-06-28 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2837:
---

Integrated in Cassandra-0.7 #516 (See 
[https://builds.apache.org/job/Cassandra-0.7/516/])
fix CLI parsing of read_repair_chance
patch by Jon Hermes; reviewed by jbellis for CASSANDRA-2837

jbellis : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1140928
Files : 
* /cassandra/branches/cassandra-0.7/CHANGES.txt
* 
/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java


 Setting RR Chance via CliClient results in chance being too low 
 

 Key: CASSANDRA-2837
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2837
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.6
Reporter: Bill de hOra
Assignee: Jon Hermes
Priority: Minor
 Fix For: 0.7.7

 Attachments: 2837.txt


 running a command like 
 {noformat}
 update column family shorturls with read_repair_chance=0.4;
 {noformat}
 results in the value being set to 0.0040. Was expecting it to be 0.4.
 Affects 0.7.6.-2; seems to be fixed on trunk/0.8.

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




[jira] [Commented] (CASSANDRA-2589) row deletes do not remove columns

2011-06-28 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2589:
---

Integrated in Cassandra #944 (See 
[https://builds.apache.org/job/Cassandra/944/])
don't bother persisting columns shadowed by a row tombstone
patch by Aaron Morton; reviewed by jbellis for CASSANDRA-2589

jbellis : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1140935
Files : 
* /cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
* /cassandra/trunk/CHANGES.txt
* /cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java


 row deletes do not remove columns
 -

 Key: CASSANDRA-2589
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2589
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Aaron Morton
Assignee: Aaron Morton
Priority: Minor
 Fix For: 1.0

 Attachments: 
 0001-remove-deleted-columns-before-flushing-memtable-v07-2.patch, 
 0001-remove-deleted-columns-before-flushing-memtable-v07.patch, 
 0001-remove-deleted-columns-before-flushing-memtable-v08-2.patch, 
 0001-remove-deleted-columns-before-flushing-memtable-v08.patch


 When a row delete is issued CF.delete() sets the localDeletetionTime and 
 markedForDeleteAt values but does not remove columns which have a lower time 
 stamp. As a result:
 # Memory which could be freed is held on to (prob not too bad as it's already 
 counted)
 # The deleted columns are serialised to disk, along with the CF info to say 
 they are no longer valid. 
 # NamesQueryFilter and SliceQueryFilter have to do more work as they filter 
 out the irrelevant columns using QueryFilter.isRelevant()
 # Also columns written with a lower time stamp after the deletion are added 
 to the CF without checking markedForDeletionAt.
 This can cause RR to fail, will create another ticket for that and link. This 
 ticket is for a fix to removing the columns. 
 Two options I could think of:
 # Check for deletion when serialising to SSTable and ignore columns if the 
 have a lower timestamp. Otherwise leave as is so dead columns stay in memory. 
 # Ensure at all times if the CF is deleted all columns it contains have a 
 higher timestamp. 
 ## I *think* this would include all column types (DeletedColumn as well) as 
 the CF deletion has the same effect. But not sure.
 ## Deleting (potentially) all columns in delete() will take time. Could track 
 the highest timestamp in the CF so the normal case of deleting all cols does 
 not need to iterate. 
  

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




[jira] [Commented] (CASSANDRA-2838) Query indexed column with key filte

2011-06-28 Thread Stu Hood (JIRA)

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

Stu Hood commented on CASSANDRA-2838:
-

Isn't this CASSANDRA-1600?

 Query indexed column with key filte
 ---

 Key: CASSANDRA-2838
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2838
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Danny Wang

 To be able to support query like this,
  (KEY  foo AND KEY  bar and name1 = value1
 Currently I found this code
  
 // Start and finish keys, *and* column relations (KEY  foo AND KEY  
 bar and name1 = value1).
 if (select.isKeyRange()  (select.getKeyFinish() != null)  
 (select.getColumnRelations().size()  0))
 throw new InvalidRequestException(You cannot combine key range 
 and by-column clauses in a SELECT);
  
  in
  
  
 http://svn.apache.org/repos/asf/cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java
  
  

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




[jira] [Updated] (CASSANDRA-2491) A new config parameter, broadcast_address

2011-06-28 Thread Vijay (JIRA)

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

Vijay updated CASSANDRA-2491:
-

Attachment: (was: 2491_broadcast_address_v2.patch)

 A new config parameter, broadcast_address
 -

 Key: CASSANDRA-2491
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2491
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
 Environment: x86_64 GNU/Linux
Reporter: Khee Chin
Assignee: Khee Chin
Priority: Trivial
  Labels: patch
 Fix For: 1.0

 Attachments: 2491_broadcast_address.patch, 
 2491_broadcast_address_v6.patch

   Original Estimate: 336h
  Remaining Estimate: 336h

 A new config parameter, broadcast_address
 In a cluster setup where one or more nodes is behind a firewall and has a 
 private ip address, listen_address does not allow the hosts behind the 
 firewalls to be discovered by other nodes.
 Attached is a patch that introduces a new config parameter broadcast_address 
 which allows Cassandra nodes to explicitly specify their external ip address. 
 In addition, this allows listen_address to be set to 0.0.0.0 on the already 
 firewalled node.
 broadcast_address fallsback to listen_address when it is not stated.

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




[jira] [Updated] (CASSANDRA-2491) A new config parameter, broadcast_address

2011-06-28 Thread Vijay (JIRA)

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

Vijay updated CASSANDRA-2491:
-

Attachment: (was: 2491_broadcast_address_v4.patch)

 A new config parameter, broadcast_address
 -

 Key: CASSANDRA-2491
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2491
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
 Environment: x86_64 GNU/Linux
Reporter: Khee Chin
Assignee: Khee Chin
Priority: Trivial
  Labels: patch
 Fix For: 1.0

 Attachments: 2491_broadcast_address.patch, 
 2491_broadcast_address_v6.patch

   Original Estimate: 336h
  Remaining Estimate: 336h

 A new config parameter, broadcast_address
 In a cluster setup where one or more nodes is behind a firewall and has a 
 private ip address, listen_address does not allow the hosts behind the 
 firewalls to be discovered by other nodes.
 Attached is a patch that introduces a new config parameter broadcast_address 
 which allows Cassandra nodes to explicitly specify their external ip address. 
 In addition, this allows listen_address to be set to 0.0.0.0 on the already 
 firewalled node.
 broadcast_address fallsback to listen_address when it is not stated.

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




[jira] [Updated] (CASSANDRA-2491) A new config parameter, broadcast_address

2011-06-28 Thread Vijay (JIRA)

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

Vijay updated CASSANDRA-2491:
-

Attachment: (was: 2491_broadcast_address_v3.patch)

 A new config parameter, broadcast_address
 -

 Key: CASSANDRA-2491
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2491
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
 Environment: x86_64 GNU/Linux
Reporter: Khee Chin
Assignee: Khee Chin
Priority: Trivial
  Labels: patch
 Fix For: 1.0

 Attachments: 2491_broadcast_address.patch, 
 2491_broadcast_address_v6.patch

   Original Estimate: 336h
  Remaining Estimate: 336h

 A new config parameter, broadcast_address
 In a cluster setup where one or more nodes is behind a firewall and has a 
 private ip address, listen_address does not allow the hosts behind the 
 firewalls to be discovered by other nodes.
 Attached is a patch that introduces a new config parameter broadcast_address 
 which allows Cassandra nodes to explicitly specify their external ip address. 
 In addition, this allows listen_address to be set to 0.0.0.0 on the already 
 firewalled node.
 broadcast_address fallsback to listen_address when it is not stated.

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




[jira] [Updated] (CASSANDRA-2491) A new config parameter, broadcast_address

2011-06-28 Thread Vijay (JIRA)

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

Vijay updated CASSANDRA-2491:
-

Attachment: (was: 2491_broadcast_address_v5.patch)

 A new config parameter, broadcast_address
 -

 Key: CASSANDRA-2491
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2491
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
 Environment: x86_64 GNU/Linux
Reporter: Khee Chin
Assignee: Khee Chin
Priority: Trivial
  Labels: patch
 Fix For: 1.0

 Attachments: 2491_broadcast_address.patch, 
 2491_broadcast_address_v6.patch

   Original Estimate: 336h
  Remaining Estimate: 336h

 A new config parameter, broadcast_address
 In a cluster setup where one or more nodes is behind a firewall and has a 
 private ip address, listen_address does not allow the hosts behind the 
 firewalls to be discovered by other nodes.
 Attached is a patch that introduces a new config parameter broadcast_address 
 which allows Cassandra nodes to explicitly specify their external ip address. 
 In addition, this allows listen_address to be set to 0.0.0.0 on the already 
 firewalled node.
 broadcast_address fallsback to listen_address when it is not stated.

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




  1   2   >