[jira] Commented: (CASSANDRA-1311) Support (asynchronous) triggers

2011-02-23 Thread Stu Hood (JIRA)

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

Stu Hood commented on CASSANDRA-1311:
-

I believe that the entity group functionality can actually be implemented as 
sugar on top of our existing secondary indexes and column nesting (I'll 
describe what I'm thinking of on that ticket).

This ticket, on the other hand, provides novel functionality, so my vote is 
strongly in favor of getting it in mostly-as-is, with slight adjustments:
* ITriggers should be configured to match a filter, as described on 
CASSANDRA-1601. Rather than triggering for any change to a row, it should 
trigger for changes to a set of names, or a slice of names. For example: 
setting a trigger for columns 'age' and 'state' would only fire the trigger if 
either of those columns changed
* The ITrigger contract should not guarantee to give the user all changed 
columns: only the columns matching the trigger configuration.

I'm hoping that in future tickets we can unify these ''at-least-once'' 
distributed triggers with our ''exactly-once'' local indexes (with UDFs) around 
common configuration: see CASSANDRA-1601.

 Support (asynchronous) triggers
 ---

 Key: CASSANDRA-1311
 URL: https://issues.apache.org/jira/browse/CASSANDRA-1311
 Project: Cassandra
  Issue Type: New Feature
  Components: Contrib
Reporter: Maxim Grinev
 Fix For: 0.8

 Attachments: HOWTO-PatchAndRunTriggerExample-update1.txt, 
 HOWTO-PatchAndRunTriggerExample.txt, ImplementationDetails-update1.pdf, 
 ImplementationDetails.pdf, trunk-967053.txt, trunk-984391-update1.txt, 
 trunk-984391-update2.txt


 Asynchronous triggers is a basic mechanism to implement various use cases of 
 asynchronous execution of application code at database side. For example to 
 support indexes and materialized views, online analytics, push-based data 
 propagation.
 Please find the motivation, triggers description and list of applications:
 http://maxgrinev.com/2010/07/23/extending-cassandra-with-asynchronous-triggers/
 An example of using triggers for indexing:
 http://maxgrinev.com/2010/07/23/managing-indexes-in-cassandra-using-async-triggers/
 Implementation details are attached.

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




[jira] Updated: (CASSANDRA-2225) Cannot get columns from sstable generated by json2sstable

2011-02-23 Thread Muga Nishizawa (JIRA)

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

Muga Nishizawa updated CASSANDRA-2225:
--

Attachment: create_table.cli

 Cannot get columns from sstable generated by json2sstable
 -

 Key: CASSANDRA-2225
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2225
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
 Environment: Fedora 11, Intel Core i5, JDK 1.6.0_20
Reporter: Muga Nishizawa
 Fix For: 0.7.3

 Attachments: cassandra_sample_insert.py, create_table.cli


 I cannot get columns on Cassandra that has sstable generated by json2sstable. 
  It returns null as its result.  Columns that are associated to specified 
 row keys are stored on Cassandra in advance.  Cassandra outputs following 
 exception to system.log.  
 This Cassandra has sstable that was generated by json2sstable.  I stored data 
 in Cassandra, shut it down, then create JSON data from its sstable with 
 sstable2json and I generate sstable from JSON data with json2sstable in 
 advance.  I could check that columns are included in JSON data file.  But 
 columns could not be acquired from the generated sstable.  This problem 
 occurs with or without using Pavel's patch on CASSANDRA-2188.  
 I attached programs so that you can know detail of data stored in Cassandra.  
 You will be able to reproduce this problem by executing attached programs, 
 sstable2json and json2sstable.  For example, I could not get columns 
 associated to row key 030yy from sstable generated by json2sstable. 
  null will be returned as result.  Cassandra will output exception to 
 system.log.  
 - 1. Start Cassandra daemon on localhost (number of thrift port is 9160)
 - 2. Create keyspace and column family, according to create_table.cli
 - 3. Execute cassandra_sample_insert.py, storing pairs of row keys and 
 super columns
  cassandra_sample_insert.py requires pycassa
 - 4. Shutdown Cassandra daemon
 - 5. Execute sstable2json and create JSON data
 - 6. Execute json2sstable and generate sstable from JSON data
 - 7. Start Cassandra daemon again
 - 8. Get columns related to row key 030yy (but, I could not get)
 {quote}
  ERROR 15:45:18,228 Fatal exception in thread Thread[ReadStage:2,5,main]
  java.io.IOError: 
 org.apache.cassandra.db.ColumnSerializer$CorruptColumnException: invalid 
 column name length 0
   at 
 org.apache.cassandra.io.util.ColumnIterator.deserializeNext(ColumnSortedMap.java:246)
   at 
 org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:262)
   at org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:1)
   at 
 java.util.concurrent.ConcurrentSkipListMap.buildFromSorted(ConcurrentSkipListMap.java:1493)
   at 
 java.util.concurrent.ConcurrentSkipListMap.init(ConcurrentSkipListMap.java:1443)
   at 
 org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:366)
   at 
 org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:1)
   at 
 org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:79)
   at 
 org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:1)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
   at 
 org.apache.cassandra.db.columniterator.SSTableSliceIterator.hasNext(SSTableSliceIterator.java:108)
   at 
 org.apache.commons.collections.iterators.CollatingIterator.anyHasNext(CollatingIterator.java:364)
   at 
 org.apache.commons.collections.iterators.CollatingIterator.hasNext(CollatingIterator.java:217)
   at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:55)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
   at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:118)
   at 
 org.apache.cassandra.db.filter.QueryFilter.collectCollatedColumns(QueryFilter.java:142)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1290)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1167)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1095)
   at org.apache.cassandra.db.Table.getRow(Table.java:384)
   at 
 org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:63)
   at 
 org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:473)
   at 

[jira] Created: (CASSANDRA-2225) Cannot get columns from sstable generated by json2sstable

2011-02-23 Thread Muga Nishizawa (JIRA)
Cannot get columns from sstable generated by json2sstable
-

 Key: CASSANDRA-2225
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2225
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
 Environment: Fedora 11, Intel Core i5, JDK 1.6.0_20
Reporter: Muga Nishizawa
 Fix For: 0.7.3
 Attachments: cassandra_sample_insert.py, create_table.cli

I cannot get columns on Cassandra that has sstable generated by json2sstable.  
It returns null as its result.  Columns that are associated to specified row 
keys are stored on Cassandra in advance.  Cassandra outputs following exception 
to system.log.  

This Cassandra has sstable that was generated by json2sstable.  I stored data 
in Cassandra, shut it down, then create JSON data from its sstable with 
sstable2json and I generate sstable from JSON data with json2sstable in 
advance.  I could check that columns are included in JSON data file.  But 
columns could not be acquired from the generated sstable.  This problem occurs 
with or without using Pavel's patch on CASSANDRA-2188.  

I attached programs so that you can know detail of data stored in Cassandra.  
You will be able to reproduce this problem by executing attached programs, 
sstable2json and json2sstable.  For example, I could not get columns associated 
to row key 030yy from sstable generated by json2sstable.  null will 
be returned as result.  Cassandra will output exception to system.log.  

- 1. Start Cassandra daemon on localhost (number of thrift port is 9160)
- 2. Create keyspace and column family, according to create_table.cli
- 3. Execute cassandra_sample_insert.py, storing pairs of row keys and super 
columns
 cassandra_sample_insert.py requires pycassa
- 4. Shutdown Cassandra daemon
- 5. Execute sstable2json and create JSON data
- 6. Execute json2sstable and generate sstable from JSON data
- 7. Start Cassandra daemon again
- 8. Get columns related to row key 030yy (but, I could not get)

{quote}
 ERROR 15:45:18,228 Fatal exception in thread Thread[ReadStage:2,5,main]
 java.io.IOError: 
org.apache.cassandra.db.ColumnSerializer$CorruptColumnException: invalid column 
name length 0
  at 
org.apache.cassandra.io.util.ColumnIterator.deserializeNext(ColumnSortedMap.java:246)
  at org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:262)
  at org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:1)
  at 
java.util.concurrent.ConcurrentSkipListMap.buildFromSorted(ConcurrentSkipListMap.java:1493)
  at 
java.util.concurrent.ConcurrentSkipListMap.init(ConcurrentSkipListMap.java:1443)
  at 
org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:366)
  at 
org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:1)
  at 
org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:79)
  at 
org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:1)
  at 
com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
org.apache.cassandra.db.columniterator.SSTableSliceIterator.hasNext(SSTableSliceIterator.java:108)
  at 
org.apache.commons.collections.iterators.CollatingIterator.anyHasNext(CollatingIterator.java:364)
  at 
org.apache.commons.collections.iterators.CollatingIterator.hasNext(CollatingIterator.java:217)
  at 
org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:55)
  at 
com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:118)
  at 
org.apache.cassandra.db.filter.QueryFilter.collectCollatedColumns(QueryFilter.java:142)
  at 
org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1290)
  at 
org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1167)
  at 
org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1095)
  at org.apache.cassandra.db.Table.getRow(Table.java:384)
  at 
org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:63)
  at 
org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:473)
  at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
  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:619)
 Caused by: org.apache.cassandra.db.ColumnSerializer$CorruptColumnException: 

[jira] Updated: (CASSANDRA-2225) Cannot get columns from sstable generated by json2sstable

2011-02-23 Thread Muga Nishizawa (JIRA)

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

Muga Nishizawa updated CASSANDRA-2225:
--

Attachment: cassandra_sample_insert.py

 Cannot get columns from sstable generated by json2sstable
 -

 Key: CASSANDRA-2225
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2225
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
 Environment: Fedora 11, Intel Core i5, JDK 1.6.0_20
Reporter: Muga Nishizawa
 Fix For: 0.7.3

 Attachments: cassandra_sample_insert.py, create_table.cli


 I cannot get columns on Cassandra that has sstable generated by json2sstable. 
  It returns null as its result.  Columns that are associated to specified 
 row keys are stored on Cassandra in advance.  Cassandra outputs following 
 exception to system.log.  
 This Cassandra has sstable that was generated by json2sstable.  I stored data 
 in Cassandra, shut it down, then create JSON data from its sstable with 
 sstable2json and I generate sstable from JSON data with json2sstable in 
 advance.  I could check that columns are included in JSON data file.  But 
 columns could not be acquired from the generated sstable.  This problem 
 occurs with or without using Pavel's patch on CASSANDRA-2188.  
 I attached programs so that you can know detail of data stored in Cassandra.  
 You will be able to reproduce this problem by executing attached programs, 
 sstable2json and json2sstable.  For example, I could not get columns 
 associated to row key 030yy from sstable generated by json2sstable. 
  null will be returned as result.  Cassandra will output exception to 
 system.log.  
 - 1. Start Cassandra daemon on localhost (number of thrift port is 9160)
 - 2. Create keyspace and column family, according to create_table.cli
 - 3. Execute cassandra_sample_insert.py, storing pairs of row keys and 
 super columns
  cassandra_sample_insert.py requires pycassa
 - 4. Shutdown Cassandra daemon
 - 5. Execute sstable2json and create JSON data
 - 6. Execute json2sstable and generate sstable from JSON data
 - 7. Start Cassandra daemon again
 - 8. Get columns related to row key 030yy (but, I could not get)
 {quote}
  ERROR 15:45:18,228 Fatal exception in thread Thread[ReadStage:2,5,main]
  java.io.IOError: 
 org.apache.cassandra.db.ColumnSerializer$CorruptColumnException: invalid 
 column name length 0
   at 
 org.apache.cassandra.io.util.ColumnIterator.deserializeNext(ColumnSortedMap.java:246)
   at 
 org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:262)
   at org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:1)
   at 
 java.util.concurrent.ConcurrentSkipListMap.buildFromSorted(ConcurrentSkipListMap.java:1493)
   at 
 java.util.concurrent.ConcurrentSkipListMap.init(ConcurrentSkipListMap.java:1443)
   at 
 org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:366)
   at 
 org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:1)
   at 
 org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:79)
   at 
 org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:1)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
   at 
 org.apache.cassandra.db.columniterator.SSTableSliceIterator.hasNext(SSTableSliceIterator.java:108)
   at 
 org.apache.commons.collections.iterators.CollatingIterator.anyHasNext(CollatingIterator.java:364)
   at 
 org.apache.commons.collections.iterators.CollatingIterator.hasNext(CollatingIterator.java:217)
   at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:55)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
   at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:118)
   at 
 org.apache.cassandra.db.filter.QueryFilter.collectCollatedColumns(QueryFilter.java:142)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1290)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1167)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1095)
   at org.apache.cassandra.db.Table.getRow(Table.java:384)
   at 
 org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:63)
   at 
 org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:473)
   at 

[jira] Updated: (CASSANDRA-2216) Compaction can echo data which breaks upon sstable format changes

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-2216:
--

Affects Version/s: 0.7.1
Fix Version/s: (was: 0.7.1)
   0.7.3

 Compaction can echo data which breaks upon sstable format changes
 -

 Key: CASSANDRA-2216
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2216
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.1
Reporter: Sylvain Lebresne
Assignee: Sylvain Lebresne
Priority: Critical
  Labels: compaction
 Fix For: 0.7.3

 Attachments: 0001-Don-t-echo-data-during-compaction.patch, 
 2216_v2.patch

   Original Estimate: 1h
  Remaining Estimate: 1h

 While compaction, if for a row we have only 1 sstable holding data, we echo 
 this data. This breaks when we change the data format, creating mixed 
 (corrupted) sstable.
 (I suspect this is the cause of CASSANDRA-2195, but opening a new ticket 
 until we can confirm that hunch)

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




[jira] Resolved: (CASSANDRA-2224) Warning error when a cache is empty

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis resolved CASSANDRA-2224.
---

   Resolution: Duplicate
Fix Version/s: (was: 0.8)
 Assignee: (was: Matthew F. Dennis)

and/or CASSANDRA-2172

 Warning error when a cache is empty
 ---

 Key: CASSANDRA-2224
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2224
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.2
Reporter: Joaquin Casares
Priority: Minor

 I get this error after repair stalled and I ran 'sudo killall java' and 
 started up Cassandra again. Most of my caches come with the same error and 
 most of the files they are referencing are empty.
 INFO 00:04:37,137 reading saved cache 
 /var/lib/cassandra/saved_caches/system-IndexInfo-KeyCache
  WARN 00:04:37,139 error reading saved cache 
 /var/lib/cassandra/saved_caches/system-IndexInfo-KeyCache
 java.io.EOFException
   at 
 java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2297)
   at 
 java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2766)
   at 
 java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:797)
   at java.io.ObjectInputStream.init(ObjectInputStream.java:297)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.readSavedCache(ColumnFamilyStore.java:255)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.init(ColumnFamilyStore.java:198)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:451)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:432)
   at org.apache.cassandra.db.Table.initCf(Table.java:360)
   at org.apache.cassandra.db.Table.init(Table.java:290)
   at org.apache.cassandra.db.Table.open(Table.java:107)
   at org.apache.cassandra.db.SystemTable.checkHealth(SystemTable.java:207)
   at 
 org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:129)
   at 
 org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:316)
   at 
 org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:79)
 ===
 LocationInfo has this in the file: ^@^@^@^AL^@^@^@^AL
 And reports this error:
  WARN 00:04:37,179 error reading saved cache 
 /var/lib/cassandra/saved_caches/system-LocationInfo-KeyCache
 java.io.StreamCorruptedException: invalid stream header: 0001
   at 
 java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:800)
   at java.io.ObjectInputStream.init(ObjectInputStream.java:297)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.readSavedCache(ColumnFamilyStore.java:255)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.init(ColumnFamilyStore.java:198)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:451)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:432)
   at org.apache.cassandra.db.Table.initCf(Table.java:360)
   at org.apache.cassandra.db.Table.init(Table.java:290)
   at org.apache.cassandra.db.Table.open(Table.java:107)
   at org.apache.cassandra.db.SystemTable.checkHealth(SystemTable.java:207)
   at 
 org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:129)
   at 
 org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:316)
   at 
 org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:79)

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




svn commit: r1073750 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/io/sstable/CacheWriter.java

2011-02-23 Thread jbellis
Author: jbellis
Date: Wed Feb 23 14:10:50 2011
New Revision: 1073750

URL: http://svn.apache.org/viewvc?rev=1073750view=rev
Log:
fix cache saving on Windows
patch by jbellis; reviewed by mdennis for CASSANDRA-2207

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

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/CacheWriter.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1073750r1=1073749r2=1073750view=diff
==
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Wed Feb 23 14:10:50 2011
@@ -20,6 +20,7 @@
  * fix EOFing on requests for the last bytes in a file (CASSANDRA-2213)
  * fix BRAF performance when seeking to EOF (CASSANDRA-2218)
  * check for memtable flush_after_mins exceeded every 10s (CASSANDRA-2183)
+ * fix cache saving on Windows (CASSANDRA-2207)
 
 
 0.7.2

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/CacheWriter.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/CacheWriter.java?rev=1073750r1=1073749r2=1073750view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/CacheWriter.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/CacheWriter.java
 Wed Feb 23 14:10:50 2011
@@ -89,8 +89,10 @@ public class CacheWriterK, V implement
 {
 out.close();
 }
+
+path.delete(); // ignore error if it didn't exist
 if (!tmpFile.renameTo(path))
-throw new IOException(Unable to rename cache to  + path);
+throw new IOException(Unable to rename  + tmpFile +  to  + 
path);
 logger.info(String.format(Saved %s (%d items) in %d ms,
   path.getName(), keys.size(), 
(System.currentTimeMillis() - start)));
 }




[jira] Commented: (CASSANDRA-1311) Support (asynchronous) triggers

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-1311:
---

To be clear: I am -1 on coordinator-based triggers.

 Support (asynchronous) triggers
 ---

 Key: CASSANDRA-1311
 URL: https://issues.apache.org/jira/browse/CASSANDRA-1311
 Project: Cassandra
  Issue Type: New Feature
  Components: Contrib
Reporter: Maxim Grinev
 Fix For: 0.8

 Attachments: HOWTO-PatchAndRunTriggerExample-update1.txt, 
 HOWTO-PatchAndRunTriggerExample.txt, ImplementationDetails-update1.pdf, 
 ImplementationDetails.pdf, trunk-967053.txt, trunk-984391-update1.txt, 
 trunk-984391-update2.txt


 Asynchronous triggers is a basic mechanism to implement various use cases of 
 asynchronous execution of application code at database side. For example to 
 support indexes and materialized views, online analytics, push-based data 
 propagation.
 Please find the motivation, triggers description and list of applications:
 http://maxgrinev.com/2010/07/23/extending-cassandra-with-asynchronous-triggers/
 An example of using triggers for indexing:
 http://maxgrinev.com/2010/07/23/managing-indexes-in-cassandra-using-async-triggers/
 Implementation details are attached.

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




[jira] Commented: (CASSANDRA-2225) Cannot get columns from sstable generated by json2sstable

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2225:
---

To be clear: the queries work fine on the original sstable, before 
round-tripping through json?

 Cannot get columns from sstable generated by json2sstable
 -

 Key: CASSANDRA-2225
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2225
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
 Environment: Fedora 11, Intel Core i5, JDK 1.6.0_20
Reporter: Muga Nishizawa
 Fix For: 0.7.3

 Attachments: cassandra_sample_insert.py, create_table.cli


 I cannot get columns on Cassandra that has sstable generated by json2sstable. 
  It returns null as its result.  Columns that are associated to specified 
 row keys are stored on Cassandra in advance.  Cassandra outputs following 
 exception to system.log.  
 This Cassandra has sstable that was generated by json2sstable.  I stored data 
 in Cassandra, shut it down, then create JSON data from its sstable with 
 sstable2json and I generate sstable from JSON data with json2sstable in 
 advance.  I could check that columns are included in JSON data file.  But 
 columns could not be acquired from the generated sstable.  This problem 
 occurs with or without using Pavel's patch on CASSANDRA-2188.  
 I attached programs so that you can know detail of data stored in Cassandra.  
 You will be able to reproduce this problem by executing attached programs, 
 sstable2json and json2sstable.  For example, I could not get columns 
 associated to row key 030yy from sstable generated by json2sstable. 
  null will be returned as result.  Cassandra will output exception to 
 system.log.  
 - 1. Start Cassandra daemon on localhost (number of thrift port is 9160)
 - 2. Create keyspace and column family, according to create_table.cli
 - 3. Execute cassandra_sample_insert.py, storing pairs of row keys and 
 super columns
  cassandra_sample_insert.py requires pycassa
 - 4. Shutdown Cassandra daemon
 - 5. Execute sstable2json and create JSON data
 - 6. Execute json2sstable and generate sstable from JSON data
 - 7. Start Cassandra daemon again
 - 8. Get columns related to row key 030yy (but, I could not get)
 {quote}
  ERROR 15:45:18,228 Fatal exception in thread Thread[ReadStage:2,5,main]
  java.io.IOError: 
 org.apache.cassandra.db.ColumnSerializer$CorruptColumnException: invalid 
 column name length 0
   at 
 org.apache.cassandra.io.util.ColumnIterator.deserializeNext(ColumnSortedMap.java:246)
   at 
 org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:262)
   at org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:1)
   at 
 java.util.concurrent.ConcurrentSkipListMap.buildFromSorted(ConcurrentSkipListMap.java:1493)
   at 
 java.util.concurrent.ConcurrentSkipListMap.init(ConcurrentSkipListMap.java:1443)
   at 
 org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:366)
   at 
 org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:1)
   at 
 org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:79)
   at 
 org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:1)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
   at 
 org.apache.cassandra.db.columniterator.SSTableSliceIterator.hasNext(SSTableSliceIterator.java:108)
   at 
 org.apache.commons.collections.iterators.CollatingIterator.anyHasNext(CollatingIterator.java:364)
   at 
 org.apache.commons.collections.iterators.CollatingIterator.hasNext(CollatingIterator.java:217)
   at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:55)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
   at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:118)
   at 
 org.apache.cassandra.db.filter.QueryFilter.collectCollatedColumns(QueryFilter.java:142)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1290)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1167)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1095)
   at org.apache.cassandra.db.Table.getRow(Table.java:384)
   at 
 org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:63)
   at 
 

[jira] Commented: (CASSANDRA-2104) IndexOutOfBoundsException during lazy row compaction (using TimeUUID comparator)

2011-02-23 Thread Daniel Lundin (JIRA)

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

Daniel Lundin commented on CASSANDRA-2104:
--

Nope, never managed to trigger it again.
Closing this issue for now.

 IndexOutOfBoundsException during lazy row compaction (using TimeUUID 
 comparator)
 

 Key: CASSANDRA-2104
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2104
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.0, 0.7.1
Reporter: Daniel Lundin

 I ran into an exception when lazily compacting wide rows of TimeUUID columns.
 It seems to trigger when a row is larger than 
 {{in_memory_compaction_limit_in_mb}}.
 Traceback:
 {noformat}
  INFO [CompactionExecutor:1] 2011-02-03 10:59:59,262 CompactionIterator.java 
 (line 135) Compacting large row X (76999384 bytes) incrementally
  ERROR [CompactionExecutor:1] 2011-02-03 10:59:59,266 
 AbstractCassandraDaemon.java (line 114) Fatal exception in thread T
  hread[CompactionExecutor:1,1,main]
  java.lang.IndexOutOfBoundsException
  at java.nio.Buffer.checkIndex(Buffer.java:514)
  at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:121)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compareTimestampBytes(TimeUUIDType.java:56)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:45)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:29)
  at 
 java.util.concurrent.ConcurrentSkipListMap$ComparableUsingComparator.compareTo(ConcurrentSkipListMap.java:606
  )
  at 
 java.util.concurrent.ConcurrentSkipListMap.findPredecessor(ConcurrentSkipListMap.java:685)
  at 
 java.util.concurrent.ConcurrentSkipListMap.doPut(ConcurrentSkipListMap.java:864)
  at 
 java.util.concurrent.ConcurrentSkipListMap.putIfAbsent(ConcurrentSkipListMap.java:1893)
  at 
 org.apache.cassandra.db.SuperColumn.addColumn(SuperColumn.java:170)
  at 
 org.apache.cassandra.db.SuperColumn.putColumn(SuperColumn.java:195)
  at 
 org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:221)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:204)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:185)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:62)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 com.google.common.collect.Iterators$7.computeNext(Iterators.java:604)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.cassandra.db.ColumnIndexer.serializeInternal(ColumnIndexer.java:76)
  at 
 org.apache.cassandra.db.ColumnIndexer.serialize(ColumnIndexer.java:50)
  at 
 org.apache.cassandra.io.LazilyCompactedRow.init(LazilyCompactedRow.java:88)
  at 
 org.apache.cassandra.io.CompactionIterator.getCompactedRow(CompactionIterator.java:137)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:108)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:43)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:73)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.commons.collections.iterators.FilterIterator.setNextObject(FilterIterator.java:183)
  at 
 org.apache.commons.collections.iterators.FilterIterator.hasNext(FilterIterator.java:94)
  at 
 org.apache.cassandra.db.CompactionManager.doCompaction(CompactionManager.java:426)
  at 
 org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:122)
  at 
 org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:92)
  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  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 

[jira] Resolved: (CASSANDRA-2104) IndexOutOfBoundsException during lazy row compaction (using TimeUUID comparator)

2011-02-23 Thread Daniel Lundin (JIRA)

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

Daniel Lundin resolved CASSANDRA-2104.
--

Resolution: Cannot Reproduce

 IndexOutOfBoundsException during lazy row compaction (using TimeUUID 
 comparator)
 

 Key: CASSANDRA-2104
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2104
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.0, 0.7.1
Reporter: Daniel Lundin

 I ran into an exception when lazily compacting wide rows of TimeUUID columns.
 It seems to trigger when a row is larger than 
 {{in_memory_compaction_limit_in_mb}}.
 Traceback:
 {noformat}
  INFO [CompactionExecutor:1] 2011-02-03 10:59:59,262 CompactionIterator.java 
 (line 135) Compacting large row X (76999384 bytes) incrementally
  ERROR [CompactionExecutor:1] 2011-02-03 10:59:59,266 
 AbstractCassandraDaemon.java (line 114) Fatal exception in thread T
  hread[CompactionExecutor:1,1,main]
  java.lang.IndexOutOfBoundsException
  at java.nio.Buffer.checkIndex(Buffer.java:514)
  at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:121)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compareTimestampBytes(TimeUUIDType.java:56)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:45)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:29)
  at 
 java.util.concurrent.ConcurrentSkipListMap$ComparableUsingComparator.compareTo(ConcurrentSkipListMap.java:606
  )
  at 
 java.util.concurrent.ConcurrentSkipListMap.findPredecessor(ConcurrentSkipListMap.java:685)
  at 
 java.util.concurrent.ConcurrentSkipListMap.doPut(ConcurrentSkipListMap.java:864)
  at 
 java.util.concurrent.ConcurrentSkipListMap.putIfAbsent(ConcurrentSkipListMap.java:1893)
  at 
 org.apache.cassandra.db.SuperColumn.addColumn(SuperColumn.java:170)
  at 
 org.apache.cassandra.db.SuperColumn.putColumn(SuperColumn.java:195)
  at 
 org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:221)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:204)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:185)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:62)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 com.google.common.collect.Iterators$7.computeNext(Iterators.java:604)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.cassandra.db.ColumnIndexer.serializeInternal(ColumnIndexer.java:76)
  at 
 org.apache.cassandra.db.ColumnIndexer.serialize(ColumnIndexer.java:50)
  at 
 org.apache.cassandra.io.LazilyCompactedRow.init(LazilyCompactedRow.java:88)
  at 
 org.apache.cassandra.io.CompactionIterator.getCompactedRow(CompactionIterator.java:137)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:108)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:43)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:73)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.commons.collections.iterators.FilterIterator.setNextObject(FilterIterator.java:183)
  at 
 org.apache.commons.collections.iterators.FilterIterator.hasNext(FilterIterator.java:94)
  at 
 org.apache.cassandra.db.CompactionManager.doCompaction(CompactionManager.java:426)
  at 
 org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:122)
  at 
 org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:92)
  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  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: 

[jira] Commented: (CASSANDRA-2225) Cannot get columns from sstable generated by json2sstable

2011-02-23 Thread Pavel Yaskevich (JIRA)

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

Pavel Yaskevich commented on CASSANDRA-2225:


Looks like you messed something up with your sstables, what I did is following 
(branch cassandra-0.7):

1). Cleaned all data directories and started Cassandra
2). `./bin/cassandra-cli --host localhost  create_table.cli`
3). `python cassandra_sample_insert.py` (which took a while to finish)
4). `./bin/nodetool -h localhost compact SampleKS SampleCF` to get all keys in 
one compacted sstable (because there were 2 sstables)
5). verified key count in compacted sstable - 50 keys.
6). Stopped Cassandra
7). `./bin/sstable2json /var/lib/cassandra/data/SampleKS/SampleCF-f-3-Data.db  
s.json` 88M resulting file
8). cleaned data directory for SampleKS `rm /var/lib/cassandra/data/SampleKS/*`
9). generated new sstable using `./bin/json2sstable -s -K SampleKS -c SampleCF 
s.json /var/lib/cassandra/data/SampleKS/SampleCF-f-1-Data.db`
10). Started Cassandra
11). Run `./bin/cassandra-cli --host localhost --keyspace SampleKS`
12). in CLI `get SampleCF['030yy'];` which gave me all columns


 Cannot get columns from sstable generated by json2sstable
 -

 Key: CASSANDRA-2225
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2225
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
 Environment: Fedora 11, Intel Core i5, JDK 1.6.0_20
Reporter: Muga Nishizawa
Assignee: Pavel Yaskevich
 Fix For: 0.7.3

 Attachments: cassandra_sample_insert.py, create_table.cli


 I cannot get columns on Cassandra that has sstable generated by json2sstable. 
  It returns null as its result.  Columns that are associated to specified 
 row keys are stored on Cassandra in advance.  Cassandra outputs following 
 exception to system.log.  
 This Cassandra has sstable that was generated by json2sstable.  I stored data 
 in Cassandra, shut it down, then create JSON data from its sstable with 
 sstable2json and I generate sstable from JSON data with json2sstable in 
 advance.  I could check that columns are included in JSON data file.  But 
 columns could not be acquired from the generated sstable.  This problem 
 occurs with or without using Pavel's patch on CASSANDRA-2188.  
 I attached programs so that you can know detail of data stored in Cassandra.  
 You will be able to reproduce this problem by executing attached programs, 
 sstable2json and json2sstable.  For example, I could not get columns 
 associated to row key 030yy from sstable generated by json2sstable. 
  null will be returned as result.  Cassandra will output exception to 
 system.log.  
 - 1. Start Cassandra daemon on localhost (number of thrift port is 9160)
 - 2. Create keyspace and column family, according to create_table.cli
 - 3. Execute cassandra_sample_insert.py, storing pairs of row keys and 
 super columns
  cassandra_sample_insert.py requires pycassa
 - 4. Shutdown Cassandra daemon
 - 5. Execute sstable2json and create JSON data
 - 6. Execute json2sstable and generate sstable from JSON data
 - 7. Start Cassandra daemon again
 - 8. Get columns related to row key 030yy (but, I could not get)
 {quote}
  ERROR 15:45:18,228 Fatal exception in thread Thread[ReadStage:2,5,main]
  java.io.IOError: 
 org.apache.cassandra.db.ColumnSerializer$CorruptColumnException: invalid 
 column name length 0
   at 
 org.apache.cassandra.io.util.ColumnIterator.deserializeNext(ColumnSortedMap.java:246)
   at 
 org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:262)
   at org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:1)
   at 
 java.util.concurrent.ConcurrentSkipListMap.buildFromSorted(ConcurrentSkipListMap.java:1493)
   at 
 java.util.concurrent.ConcurrentSkipListMap.init(ConcurrentSkipListMap.java:1443)
   at 
 org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:366)
   at 
 org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:1)
   at 
 org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:79)
   at 
 org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:1)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
   at 
 org.apache.cassandra.db.columniterator.SSTableSliceIterator.hasNext(SSTableSliceIterator.java:108)
   at 
 org.apache.commons.collections.iterators.CollatingIterator.anyHasNext(CollatingIterator.java:364)
   at 
 org.apache.commons.collections.iterators.CollatingIterator.hasNext(CollatingIterator.java:217)
   at 

[jira] Updated: (CASSANDRA-2212) Cannot get range slice of super columns in reversed order

2011-02-23 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-2212:


Attachment: 0001-Fix-IndexHelp.indexFor-for-reverse-query.patch

Thanks a lot Muga for the test script, and you are right, this a bug in getting 
the index block during reverse queries.

Patch attached with unit tests for IndexHelper.

 Cannot get range slice of super columns in reversed order
 -

 Key: CASSANDRA-2212
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2212
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
 Environment: Fedore 11, Intel Core i5
Reporter: Muga Nishizawa
Assignee: Sylvain Lebresne
 Fix For: 0.7.3

 Attachments: 0001-Fix-IndexHelp.indexFor-for-reverse-query.patch, 
 cassandra_sample_insert.py, cassandra_sample_rangeslice.py, create_table.cli


 I cannot get range slice of super columns in reversed order.  These data are 
 stored in Cassandra in advance.  On the other hand, range slice of these data 
 in normal order can be acquired.
 You can reproduce the bug by executing attached programs.  
 - 1. Start Cassandra daemon on localhost (number of thrift port is 9160)
 - 2. Create keyspace and column family, according to create_table.cli, 
 - 3. Execute cassandra_sample_insert.py, storing pairs of row keys and 
 super columns
 - 4. Execute cassandra_sample_rangeslice.py and get range slice of stored 
 super columns
 cassandra_sample_insert.py and cassandra_sample_rangeslice.py require 
 pycassa.  
 You will need to execute 4.cassandra_sample_rangeslice.py with following 
 options so that you get range slice of super columns in reversed order.  
  % python cassandra_sample_rangeslice.py -r 00082 00083
 On the other hand, to get range slice in normal order, you will need to use 
 following options.  
  % python cassandra_sample_rangeslice.py -f 00082 00083
 00082 and 00083 are the specified key range.  Range slice can be acquired in 
 normal order but, I cannot get it in reversed order.  
 I assume that there may be a bug within the code for acquiring the index 
 block of specified range.  In fact, 00083 is included in gap between lastName 
 of index block and firstName of next index block.   

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




[jira] Commented: (CASSANDRA-2104) IndexOutOfBoundsException during lazy row compaction (using TimeUUID comparator)

2011-02-23 Thread JIRA

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

Jonas Borgström commented on CASSANDRA-2104:


Hi Jonathan,

I now have a python script that seems to be able to reproduce this after a few 
runs (it does not seem to always happen)

http://jonas.borgstrom.se/cassandra/CASSANDRA-2104.txt

I've tested this on an empty single node 0.7.2 cluster and default 
cassandra.yaml, except for in_memory_compaction_limit_in_mb=32 hoping that 
would make it easier to reproduce.

A complete copy of the data directory (and config) after running the script a 
couple of times can be downloaded here:
http://jonas.borgstrom.se/cassandra/CASSANDRA-2104.tar.gz

And a copy of system.log from booting cassandra using this data directory:
http://jonas.borgstrom.se/cassandra/CASSANDRA-2104-system.log

Let me know if you need any more details.

 IndexOutOfBoundsException during lazy row compaction (using TimeUUID 
 comparator)
 

 Key: CASSANDRA-2104
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2104
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.0, 0.7.1
Reporter: Daniel Lundin

 I ran into an exception when lazily compacting wide rows of TimeUUID columns.
 It seems to trigger when a row is larger than 
 {{in_memory_compaction_limit_in_mb}}.
 Traceback:
 {noformat}
  INFO [CompactionExecutor:1] 2011-02-03 10:59:59,262 CompactionIterator.java 
 (line 135) Compacting large row X (76999384 bytes) incrementally
  ERROR [CompactionExecutor:1] 2011-02-03 10:59:59,266 
 AbstractCassandraDaemon.java (line 114) Fatal exception in thread T
  hread[CompactionExecutor:1,1,main]
  java.lang.IndexOutOfBoundsException
  at java.nio.Buffer.checkIndex(Buffer.java:514)
  at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:121)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compareTimestampBytes(TimeUUIDType.java:56)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:45)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:29)
  at 
 java.util.concurrent.ConcurrentSkipListMap$ComparableUsingComparator.compareTo(ConcurrentSkipListMap.java:606
  )
  at 
 java.util.concurrent.ConcurrentSkipListMap.findPredecessor(ConcurrentSkipListMap.java:685)
  at 
 java.util.concurrent.ConcurrentSkipListMap.doPut(ConcurrentSkipListMap.java:864)
  at 
 java.util.concurrent.ConcurrentSkipListMap.putIfAbsent(ConcurrentSkipListMap.java:1893)
  at 
 org.apache.cassandra.db.SuperColumn.addColumn(SuperColumn.java:170)
  at 
 org.apache.cassandra.db.SuperColumn.putColumn(SuperColumn.java:195)
  at 
 org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:221)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:204)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:185)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:62)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 com.google.common.collect.Iterators$7.computeNext(Iterators.java:604)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.cassandra.db.ColumnIndexer.serializeInternal(ColumnIndexer.java:76)
  at 
 org.apache.cassandra.db.ColumnIndexer.serialize(ColumnIndexer.java:50)
  at 
 org.apache.cassandra.io.LazilyCompactedRow.init(LazilyCompactedRow.java:88)
  at 
 org.apache.cassandra.io.CompactionIterator.getCompactedRow(CompactionIterator.java:137)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:108)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:43)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:73)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.commons.collections.iterators.FilterIterator.setNextObject(FilterIterator.java:183)
  at 
 org.apache.commons.collections.iterators.FilterIterator.hasNext(FilterIterator.java:94)
  at 
 

svn commit: r1073760 - in /cassandra/branches/cassandra-0.7: src/java/org/apache/cassandra/cli/CliClient.java test/unit/org/apache/cassandra/cli/CliTest.java

2011-02-23 Thread jbellis
Author: jbellis
Date: Wed Feb 23 14:58:19 2011
New Revision: 1073760

URL: http://svn.apache.org/viewvc?rev=1073760view=rev
Log:
make CliTest less picky about schema update output
patch by jbellis

Modified:

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

cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java

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=1073760r1=1073759r2=1073760view=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 Feb 23 14:58:19 2011
@@ -752,8 +752,8 @@ public class CliClient extends CliUserHe
 KsDef updatedKsDef = updateKsDefAttributes(statement, 
currentKsDef);
 
 String mySchemaVersion = 
thriftClient.system_update_keyspace(updatedKsDef);
-validateSchemaIsSettled(mySchemaVersion);
 sessionState.out.println(mySchemaVersion);
+validateSchemaIsSettled(mySchemaVersion);
 keyspacesMap.put(keyspaceName, 
thriftClient.describe_keyspace(keyspaceName));
 }
 catch (InvalidRequestException e)

Modified: 
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java?rev=1073760r1=1073759r2=1073760view=diff
==
--- 
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java
 Wed Feb 23 14:58:19 2011
@@ -27,6 +27,7 @@ import org.junit.Test;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.PrintStream;
+import java.util.regex.Pattern;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -176,7 +177,7 @@ public class CliTest extends CleanupHelp
 assertEquals(errStream.toString() +  processing  + statement, 
, errStream.toString());
 if (statement.startsWith(drop ) || statement.startsWith(create 
) || statement.startsWith(update ))
 {
-
assertTrue(result.matches((.{8})-(.{4})-(.{4})-(.{4})-(.{12})\n));
+assert 
Pattern.compile((.{8})-(.{4})-(.{4})-(.{4})-(.{12}).*, 
Pattern.DOTALL).matcher(result).matches() : result;
 }
 else if (statement.startsWith(set ))
 {




[jira] Commented: (CASSANDRA-2208) ClientOnly mode is broken

2011-02-23 Thread T Jake Luciani (JIRA)

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

T Jake Luciani commented on CASSANDRA-2208:
---

Minor issue but I see this on the server side, looks like the endpoint doesn't 
have schema associated with it.

ERROR 09:58:10,811 Error in ThreadPoolExecutor
java.lang.RuntimeException: java.lang.NullPointerException
at 
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:34)
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:680)
Caused by: java.lang.NullPointerException
at 
org.apache.cassandra.db.HintedHandOffManager.waitForSchemaAgreement(HintedHandOffManager.java:259)
at 
org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:276)
at 
org.apache.cassandra.db.HintedHandOffManager.access$100(HintedHandOffManager.java:88)
at 
org.apache.cassandra.db.HintedHandOffManager$2.runMayThrow(HintedHandOffManager.java:400)
at 
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
... 3 more

 ClientOnly mode is broken
 -

 Key: CASSANDRA-2208
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2208
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.0
Reporter: T Jake Luciani
Assignee: Gary Dusbabek
 Fix For: 0.7.3


 The new migrations code has left the client mode in a unusable state.  client 
 only nodes can't create any RowMutations since they never receive the schema 
 from ring nodes. 

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




[jira] Created: (CASSANDRA-2227) add cache loading to row/key cache tests

2011-02-23 Thread Jonathan Ellis (JIRA)
add cache loading to row/key cache tests


 Key: CASSANDRA-2227
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2227
 Project: Cassandra
  Issue Type: Test
  Components: Core
Reporter: Jonathan Ellis
Assignee: Pavel Yaskevich
Priority: Minor
 Fix For: 0.7.3




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




svn commit: r1073768 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/service/StorageProxy.java src/java/org/apache/cassandra/thrift/CassandraServer.java

2011-02-23 Thread jbellis
Author: jbellis
Date: Wed Feb 23 15:09:28 2011
New Revision: 1073768

URL: http://svn.apache.org/viewvc?rev=1073768view=rev
Log:
add validateSchemaAgreement call + synchronization to schema modification calls
patch by jbellis; reviewed by gdusbabek for CASSANDRA-

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

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

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/CassandraServer.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1073768r1=1073767r2=1073768view=diff
==
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Wed Feb 23 15:09:28 2011
@@ -21,6 +21,8 @@
  * fix BRAF performance when seeking to EOF (CASSANDRA-2218)
  * check for memtable flush_after_mins exceeded every 10s (CASSANDRA-2183)
  * fix cache saving on Windows (CASSANDRA-2207)
+ * add validateSchemaAgreement call + synchronization to schema
+   modification operations (CASSANDRA-)
 
 
 0.7.2

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java?rev=1073768r1=1073767r2=1073768view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java
 Wed Feb 23 15:09:28 2011
@@ -616,17 +616,18 @@ public class StorageProxy implements Sto
 }
 hosts.add(host.getHostAddress());
 }
+
+// we're done: the results map is ready to return to the client.  the 
rest is just debug logging:
 if (results.get(UNREACHABLE) != null)
 logger.debug(Hosts not in agreement. Didn't get a response from 
everybody:  + StringUtils.join(results.get(UNREACHABLE), ,));
-// check for version disagreement. log the hosts that don't agree.
 for (Map.EntryString, ListString entry : results.entrySet())
 {
+// check for version disagreement. log the hosts that don't agree.
 if (entry.getKey().equals(UNREACHABLE) || 
entry.getKey().equals(myVersion))
 continue;
 for (String host : entry.getValue())
 logger.debug(%s disagrees (%s), host, entry.getKey());
 }
-
 if (results.size() == 1)
 logger.debug(Schemas are in agreement.);
 

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/CassandraServer.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/CassandraServer.java?rev=1073768r1=1073767r2=1073768view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/CassandraServer.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/CassandraServer.java
 Wed Feb 23 15:09:28 2011
@@ -26,6 +26,8 @@ import java.util.concurrent.ExecutionExc
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeoutException;
 
+import com.google.common.base.Predicates;
+import com.google.common.collect.Maps;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -661,11 +663,13 @@ public class CassandraServer implements 
 }
 }
 
-public String system_add_column_family(CfDef cf_def) throws 
InvalidRequestException, TException
+public synchronized String system_add_column_family(CfDef cf_def) throws 
InvalidRequestException, TException
 {
 logger.debug(add_column_family);
 state().hasColumnFamilyListAccess(Permission.WRITE);
 ThriftValidation.validateCfDef(cf_def);
+validateSchemaAgreement();
+
 try
 {
 applyMigrationOnStage(new 
AddColumnFamily(convertToCFMetaData(cf_def)));
@@ -685,10 +689,11 @@ public class CassandraServer implements 
 }
 }
 
-public String system_drop_column_family(String column_family) throws 
InvalidRequestException, TException
+public synchronized String system_drop_column_family(String column_family) 
throws InvalidRequestException, TException
 {
 logger.debug(drop_column_family);
 state().hasColumnFamilyListAccess(Permission.WRITE);
+validateSchemaAgreement();
 
 try
 {
@@ -709,10 +714,11 @@ public class CassandraServer implements 
 }
 }
 
-public String system_add_keyspace(KsDef ks_def) throws 
InvalidRequestException, TException
+

svn commit: r1073771 - /cassandra/branches/cassandra-0.7/NEWS.txt

2011-02-23 Thread jbellis
Author: jbellis
Date: Wed Feb 23 15:12:54 2011
New Revision: 1073771

URL: http://svn.apache.org/viewvc?rev=1073771view=rev
Log:
add nodetool scrub to NEWS

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

Modified: cassandra/branches/cassandra-0.7/NEWS.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/NEWS.txt?rev=1073771r1=1073770r2=1073771view=diff
==
--- cassandra/branches/cassandra-0.7/NEWS.txt (original)
+++ cassandra/branches/cassandra-0.7/NEWS.txt Wed Feb 23 15:12:54 2011
@@ -1,3 +1,18 @@
+0.7.3
+=
+
+Upgrading
+-
+- 0.7.1 and 0.7.2 shipped with a bug that caused incorrect row-level
+  bloom filters to be generated when compacting sstables generated
+  with earlier versions.  This would manifest in IOExceptions during
+  column name-based queries.  0.7.3 provides nodetool scrub to 
+  rebuild sstables with correct bloom filters, with no data lost.
+  (If your cluster was never on 0.7.0 or earlier, you don't have to
+  worry about this.)  Note that nodetool scrub will snapshot your
+  data files before rebuilding, just in case.
+
+
 0.7.1
 =
 




[jira] Updated: (CASSANDRA-2104) IndexOutOfBoundsException during lazy row compaction (using TimeUUID comparator)

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-2104:
--

Affects Version/s: (was: 0.7.1)
Fix Version/s: 0.7.3

 IndexOutOfBoundsException during lazy row compaction (using TimeUUID 
 comparator)
 

 Key: CASSANDRA-2104
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2104
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.0
Reporter: Daniel Lundin
 Fix For: 0.7.3


 I ran into an exception when lazily compacting wide rows of TimeUUID columns.
 It seems to trigger when a row is larger than 
 {{in_memory_compaction_limit_in_mb}}.
 Traceback:
 {noformat}
  INFO [CompactionExecutor:1] 2011-02-03 10:59:59,262 CompactionIterator.java 
 (line 135) Compacting large row X (76999384 bytes) incrementally
  ERROR [CompactionExecutor:1] 2011-02-03 10:59:59,266 
 AbstractCassandraDaemon.java (line 114) Fatal exception in thread T
  hread[CompactionExecutor:1,1,main]
  java.lang.IndexOutOfBoundsException
  at java.nio.Buffer.checkIndex(Buffer.java:514)
  at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:121)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compareTimestampBytes(TimeUUIDType.java:56)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:45)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:29)
  at 
 java.util.concurrent.ConcurrentSkipListMap$ComparableUsingComparator.compareTo(ConcurrentSkipListMap.java:606
  )
  at 
 java.util.concurrent.ConcurrentSkipListMap.findPredecessor(ConcurrentSkipListMap.java:685)
  at 
 java.util.concurrent.ConcurrentSkipListMap.doPut(ConcurrentSkipListMap.java:864)
  at 
 java.util.concurrent.ConcurrentSkipListMap.putIfAbsent(ConcurrentSkipListMap.java:1893)
  at 
 org.apache.cassandra.db.SuperColumn.addColumn(SuperColumn.java:170)
  at 
 org.apache.cassandra.db.SuperColumn.putColumn(SuperColumn.java:195)
  at 
 org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:221)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:204)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:185)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:62)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 com.google.common.collect.Iterators$7.computeNext(Iterators.java:604)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.cassandra.db.ColumnIndexer.serializeInternal(ColumnIndexer.java:76)
  at 
 org.apache.cassandra.db.ColumnIndexer.serialize(ColumnIndexer.java:50)
  at 
 org.apache.cassandra.io.LazilyCompactedRow.init(LazilyCompactedRow.java:88)
  at 
 org.apache.cassandra.io.CompactionIterator.getCompactedRow(CompactionIterator.java:137)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:108)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:43)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:73)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.commons.collections.iterators.FilterIterator.setNextObject(FilterIterator.java:183)
  at 
 org.apache.commons.collections.iterators.FilterIterator.hasNext(FilterIterator.java:94)
  at 
 org.apache.cassandra.db.CompactionManager.doCompaction(CompactionManager.java:426)
  at 
 org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:122)
  at 
 org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:92)
  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  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 

[jira] Reopened: (CASSANDRA-2104) IndexOutOfBoundsException during lazy row compaction (using TimeUUID comparator)

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis reopened CASSANDRA-2104:
---


Jonas, are you also seeing the error only on rows larger than 
in_memory_compaction_limit then?

 IndexOutOfBoundsException during lazy row compaction (using TimeUUID 
 comparator)
 

 Key: CASSANDRA-2104
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2104
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.0
Reporter: Daniel Lundin
 Fix For: 0.7.3


 I ran into an exception when lazily compacting wide rows of TimeUUID columns.
 It seems to trigger when a row is larger than 
 {{in_memory_compaction_limit_in_mb}}.
 Traceback:
 {noformat}
  INFO [CompactionExecutor:1] 2011-02-03 10:59:59,262 CompactionIterator.java 
 (line 135) Compacting large row X (76999384 bytes) incrementally
  ERROR [CompactionExecutor:1] 2011-02-03 10:59:59,266 
 AbstractCassandraDaemon.java (line 114) Fatal exception in thread T
  hread[CompactionExecutor:1,1,main]
  java.lang.IndexOutOfBoundsException
  at java.nio.Buffer.checkIndex(Buffer.java:514)
  at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:121)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compareTimestampBytes(TimeUUIDType.java:56)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:45)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:29)
  at 
 java.util.concurrent.ConcurrentSkipListMap$ComparableUsingComparator.compareTo(ConcurrentSkipListMap.java:606
  )
  at 
 java.util.concurrent.ConcurrentSkipListMap.findPredecessor(ConcurrentSkipListMap.java:685)
  at 
 java.util.concurrent.ConcurrentSkipListMap.doPut(ConcurrentSkipListMap.java:864)
  at 
 java.util.concurrent.ConcurrentSkipListMap.putIfAbsent(ConcurrentSkipListMap.java:1893)
  at 
 org.apache.cassandra.db.SuperColumn.addColumn(SuperColumn.java:170)
  at 
 org.apache.cassandra.db.SuperColumn.putColumn(SuperColumn.java:195)
  at 
 org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:221)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:204)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:185)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:62)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 com.google.common.collect.Iterators$7.computeNext(Iterators.java:604)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.cassandra.db.ColumnIndexer.serializeInternal(ColumnIndexer.java:76)
  at 
 org.apache.cassandra.db.ColumnIndexer.serialize(ColumnIndexer.java:50)
  at 
 org.apache.cassandra.io.LazilyCompactedRow.init(LazilyCompactedRow.java:88)
  at 
 org.apache.cassandra.io.CompactionIterator.getCompactedRow(CompactionIterator.java:137)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:108)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:43)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:73)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.commons.collections.iterators.FilterIterator.setNextObject(FilterIterator.java:183)
  at 
 org.apache.commons.collections.iterators.FilterIterator.hasNext(FilterIterator.java:94)
  at 
 org.apache.cassandra.db.CompactionManager.doCompaction(CompactionManager.java:426)
  at 
 org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:122)
  at 
 org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:92)
  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  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 

[jira] Commented: (CASSANDRA-2187) Cassandra Cli hangs forever if schema does not settle within timeout window

2011-02-23 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2187:
---

Integrated in Cassandra-0.7 #309 (See 
[https://hudson.apache.org/hudson/job/Cassandra-0.7/309/])


 Cassandra Cli hangs forever if schema does not settle within timeout window
 ---

 Key: CASSANDRA-2187
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2187
 Project: Cassandra
  Issue Type: Bug
Reporter: Chris Goffinet
Assignee: Chris Goffinet
Priority: Minor
 Attachments: 
 0001-Fix-Cassandra-cli-to-respect-timeout-if-schema-does-.patch


 validateSchemaIsSettled will hang in the while loop since we never update 
 start if migrations never settle.

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




[jira] Commented: (CASSANDRA-2183) memtable_flush_after_mins setting not working

2011-02-23 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2183:
---

Integrated in Cassandra-0.7 #309 (See 
[https://hudson.apache.org/hudson/job/Cassandra-0.7/309/])


 memtable_flush_after_mins setting not working
 -

 Key: CASSANDRA-2183
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2183
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.0
Reporter: Ching-cheng
Assignee: Jonathan Ellis
Priority: Minor
 Fix For: 0.7.3

 Attachments: 2183.txt

   Original Estimate: 1h
  Remaining Estimate: 1h

 We have observed the behavior that memtable_flush_after_mins setting not 
 working occasionally.   After some testing and code digging, we finally 
 figured out what going on.
 The memtable_flush_after_mins won't work on certain condition with current 
 implementation in Cassandra.
 In org.apache.cassandra.db.Table,  the scheduled flush task is setup by the 
 following code during construction.
 --
 int minCheckMs = Integer.MAX_VALUE;

 for (ColumnFamilyStore cfs : columnFamilyStores.values())  
 {
 minCheckMs = Math.min(minCheckMs, cfs.getMemtableFlushAfterMins() * 60 * 
 1000);
 }
 Runnable runnable = new Runnable()
 {
public void run()
{
for (ColumnFamilyStore cfs : columnFamilyStores.values())
{
cfs.forceFlushIfExpired();
}
}
 };
 flushTask = StorageService.scheduledTasks.scheduleWithFixedDelay(runnable, 
 minCheckMs, minCheckMs, TimeUnit.MILLISECONDS);
 --
 Now for our application, we will create a keyspacewithout without any 
 columnfamily first.  And only add needed columnfamily later depends on 
 request.
 However, when keyspacegot created (without any columnfamily ), the above code 
 will actually schedule a fixed delay flush check task with Integer.MAX_VALUE 
 ms
 since there is no columnfamily yet.
 Later when you add columnfamily to this empty keyspace, the initCf() method 
 in Table.java doesn't check whether the scheduled flush check task interval 
 need
 to be updated or not.   To fix this, we'd need to restart the Cassandra after 
 columnfamily added into the keyspace. 
 I would suggest that add additional logic in initCf() method to recreate a 
 scheduled flush check task if needed.

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




[jira] Commented: (CASSANDRA-2207) IOException in CompactionExecutor

2011-02-23 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2207:
---

Integrated in Cassandra-0.7 #309 (See 
[https://hudson.apache.org/hudson/job/Cassandra-0.7/309/])


 IOException in CompactionExecutor
 -

 Key: CASSANDRA-2207
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2207
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.2
 Environment: WindowsXP(SP3) 32 bit
Reporter: ruslan.usifov
Assignee: Jonathan Ellis
Priority: Minor
 Fix For: 0.7.3

 Attachments: 2207.txt

   Original Estimate: 1h
  Remaining Estimate: 1h

 I launch clean cassandra 7.2 instalation, and after few days i look at 
 system.log follow error (more then 10 times):
 ERROR [CompactionExecutor:1] 2011-02-19 02:56:17,965 
 AbstractCassandraDaemon.java (line 114) Fatal exception in thread 
 Thread[CompactionExecutor:1,1,main]
 java.lang.RuntimeException: java.io.IOException: Unable to rename cache to 
 F:\Cassandra\7.2\saved_caches\system-LocationInfo-KeyCache
 at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:34)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
 at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
 at java.util.concurrent.FutureTask.run(FutureTask.java:138)
 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)
 Caused by: java.io.IOException: Unable to rename cache to 
 F:\Cassandra\7.2\saved_caches\system-LocationInfo-KeyCache
 at 
 org.apache.cassandra.io.sstable.CacheWriter.saveCache(CacheWriter.java:85)
 at 
 org.apache.cassandra.db.CompactionManager$9.runMayThrow(CompactionManager.java:746)
 at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
 ... 6 more

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




[jira] Commented: (CASSANDRA-2222) Make it less easy for user to aim the schema change gun at his foot

2011-02-23 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-:
---

Integrated in Cassandra-0.7 #310 (See 
[https://hudson.apache.org/hudson/job/Cassandra-0.7/310/])
add validateSchemaAgreement call + synchronization to schema modification 
calls
patch by jbellis; reviewed by gdusbabek for CASSANDRA-


 Make it less easy for user to aim the schema change gun at his foot
 ---

 Key: CASSANDRA-
 URL: https://issues.apache.org/jira/browse/CASSANDRA-
 Project: Cassandra
  Issue Type: New Feature
  Components: Tools
Affects Versions: 0.7.0
Reporter: Jonathan Ellis
Assignee: Jonathan Ellis
 Fix For: 0.7.3

 Attachments: .txt




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




[jira] Created: (CASSANDRA-2228) Race conditions when reinitialisating nodes (OOM + Nullpointer)

2011-02-23 Thread Thibaut (JIRA)
Race conditions when reinitialisating nodes (OOM + Nullpointer)
---

 Key: CASSANDRA-2228
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2228
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
Reporter: Thibaut
 Fix For: 0.7.3


I had a corrupt system table which wouldn't compact anymore and I deleted the 
files and restarted cassandra and let it take the same token/ip address.

I experienced the same errors when I'm adding a newly installed node under the 
same token/ip address before calling repair.

1)
After a few seconds/minutes, I get a OOM error:


 INFO [FlushWriter:1] 2011-02-23 16:40:28,958 Memtable.java (line 164) 
Completed flushing /cassandra/data/system/Schema-f-15-Data.db (8037 bytes)
 INFO [MigrationStage:1] 2011-02-23 16:40:28,965 Migration.java (line 133) 
Applying migration 3e30e76b-1e3f-11e0-8369-5a9c1faed4ae Add keyspace: 
table_userentriesrep factor:3rep 
strategy:SimpleStrategy{org.apache.cassandra.config.CFMetaData@58925d9[cfId=1024,tableName=table_userentries,cfName=table_userentries,cfType=Standard,comparator=org.apache.cassandra.db.marshal.BytesType@b44dff0,subcolumncomparator=null,comment=,rowCacheSize=0.0,keyCacheSize=20.0,readRepairChance=0.0,gcGraceSeconds=86400,defaultValidator=org.apache.cassandra.db.marshal.BytesType@b44dff0,minCompactionThreshold=4,maxCompactionThreshold=32,rowCacheSavePeriodInSeconds=0,keyCacheSavePeriodInSeconds=3600,memtableFlushAfterMins=60,memtableThroughputInMb=64,memtableOperationsInMillions=10.0,column_metadata={}],
 
org.apache.cassandra.config.CFMetaData@11ab7246[cfId=1025,tableName=table_userentries,cfName=table_userentries_meta,cfType=Standard,comparator=org.apache.cassandra.db.marshal.BytesType@b44dff0,subcolumncomparator=null,comment=,rowCacheSize=0.0,keyCacheSize=20.0,readRepairChance=0.0,gcGraceSeconds=86400,defaultValidator=org.apache.cassandra.db.marshal.BytesType@b44dff0,minCompactionThreshold=4,maxCompactionThreshold=32,rowCacheSavePeriodInSeconds=0,keyCacheSavePeriodInSeconds=3600,memtableFlushAfterMins=60,memtableThroughputInMb=64,memtableOperationsInMillions=10.0,column_metadata={}]}
 INFO [MigrationStage:1] 2011-02-23 16:40:28,965 ColumnFamilyStore.java (line 
666) switching in a fresh Memtable for Migrations at 
CommitLogContext(file='/cassandra/commitlog/CommitLog-1298475572022.log', 
position=226075)
 INFO [MigrationStage:1] 2011-02-23 16:40:28,966 ColumnFamilyStore.java (line 
977) Enqueuing flush of Memtable-Migrations@2121008793(12529 bytes, 1 
operations)
 INFO [FlushWriter:1] 2011-02-23 16:40:28,966 Memtable.java (line 157) Writing 
Memtable-Migrations@2121008793(12529 bytes, 1 operations)
 INFO [MigrationStage:1] 2011-02-23 16:40:28,966 ColumnFamilyStore.java (line 
666) switching in a fresh Memtable for Schema at 
CommitLogContext(file='/cassandra/commitlog/CommitLog-1298475572022.log', 
position=226075)
 INFO [MigrationStage:1] 2011-02-23 16:40:28,967 ColumnFamilyStore.java (line 
977) Enqueuing flush of Memtable-Schema@139610466(8370 bytes, 15 operations)
 INFO [ScheduledTasks:1] 2011-02-23 16:40:28,972 StatusLogger.java (line 89) 
table_sourcedetection.table_sourcedetection 0,0 
0/00/20
ERROR [FlushWriter:1] 2011-02-23 16:41:01,240 AbstractCassandraDaemon.java 
(line 114) Fatal exception in thread Thread[FlushWriter:1,5,main]
java.lang.OutOfMemoryError: Java heap space
at java.nio.HeapByteBuffer.init(HeapByteBuffer.java:39)
at java.nio.ByteBuffer.allocate(ByteBuffer.java:312)
at 
org.apache.cassandra.io.util.BufferedRandomAccessFile.init(BufferedRandomAccessFile.java:126)
at 
org.apache.cassandra.io.sstable.SSTableWriter.init(SSTableWriter.java:75)
at 
org.apache.cassandra.db.Memtable.writeSortedContents(Memtable.java:158)
at org.apache.cassandra.db.Memtable.access$000(Memtable.java:51)
at org.apache.cassandra.db.Memtable$1.runMayThrow(Memtable.java:176)
at 
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
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)





2) If I restart then, I'm getting an Nullpointer exception. The OOM error will 
only appear once.

ERROR [main] 2011-02-23 16:42:32,782 AbstractCassandraDaemon.java (line 333) 
Exception encountered during startup.
java.lang.NullPointerException
at 
java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768)
at 
org.apache.cassandra.gms.Gossiper.addLocalApplicationState(Gossiper.java:925)
at 
org.apache.cassandra.service.MigrationManager.passiveAnnounce(MigrationManager.java:105)
at 

[jira] Commented: (CASSANDRA-2223) ClientOnly mode is creating directories

2011-02-23 Thread T Jake Luciani (JIRA)

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

T Jake Luciani commented on CASSANDRA-2223:
---

The client_only example no longer works with this patch:

jake@Jake-Lucianis-MacBook-Pro(client_only)$ ./bin/client_only write
11/02/23 10:53:01 INFO config.DatabaseDescriptor: Loading settings from 
jar:file:/Users/jake/workspace/cassandra-git/contrib/client_only/build/client_only.jar!/cassandra.yaml
11/02/23 10:53:01 INFO config.DatabaseDescriptor: DiskAccessMode 'auto' 
determined to be mmap, indexAccessMode is mmap
11/02/23 10:53:01 INFO service.StorageService: Starting up client gossip
11/02/23 10:53:01 INFO gms.Gossiper: Node /127.0.0.1 has restarted, now UP again
11/02/23 10:53:02 INFO gms.Gossiper: InetAddress /127.0.0.1 is now dead.
11/02/23 10:53:02 INFO gms.Gossiper: InetAddress /127.0.0.1 is now UP
Exception in thread main java.lang.AssertionError
at org.apache.cassandra.db.ColumnFamily.create(ColumnFamily.java:66)
at org.apache.cassandra.db.ColumnFamily.create(ColumnFamily.java:61)
at org.apache.cassandra.db.RowMutation.add(RowMutation.java:144)
at org.apache.cassandra.db.RowMutation.add(RowMutation.java:152)
at ClientOnlyExample.testWriting(ClientOnlyExample.java:68)
at ClientOnlyExample.main(ClientOnlyExample.java:127)

 ClientOnly mode is creating directories
 ---

 Key: CASSANDRA-2223
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2223
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.2
Reporter: Gary Dusbabek
Assignee: Gary Dusbabek
Priority: Minor
 Fix For: 0.7.3

 Attachments: 
 v1-0001-client-only-mode-shouldn-t-create-any-local-data.txt




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




[jira] Commented: (CASSANDRA-2228) Race conditions when reinitialisating nodes (OOM + Nullpointer)

2011-02-23 Thread Thibaut (JIRA)

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

Thibaut commented on CASSANDRA-2228:


The normal heap usage of the node is about half of the allocated heap:

Gossip active: true
Load : 30.99 GB
Generation No: 1298476238
Uptime (seconds) : 308
Heap Memory (MB) : 1544.41 / 2493.38


 Race conditions when reinitialisating nodes (OOM + Nullpointer)
 ---

 Key: CASSANDRA-2228
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2228
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
Reporter: Thibaut
 Fix For: 0.7.3


 I had a corrupt system table which wouldn't compact anymore and I deleted the 
 files and restarted cassandra and let it take the same token/ip address.
 I experienced the same errors when I'm adding a newly installed node under 
 the same token/ip address before calling repair.
 1)
 After a few seconds/minutes, I get a OOM error:
  INFO [FlushWriter:1] 2011-02-23 16:40:28,958 Memtable.java (line 164) 
 Completed flushing /cassandra/data/system/Schema-f-15-Data.db (8037 bytes)
  INFO [MigrationStage:1] 2011-02-23 16:40:28,965 Migration.java (line 133) 
 Applying migration 3e30e76b-1e3f-11e0-8369-5a9c1faed4ae Add keyspace: 
 table_userentriesrep factor:3rep 
 strategy:SimpleStrategy{org.apache.cassandra.config.CFMetaData@58925d9[cfId=1024,tableName=table_userentries,cfName=table_userentries,cfType=Standard,comparator=org.apache.cassandra.db.marshal.BytesType@b44dff0,subcolumncomparator=null,comment=,rowCacheSize=0.0,keyCacheSize=20.0,readRepairChance=0.0,gcGraceSeconds=86400,defaultValidator=org.apache.cassandra.db.marshal.BytesType@b44dff0,minCompactionThreshold=4,maxCompactionThreshold=32,rowCacheSavePeriodInSeconds=0,keyCacheSavePeriodInSeconds=3600,memtableFlushAfterMins=60,memtableThroughputInMb=64,memtableOperationsInMillions=10.0,column_metadata={}],
  
 org.apache.cassandra.config.CFMetaData@11ab7246[cfId=1025,tableName=table_userentries,cfName=table_userentries_meta,cfType=Standard,comparator=org.apache.cassandra.db.marshal.BytesType@b44dff0,subcolumncomparator=null,comment=,rowCacheSize=0.0,keyCacheSize=20.0,readRepairChance=0.0,gcGraceSeconds=86400,defaultValidator=org.apache.cassandra.db.marshal.BytesType@b44dff0,minCompactionThreshold=4,maxCompactionThreshold=32,rowCacheSavePeriodInSeconds=0,keyCacheSavePeriodInSeconds=3600,memtableFlushAfterMins=60,memtableThroughputInMb=64,memtableOperationsInMillions=10.0,column_metadata={}]}
  INFO [MigrationStage:1] 2011-02-23 16:40:28,965 ColumnFamilyStore.java (line 
 666) switching in a fresh Memtable for Migrations at 
 CommitLogContext(file='/cassandra/commitlog/CommitLog-1298475572022.log', 
 position=226075)
  INFO [MigrationStage:1] 2011-02-23 16:40:28,966 ColumnFamilyStore.java (line 
 977) Enqueuing flush of Memtable-Migrations@2121008793(12529 bytes, 1 
 operations)
  INFO [FlushWriter:1] 2011-02-23 16:40:28,966 Memtable.java (line 157) 
 Writing Memtable-Migrations@2121008793(12529 bytes, 1 operations)
  INFO [MigrationStage:1] 2011-02-23 16:40:28,966 ColumnFamilyStore.java (line 
 666) switching in a fresh Memtable for Schema at 
 CommitLogContext(file='/cassandra/commitlog/CommitLog-1298475572022.log', 
 position=226075)
  INFO [MigrationStage:1] 2011-02-23 16:40:28,967 ColumnFamilyStore.java (line 
 977) Enqueuing flush of Memtable-Schema@139610466(8370 bytes, 15 operations)
  INFO [ScheduledTasks:1] 2011-02-23 16:40:28,972 StatusLogger.java (line 89) 
 table_sourcedetection.table_sourcedetection 0,0   
   0/00/20
 ERROR [FlushWriter:1] 2011-02-23 16:41:01,240 AbstractCassandraDaemon.java 
 (line 114) Fatal exception in thread Thread[FlushWriter:1,5,main]
 java.lang.OutOfMemoryError: Java heap space
 at java.nio.HeapByteBuffer.init(HeapByteBuffer.java:39)
 at java.nio.ByteBuffer.allocate(ByteBuffer.java:312)
 at 
 org.apache.cassandra.io.util.BufferedRandomAccessFile.init(BufferedRandomAccessFile.java:126)
 at 
 org.apache.cassandra.io.sstable.SSTableWriter.init(SSTableWriter.java:75)
 at 
 org.apache.cassandra.db.Memtable.writeSortedContents(Memtable.java:158)
 at org.apache.cassandra.db.Memtable.access$000(Memtable.java:51)
 at org.apache.cassandra.db.Memtable$1.runMayThrow(Memtable.java:176)
 at 
 org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
 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)
 2) If I restart then, I'm getting an Nullpointer 

[jira] Commented: (CASSANDRA-2104) IndexOutOfBoundsException during lazy row compaction (using TimeUUID comparator)

2011-02-23 Thread JIRA

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

Jonas Borgström commented on CASSANDRA-2104:


Jonathan, yes that seems to be the case. For me key 3139 (19) seems to be the 
one triggering this. So increasing in_memory_compaction_limit enough to cover 
that key seems to do the trick. Even if some other keys are compacted 
incrementally.

 IndexOutOfBoundsException during lazy row compaction (using TimeUUID 
 comparator)
 

 Key: CASSANDRA-2104
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2104
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.0
Reporter: Daniel Lundin
 Fix For: 0.7.3


 I ran into an exception when lazily compacting wide rows of TimeUUID columns.
 It seems to trigger when a row is larger than 
 {{in_memory_compaction_limit_in_mb}}.
 Traceback:
 {noformat}
  INFO [CompactionExecutor:1] 2011-02-03 10:59:59,262 CompactionIterator.java 
 (line 135) Compacting large row X (76999384 bytes) incrementally
  ERROR [CompactionExecutor:1] 2011-02-03 10:59:59,266 
 AbstractCassandraDaemon.java (line 114) Fatal exception in thread T
  hread[CompactionExecutor:1,1,main]
  java.lang.IndexOutOfBoundsException
  at java.nio.Buffer.checkIndex(Buffer.java:514)
  at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:121)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compareTimestampBytes(TimeUUIDType.java:56)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:45)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:29)
  at 
 java.util.concurrent.ConcurrentSkipListMap$ComparableUsingComparator.compareTo(ConcurrentSkipListMap.java:606
  )
  at 
 java.util.concurrent.ConcurrentSkipListMap.findPredecessor(ConcurrentSkipListMap.java:685)
  at 
 java.util.concurrent.ConcurrentSkipListMap.doPut(ConcurrentSkipListMap.java:864)
  at 
 java.util.concurrent.ConcurrentSkipListMap.putIfAbsent(ConcurrentSkipListMap.java:1893)
  at 
 org.apache.cassandra.db.SuperColumn.addColumn(SuperColumn.java:170)
  at 
 org.apache.cassandra.db.SuperColumn.putColumn(SuperColumn.java:195)
  at 
 org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:221)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:204)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:185)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:62)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 com.google.common.collect.Iterators$7.computeNext(Iterators.java:604)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.cassandra.db.ColumnIndexer.serializeInternal(ColumnIndexer.java:76)
  at 
 org.apache.cassandra.db.ColumnIndexer.serialize(ColumnIndexer.java:50)
  at 
 org.apache.cassandra.io.LazilyCompactedRow.init(LazilyCompactedRow.java:88)
  at 
 org.apache.cassandra.io.CompactionIterator.getCompactedRow(CompactionIterator.java:137)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:108)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:43)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:73)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.commons.collections.iterators.FilterIterator.setNextObject(FilterIterator.java:183)
  at 
 org.apache.commons.collections.iterators.FilterIterator.hasNext(FilterIterator.java:94)
  at 
 org.apache.cassandra.db.CompactionManager.doCompaction(CompactionManager.java:426)
  at 
 org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:122)
  at 
 org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:92)
  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  at 
 

[jira] Updated: (CASSANDRA-2223) ClientOnly mode is creating directories

2011-02-23 Thread Gary Dusbabek (JIRA)

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

Gary Dusbabek updated CASSANDRA-2223:
-

Attachment: v2-0004-update-contrib_client-only-meta.txt
v2-0003-make-sure-fat-clients-gossip-their-schema.txt
v2-0002-avoid-creating-local-files-when-in-fat-client-mode.txt

v2-0001-ClientOnlyExample-waits-for-schema-to-arrive-tries-to-.txt

 ClientOnly mode is creating directories
 ---

 Key: CASSANDRA-2223
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2223
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.2
Reporter: Gary Dusbabek
Assignee: Gary Dusbabek
Priority: Minor
 Fix For: 0.7.3

 Attachments: 
 v1-0001-client-only-mode-shouldn-t-create-any-local-data.txt, 
 v2-0001-ClientOnlyExample-waits-for-schema-to-arrive-tries-to-.txt, 
 v2-0002-avoid-creating-local-files-when-in-fat-client-mode.txt, 
 v2-0003-make-sure-fat-clients-gossip-their-schema.txt, 
 v2-0004-update-contrib_client-only-meta.txt




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




[jira] Assigned: (CASSANDRA-2228) Race conditions when reinitialisating nodes (OOM + Nullpointer)

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis reassigned CASSANDRA-2228:
-

Assignee: Gary Dusbabek

The OOM is because flushing allocates a buffer the size of 
in_memory_compaction_limit.  Sounds like you need to lower that.

The NPE looks like a bug.

 Race conditions when reinitialisating nodes (OOM + Nullpointer)
 ---

 Key: CASSANDRA-2228
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2228
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
Reporter: Thibaut
Assignee: Gary Dusbabek
 Fix For: 0.7.3


 I had a corrupt system table which wouldn't compact anymore and I deleted the 
 files and restarted cassandra and let it take the same token/ip address.
 I experienced the same errors when I'm adding a newly installed node under 
 the same token/ip address before calling repair.
 1)
 After a few seconds/minutes, I get a OOM error:
  INFO [FlushWriter:1] 2011-02-23 16:40:28,958 Memtable.java (line 164) 
 Completed flushing /cassandra/data/system/Schema-f-15-Data.db (8037 bytes)
  INFO [MigrationStage:1] 2011-02-23 16:40:28,965 Migration.java (line 133) 
 Applying migration 3e30e76b-1e3f-11e0-8369-5a9c1faed4ae Add keyspace: 
 table_userentriesrep factor:3rep 
 strategy:SimpleStrategy{org.apache.cassandra.config.CFMetaData@58925d9[cfId=1024,tableName=table_userentries,cfName=table_userentries,cfType=Standard,comparator=org.apache.cassandra.db.marshal.BytesType@b44dff0,subcolumncomparator=null,comment=,rowCacheSize=0.0,keyCacheSize=20.0,readRepairChance=0.0,gcGraceSeconds=86400,defaultValidator=org.apache.cassandra.db.marshal.BytesType@b44dff0,minCompactionThreshold=4,maxCompactionThreshold=32,rowCacheSavePeriodInSeconds=0,keyCacheSavePeriodInSeconds=3600,memtableFlushAfterMins=60,memtableThroughputInMb=64,memtableOperationsInMillions=10.0,column_metadata={}],
  
 org.apache.cassandra.config.CFMetaData@11ab7246[cfId=1025,tableName=table_userentries,cfName=table_userentries_meta,cfType=Standard,comparator=org.apache.cassandra.db.marshal.BytesType@b44dff0,subcolumncomparator=null,comment=,rowCacheSize=0.0,keyCacheSize=20.0,readRepairChance=0.0,gcGraceSeconds=86400,defaultValidator=org.apache.cassandra.db.marshal.BytesType@b44dff0,minCompactionThreshold=4,maxCompactionThreshold=32,rowCacheSavePeriodInSeconds=0,keyCacheSavePeriodInSeconds=3600,memtableFlushAfterMins=60,memtableThroughputInMb=64,memtableOperationsInMillions=10.0,column_metadata={}]}
  INFO [MigrationStage:1] 2011-02-23 16:40:28,965 ColumnFamilyStore.java (line 
 666) switching in a fresh Memtable for Migrations at 
 CommitLogContext(file='/cassandra/commitlog/CommitLog-1298475572022.log', 
 position=226075)
  INFO [MigrationStage:1] 2011-02-23 16:40:28,966 ColumnFamilyStore.java (line 
 977) Enqueuing flush of Memtable-Migrations@2121008793(12529 bytes, 1 
 operations)
  INFO [FlushWriter:1] 2011-02-23 16:40:28,966 Memtable.java (line 157) 
 Writing Memtable-Migrations@2121008793(12529 bytes, 1 operations)
  INFO [MigrationStage:1] 2011-02-23 16:40:28,966 ColumnFamilyStore.java (line 
 666) switching in a fresh Memtable for Schema at 
 CommitLogContext(file='/cassandra/commitlog/CommitLog-1298475572022.log', 
 position=226075)
  INFO [MigrationStage:1] 2011-02-23 16:40:28,967 ColumnFamilyStore.java (line 
 977) Enqueuing flush of Memtable-Schema@139610466(8370 bytes, 15 operations)
  INFO [ScheduledTasks:1] 2011-02-23 16:40:28,972 StatusLogger.java (line 89) 
 table_sourcedetection.table_sourcedetection 0,0   
   0/00/20
 ERROR [FlushWriter:1] 2011-02-23 16:41:01,240 AbstractCassandraDaemon.java 
 (line 114) Fatal exception in thread Thread[FlushWriter:1,5,main]
 java.lang.OutOfMemoryError: Java heap space
 at java.nio.HeapByteBuffer.init(HeapByteBuffer.java:39)
 at java.nio.ByteBuffer.allocate(ByteBuffer.java:312)
 at 
 org.apache.cassandra.io.util.BufferedRandomAccessFile.init(BufferedRandomAccessFile.java:126)
 at 
 org.apache.cassandra.io.sstable.SSTableWriter.init(SSTableWriter.java:75)
 at 
 org.apache.cassandra.db.Memtable.writeSortedContents(Memtable.java:158)
 at org.apache.cassandra.db.Memtable.access$000(Memtable.java:51)
 at org.apache.cassandra.db.Memtable$1.runMayThrow(Memtable.java:176)
 at 
 org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
 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)
 2) If I restart then, I'm getting an Nullpointer exception. The OOM error 
 will 

[jira] Assigned: (CASSANDRA-2104) IndexOutOfBoundsException during lazy row compaction (using TimeUUID comparator)

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis reassigned CASSANDRA-2104:
-

Assignee: Sylvain Lebresne

 IndexOutOfBoundsException during lazy row compaction (using TimeUUID 
 comparator)
 

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


 I ran into an exception when lazily compacting wide rows of TimeUUID columns.
 It seems to trigger when a row is larger than 
 {{in_memory_compaction_limit_in_mb}}.
 Traceback:
 {noformat}
  INFO [CompactionExecutor:1] 2011-02-03 10:59:59,262 CompactionIterator.java 
 (line 135) Compacting large row X (76999384 bytes) incrementally
  ERROR [CompactionExecutor:1] 2011-02-03 10:59:59,266 
 AbstractCassandraDaemon.java (line 114) Fatal exception in thread T
  hread[CompactionExecutor:1,1,main]
  java.lang.IndexOutOfBoundsException
  at java.nio.Buffer.checkIndex(Buffer.java:514)
  at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:121)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compareTimestampBytes(TimeUUIDType.java:56)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:45)
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:29)
  at 
 java.util.concurrent.ConcurrentSkipListMap$ComparableUsingComparator.compareTo(ConcurrentSkipListMap.java:606
  )
  at 
 java.util.concurrent.ConcurrentSkipListMap.findPredecessor(ConcurrentSkipListMap.java:685)
  at 
 java.util.concurrent.ConcurrentSkipListMap.doPut(ConcurrentSkipListMap.java:864)
  at 
 java.util.concurrent.ConcurrentSkipListMap.putIfAbsent(ConcurrentSkipListMap.java:1893)
  at 
 org.apache.cassandra.db.SuperColumn.addColumn(SuperColumn.java:170)
  at 
 org.apache.cassandra.db.SuperColumn.putColumn(SuperColumn.java:195)
  at 
 org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:221)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:204)
  at 
 org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:185)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:62)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 com.google.common.collect.Iterators$7.computeNext(Iterators.java:604)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.cassandra.db.ColumnIndexer.serializeInternal(ColumnIndexer.java:76)
  at 
 org.apache.cassandra.db.ColumnIndexer.serialize(ColumnIndexer.java:50)
  at 
 org.apache.cassandra.io.LazilyCompactedRow.init(LazilyCompactedRow.java:88)
  at 
 org.apache.cassandra.io.CompactionIterator.getCompactedRow(CompactionIterator.java:137)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:108)
  at 
 org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:43)
  at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:73)
  at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
  at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
  at 
 org.apache.commons.collections.iterators.FilterIterator.setNextObject(FilterIterator.java:183)
  at 
 org.apache.commons.collections.iterators.FilterIterator.hasNext(FilterIterator.java:94)
  at 
 org.apache.cassandra.db.CompactionManager.doCompaction(CompactionManager.java:426)
  at 
 org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:122)
  at 
 org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:92)
  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
  at java.util.concurrent.FutureTask.run(FutureTask.java:138)
  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.

[jira] Commented: (CASSANDRA-2223) ClientOnly mode is creating directories

2011-02-23 Thread T Jake Luciani (JIRA)

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

T Jake Luciani commented on CASSANDRA-2223:
---

v2 works great.  verified no dirs are created. +1

Only thing I've been seeing with client mode in general is this on startup 
(randomly)

11/02/23 12:03:46 INFO service.StorageService: Starting up client gossip
Exception in thread Thread-2 java.io.IOError: java.io.EOFException
at 
org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:73)
Caused by: java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:375)
at 
org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:61)

Seems to cause no issues though...

 ClientOnly mode is creating directories
 ---

 Key: CASSANDRA-2223
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2223
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.2
Reporter: Gary Dusbabek
Assignee: Gary Dusbabek
Priority: Minor
 Fix For: 0.7.3

 Attachments: 
 v1-0001-client-only-mode-shouldn-t-create-any-local-data.txt, 
 v2-0001-ClientOnlyExample-waits-for-schema-to-arrive-tries-to-.txt, 
 v2-0002-avoid-creating-local-files-when-in-fat-client-mode.txt, 
 v2-0003-make-sure-fat-clients-gossip-their-schema.txt, 
 v2-0004-update-contrib_client-only-meta.txt




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




[jira] Commented: (CASSANDRA-2212) Cannot get range slice of super columns in reversed order

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2212:
---

Sylvain, can you summarize the bug and how this patch fixes it?

 Cannot get range slice of super columns in reversed order
 -

 Key: CASSANDRA-2212
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2212
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
 Environment: Fedore 11, Intel Core i5
Reporter: Muga Nishizawa
Assignee: Sylvain Lebresne
 Fix For: 0.7.3

 Attachments: 0001-Fix-IndexHelp.indexFor-for-reverse-query.patch, 
 cassandra_sample_insert.py, cassandra_sample_rangeslice.py, create_table.cli


 I cannot get range slice of super columns in reversed order.  These data are 
 stored in Cassandra in advance.  On the other hand, range slice of these data 
 in normal order can be acquired.
 You can reproduce the bug by executing attached programs.  
 - 1. Start Cassandra daemon on localhost (number of thrift port is 9160)
 - 2. Create keyspace and column family, according to create_table.cli, 
 - 3. Execute cassandra_sample_insert.py, storing pairs of row keys and 
 super columns
 - 4. Execute cassandra_sample_rangeslice.py and get range slice of stored 
 super columns
 cassandra_sample_insert.py and cassandra_sample_rangeslice.py require 
 pycassa.  
 You will need to execute 4.cassandra_sample_rangeslice.py with following 
 options so that you get range slice of super columns in reversed order.  
  % python cassandra_sample_rangeslice.py -r 00082 00083
 On the other hand, to get range slice in normal order, you will need to use 
 following options.  
  % python cassandra_sample_rangeslice.py -f 00082 00083
 00082 and 00083 are the specified key range.  Range slice can be acquired in 
 normal order but, I cannot get it in reversed order.  
 I assume that there may be a bug within the code for acquiring the index 
 block of specified range.  In fact, 00083 is included in gap between lastName 
 of index block and firstName of next index block.   

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




[jira] Commented: (CASSANDRA-2212) Cannot get range slice of super columns in reversed order

2011-02-23 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-2212:
-

Sure.

The problem is that we were not picking the right index slot for reverse query. 
Let's take the example from the unit test, and say your index look like this:
  [0..5][10..15][20..25]

And say you look for the slice [13..17]. When doing forward slice, we we doing 
a binary search comparing 13 (the start of the query) to the lastName part of 
the index slot, which is fine. You'll end up with the first slot, going from 
left to right, that may contain the start.

When doing a reverse query, we were doing the same thing, only using as a start 
column the end of the query, aka 17 in my example. However, comparing 17 with 
the lastName of each index slot, you end up selecting the last slot, which is 
wrong (the slice exit early since 17 is not in the range).

What you want to do is pick the first slot, but now going from right to left, 
that may contain start. So you want to find the slot where firstName  start 
and take the slot just before.

I hope I'm clear. Anyway, that's what the patch does. 

 Cannot get range slice of super columns in reversed order
 -

 Key: CASSANDRA-2212
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2212
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
 Environment: Fedore 11, Intel Core i5
Reporter: Muga Nishizawa
Assignee: Sylvain Lebresne
 Fix For: 0.7.3

 Attachments: 0001-Fix-IndexHelp.indexFor-for-reverse-query.patch, 
 cassandra_sample_insert.py, cassandra_sample_rangeslice.py, create_table.cli


 I cannot get range slice of super columns in reversed order.  These data are 
 stored in Cassandra in advance.  On the other hand, range slice of these data 
 in normal order can be acquired.
 You can reproduce the bug by executing attached programs.  
 - 1. Start Cassandra daemon on localhost (number of thrift port is 9160)
 - 2. Create keyspace and column family, according to create_table.cli, 
 - 3. Execute cassandra_sample_insert.py, storing pairs of row keys and 
 super columns
 - 4. Execute cassandra_sample_rangeslice.py and get range slice of stored 
 super columns
 cassandra_sample_insert.py and cassandra_sample_rangeslice.py require 
 pycassa.  
 You will need to execute 4.cassandra_sample_rangeslice.py with following 
 options so that you get range slice of super columns in reversed order.  
  % python cassandra_sample_rangeslice.py -r 00082 00083
 On the other hand, to get range slice in normal order, you will need to use 
 following options.  
  % python cassandra_sample_rangeslice.py -f 00082 00083
 00082 and 00083 are the specified key range.  Range slice can be acquired in 
 normal order but, I cannot get it in reversed order.  
 I assume that there may be a bug within the code for acquiring the index 
 block of specified range.  In fact, 00083 is included in gap between lastName 
 of index block and firstName of next index block.   

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




svn commit: r1073847 - in /cassandra/branches/cassandra-0.7: ./ src/java/org/apache/cassandra/db/columniterator/ src/java/org/apache/cassandra/io/sstable/

2011-02-23 Thread jbellis
Author: jbellis
Date: Wed Feb 23 17:54:43 2011
New Revision: 1073847

URL: http://svn.apache.org/viewvc?rev=1073847view=rev
Log:
fix reversed slice queries on large rows
patch by slebresne; reviewed by jbellis for CASSANDRA-2212

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

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/IndexHelper.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1073847r1=1073846r2=1073847view=diff
==
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Wed Feb 23 17:54:43 2011
@@ -23,6 +23,7 @@
  * fix cache saving on Windows (CASSANDRA-2207)
  * add validateSchemaAgreement call + synchronization to schema
modification operations (CASSANDRA-)
+ * fix for reversed slice queries on large rows (CASSANDRA-2212)
 
 
 0.7.2

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java?rev=1073847r1=1073846r2=1073847view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
 Wed Feb 23 17:54:43 2011
@@ -146,8 +146,6 @@ class IndexedSliceReader extends Abstrac
 file.readInt(); // column count
 this.mark = file.mark();
 curRangeIndex = IndexHelper.indexFor(startColumn, indexes, 
comparator, reversed);
-if (reversed  curRangeIndex == indexes.size())
-curRangeIndex--;
 }
 
 public boolean getNextBlock() throws IOException

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java?rev=1073847r1=1073846r2=1073847view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
 Wed Feb 23 17:54:43 2011
@@ -160,7 +160,7 @@ public class SSTableNamesIterator extend
 
 /* get the various column ranges we have to read */
 AbstractType comparator = metadata.comparator;
-SortedSetIndexHelper.IndexInfo ranges = new 
TreeSetIndexHelper.IndexInfo(IndexHelper.getComparator(comparator));
+SortedSetIndexHelper.IndexInfo ranges = new 
TreeSetIndexHelper.IndexInfo(IndexHelper.getComparator(comparator, false));
 for (ByteBuffer name : filteredColumnNames)
 {
 int index = IndexHelper.indexFor(name, indexList, comparator, 
false);

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/IndexHelper.java?rev=1073847r1=1073846r2=1073847view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
 Wed Feb 23 17:54:43 2011
@@ -111,8 +111,7 @@ public class IndexHelper
 }
 
 /**
- * the index of the IndexInfo in which @name will be found.
- * If the index is @indexList.size(), the @name appears nowhere.
+ * The index of the IndexInfo in which a scan starting with @name should 
begin.
  *
  * @param name
  * name of the index
@@ -133,19 +132,40 @@ public class IndexHelper
 if (name.remaining() == 0  reversed)
 return indexList.size() - 1;
 IndexInfo target = new IndexInfo(name, name, 0, 0);
-int index = Collections.binarySearch(indexList, target, 
getComparator(comparator));
-return index  0 ? -1 * (index + 1) : index;
+/*
+Take the example from the unit test, and say your index looks like 
this:
+[0..5][10..15][20..25]
+and you look for the slice [13..17].
+
+When doing forward slice, we we 

[jira] Commented: (CASSANDRA-2124) JDBC driver for CQL

2011-02-23 Thread Vivek Mishra (JIRA)

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

Vivek Mishra commented on CASSANDRA-2124:
-

Hi Eric,
Looked into python decoder as a newbie to python. 
But it looks to me as :
1) Decode column value using column family validator and comparator.

Same is with java decoder

Logic is :

1) On invocation of CassandraStatement execution, make static call to 
ColumnDecoder with query and keyspace.
2) Implicitly retrieve column family using pattern matching.
3) CassandraResultSet.next() method is changed to pick columnValue from 
ColumnDecoder.getColumnValue(col.getValue()).

This automatically decodes(cast) object into required format.

I can see that it looks to me both (py and java) more or less on same path.


Having something like describe_column_family later can be a big thing.



 JDBC driver for CQL
 ---

 Key: CASSANDRA-2124
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2124
 Project: Cassandra
  Issue Type: New Feature
  Components: API
Reporter: Eric Evans
Assignee: Vivek Mishra
Priority: Minor
  Labels: cql
 Attachments: Cassandra-2124_v1.0, cassandra-0.7.1-2124_v2.0, 
 cassandra-0.7.1-2124_v2.1, cassandra_generic_decoder.patch


 A simple connection class and corresponding pool was created for CQL as a 
 part of CASSANDRA-1710, but a JDBC driver (either in addition to, or as a 
 replacement for) would also be interesting.

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




[jira] Commented: (CASSANDRA-2124) JDBC driver for CQL

2011-02-23 Thread Vivek Mishra (JIRA)

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

Vivek Mishra commented on CASSANDRA-2124:
-

plaaning to add support for getBigDecimal(), getBytes etc in CassandraResultSet 
using above mentioned logic.

 JDBC driver for CQL
 ---

 Key: CASSANDRA-2124
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2124
 Project: Cassandra
  Issue Type: New Feature
  Components: API
Reporter: Eric Evans
Assignee: Vivek Mishra
Priority: Minor
  Labels: cql
 Attachments: Cassandra-2124_v1.0, cassandra-0.7.1-2124_v2.0, 
 cassandra-0.7.1-2124_v2.1, cassandra_generic_decoder.patch


 A simple connection class and corresponding pool was created for CQL as a 
 part of CASSANDRA-1710, but a JDBC driver (either in addition to, or as a 
 replacement for) would also be interesting.

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




[jira] Created: (CASSANDRA-2229) Back off compaction after failure

2011-02-23 Thread Nick Bailey (JIRA)
Back off compaction after failure
-

 Key: CASSANDRA-2229
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2229
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Affects Versions: 0.7.2
Reporter: Nick Bailey
Priority: Minor
 Fix For: 0.8


When compaction fails (for one of the multitude of reasons it can fail, 
generally some sort of 'corruption'), we should back off on attempting to 
compact that column family.  Continuously trying to compact it will just waste 
resources.

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




svn commit: r1073884 - in /cassandra/branches/cassandra-0.7: ./ contrib/client_only/conf/ contrib/client_only/src/ src/java/org/apache/cassandra/config/ src/java/org/apache/cassandra/db/ src/java/org/

2011-02-23 Thread gdusbabek
Author: gdusbabek
Date: Wed Feb 23 19:03:57 2011
New Revision: 1073884

URL: http://svn.apache.org/viewvc?rev=1073884view=rev
Log:
fat clients were creating local data. patch by gdusbabek, reviewed by tjake. 
CASSANDRA-2223

Modified:
cassandra/branches/cassandra-0.7/CHANGES.txt
cassandra/branches/cassandra-0.7/contrib/client_only/conf/cassandra.yaml

cassandra/branches/cassandra-0.7/contrib/client_only/src/ClientOnlyExample.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/DatabaseDescriptor.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/HintedHandOffManager.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Table.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/commitlog/CommitLog.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/migration/Migration.java

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

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

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1073884r1=1073883r2=1073884view=diff
==
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Wed Feb 23 19:03:57 2011
@@ -24,6 +24,7 @@
  * add validateSchemaAgreement call + synchronization to schema
modification operations (CASSANDRA-)
  * fix for reversed slice queries on large rows (CASSANDRA-2212)
+ * fat clients were writing local data (CASSANDRA-2223)
 
 
 0.7.2

Modified: 
cassandra/branches/cassandra-0.7/contrib/client_only/conf/cassandra.yaml
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/contrib/client_only/conf/cassandra.yaml?rev=1073884r1=1073883r2=1073884view=diff
==
--- cassandra/branches/cassandra-0.7/contrib/client_only/conf/cassandra.yaml 
(original)
+++ cassandra/branches/cassandra-0.7/contrib/client_only/conf/cassandra.yaml 
Wed Feb 23 19:03:57 2011
@@ -34,6 +34,8 @@ hinted_handoff_enabled: true
 # this defines the maximum amount of time a dead host will have hints
 # generated.  After it has been dead this long, hints will be dropped.
 max_hint_window_in_ms: 360 # one hour
+# Sleep this long after delivering each row or row fragment
+hinted_handoff_throttle_delay_in_ms: 50
 
 # authentication backend, implementing IAuthenticator; used to identify users
 authenticator: org.apache.cassandra.auth.AllowAllAuthenticator
@@ -90,6 +92,31 @@ commitlog_sync: periodic
 # milliseconds.
 commitlog_sync_period_in_ms: 1
 
+# emergency pressure valve: each time heap usage after a full (CMS)
+# garbage collection is above this fraction of the max, Cassandra will
+# flush the largest memtables.  
+#
+# Set to 1.0 to disable.  Setting this lower than
+# CMSInitiatingOccupancyFraction is not likely to be useful.
+#
+# RELYING ON THIS AS YOUR PRIMARY TUNING MECHANISM WILL WORK POORLY:
+# it is most effective under light to moderate load, or read-heavy
+# workloads; under truly massive write load, it will often be too
+# little, too late.
+flush_largest_memtables_at: 0.75
+
+# emergency pressure valve #2: the first time heap usage after a full
+# (CMS) garbage collection is above this fraction of the max,
+# Cassandra will reduce cache maximum _capacity_ to the given fraction
+# of the current _size_.  Should usually be set substantially above
+# flush_largest_memtables_at, since that will have less long-term
+# impact on the system.  
+# 
+# Set to 1.0 to disable.  Setting this lower than
+# CMSInitiatingOccupancyFraction is not likely to be useful.
+reduce_cache_sizes_at: 0.85
+reduce_cache_capacity_to: 0.6
+
 # Addresses of hosts that are deemed contact points.
 # Cassandra nodes use this list of hosts to find each other and learn
 # the topology of the ring.  You must change this if you are running
@@ -199,6 +226,11 @@ column_index_size_in_kb: 64
 # will be logged specifying the row key.
 in_memory_compaction_limit_in_mb: 64
 
+# Track cached row keys during compaction, and re-cache their new
+# positions in the compacted sstable.  Disable if you use really large
+# key caches.
+compaction_preheat_key_cache: true
+
 # Time to wait for a reply from other nodes before failing the command 
 rpc_timeout_in_ms: 1
 

Modified: 
cassandra/branches/cassandra-0.7/contrib/client_only/src/ClientOnlyExample.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/contrib/client_only/src/ClientOnlyExample.java?rev=1073884r1=1073883r2=1073884view=diff
==
--- 
cassandra/branches/cassandra-0.7/contrib/client_only/src/ClientOnlyExample.java 
(original)
+++ 

svn commit: r1073886 - /cassandra/trunk/drivers/py/cql/marshal.py

2011-02-23 Thread eevans
Author: eevans
Date: Wed Feb 23 19:09:17 2011
New Revision: 1073886

URL: http://svn.apache.org/viewvc?rev=1073886view=rev
Log:
fixup typo in CQL Python driver

Modified:
cassandra/trunk/drivers/py/cql/marshal.py

Modified: cassandra/trunk/drivers/py/cql/marshal.py
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/drivers/py/cql/marshal.py?rev=1073886r1=1073885r2=1073886view=diff
==
--- cassandra/trunk/drivers/py/cql/marshal.py (original)
+++ cassandra/trunk/drivers/py/cql/marshal.py Wed Feb 23 19:09:17 2011
@@ -76,7 +76,7 @@ def unmarshal(bytestr, typestr):
 elif typestr == org.apache.cassandra.db.marshal.LexicalUUIDType:
 return UUID(bytes=bytestr)
 elif typestr == org.apache.cassandra.db.marshal.TimeUUIDType:
-return UUID(bytes=bytetr)
+return UUID(bytes=bytestr)
 else:
 return bytestr
 




svn commit: r1073888 - in /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra: db/BinaryMemtable.java db/ColumnFamilyStore.java db/CompactionManager.java db/Memtable.java io/sstable/SSTabl

2011-02-23 Thread jbellis
Author: jbellis
Date: Wed Feb 23 19:13:01 2011
New Revision: 1073888

URL: http://svn.apache.org/viewvc?rev=1073888view=rev
Log:
simplify SSTableWriter constructors and add 
CFS.createFlushWriter/createCompactionWriter

Modified:

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Memtable.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/SSTableImport.java

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java?rev=1073888r1=1073887r2=1073888view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java
 Wed Feb 23 19:13:01 2011
@@ -125,8 +125,7 @@ public class BinaryMemtable implements I
 private SSTableReader writeSortedContents(ListDecoratedKey sortedKeys) 
throws IOException
 {
 logger.info(Writing  + this);
-String path = cfs.getFlushPath();
-SSTableWriter writer = new SSTableWriter(path, sortedKeys.size(), 
cfs.metadata, cfs.partitioner);
+SSTableWriter writer = cfs.createFlushWriter(sortedKeys.size());
 
 for (DecoratedKey key : sortedKeys)
 {

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1073888r1=1073887r2=1073888view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
 Wed Feb 23 19:13:01 2011
@@ -2063,4 +2063,14 @@ public class ColumnFamilyStore implement
 ssTables.getKeyCache().setCapacity(newCapacity);
 }
 }
+
+public SSTableWriter createFlushWriter(long estimatedRows) throws 
IOException
+{
+return new SSTableWriter(getFlushPath(), estimatedRows, metadata, 
partitioner);
+}
+
+public SSTableWriter createCompactionWriter(long estimatedRows, String 
location) throws IOException
+{
+return new SSTableWriter(getTempSSTablePath(location), estimatedRows, 
metadata, partitioner);
+}
 }

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java?rev=1073888r1=1073887r2=1073888view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
 Wed Feb 23 19:13:01 2011
@@ -444,8 +444,7 @@ public class CompactionManager implement
 return 0;
 }
 
-String newFilename = new 
File(cfs.getTempSSTablePath(compactionFileLocation)).getAbsolutePath();
-writer = new SSTableWriter(newFilename, expectedBloomFilterSize, 
cfs.metadata, cfs.partitioner);
+writer = cfs.createCompactionWriter(expectedBloomFilterSize, 
compactionFileLocation);
 while (nni.hasNext())
 {
 AbstractCompactedRow row = nni.next();
@@ -706,8 +705,7 @@ public class CompactionManager implement
 if (writer == null)
 {
 FileUtils.createDirectory(compactionFileLocation);
-String newFilename = new 
File(cfs.getTempSSTablePath(compactionFileLocation)).getAbsolutePath();
-writer = new SSTableWriter(newFilename, expectedBloomFilterSize, 
cfs.metadata, cfs.partitioner);
+writer = cfs.createCompactionWriter(expectedBloomFilterSize, 
compactionFileLocation);
 }
 return writer;
 }

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Memtable.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Memtable.java?rev=1073888r1=1073887r2=1073888view=diff
==
--- 

svn commit: r1073889 - in /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra: db/BinaryMemtable.java db/ColumnFamilyStore.java db/CompactionManager.java db/Memtable.java io/sstable/SSTabl

2011-02-23 Thread jbellis
Author: jbellis
Date: Wed Feb 23 19:14:15 2011
New Revision: 1073889

URL: http://svn.apache.org/viewvc?rev=1073889view=rev
Log:
revert last until tests are fixed

Modified:

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Memtable.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/SSTableImport.java

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java?rev=1073889r1=1073888r2=1073889view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java
 Wed Feb 23 19:14:15 2011
@@ -125,7 +125,8 @@ public class BinaryMemtable implements I
 private SSTableReader writeSortedContents(ListDecoratedKey sortedKeys) 
throws IOException
 {
 logger.info(Writing  + this);
-SSTableWriter writer = cfs.createFlushWriter(sortedKeys.size());
+String path = cfs.getFlushPath();
+SSTableWriter writer = new SSTableWriter(path, sortedKeys.size(), 
cfs.metadata, cfs.partitioner);
 
 for (DecoratedKey key : sortedKeys)
 {

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1073889r1=1073888r2=1073889view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
 Wed Feb 23 19:14:15 2011
@@ -2063,14 +2063,4 @@ public class ColumnFamilyStore implement
 ssTables.getKeyCache().setCapacity(newCapacity);
 }
 }
-
-public SSTableWriter createFlushWriter(long estimatedRows) throws 
IOException
-{
-return new SSTableWriter(getFlushPath(), estimatedRows, metadata, 
partitioner);
-}
-
-public SSTableWriter createCompactionWriter(long estimatedRows, String 
location) throws IOException
-{
-return new SSTableWriter(getTempSSTablePath(location), estimatedRows, 
metadata, partitioner);
-}
 }

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java?rev=1073889r1=1073888r2=1073889view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
 Wed Feb 23 19:14:15 2011
@@ -444,7 +444,8 @@ public class CompactionManager implement
 return 0;
 }
 
-writer = cfs.createCompactionWriter(expectedBloomFilterSize, 
compactionFileLocation);
+String newFilename = new 
File(cfs.getTempSSTablePath(compactionFileLocation)).getAbsolutePath();
+writer = new SSTableWriter(newFilename, expectedBloomFilterSize, 
cfs.metadata, cfs.partitioner);
 while (nni.hasNext())
 {
 AbstractCompactedRow row = nni.next();
@@ -705,7 +706,8 @@ public class CompactionManager implement
 if (writer == null)
 {
 FileUtils.createDirectory(compactionFileLocation);
-writer = cfs.createCompactionWriter(expectedBloomFilterSize, 
compactionFileLocation);
+String newFilename = new 
File(cfs.getTempSSTablePath(compactionFileLocation)).getAbsolutePath();
+writer = new SSTableWriter(newFilename, expectedBloomFilterSize, 
cfs.metadata, cfs.partitioner);
 }
 return writer;
 }

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Memtable.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Memtable.java?rev=1073889r1=1073888r2=1073889view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Memtable.java 
(original)
+++ 

[jira] Created: (CASSANDRA-2230) Allow to specify ConsistencyLevel in cassandra-cli

2011-02-23 Thread Norman Maurer (JIRA)
Allow to specify ConsistencyLevel in cassandra-cli
--

 Key: CASSANDRA-2230
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2230
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Norman Maurer
Assignee: Norman Maurer
Priority: Minor


At the moment when using cassandra-cli all operations are done with 
ConsistencyLevel.ONE. This works well but I think it would be overall useful to 
allow to override this ConsistencyLevel on per command basis. 

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




[jira] Commented: (CASSANDRA-2230) Allow to specify ConsistencyLevel in cassandra-cli

2011-02-23 Thread Norman Maurer (JIRA)

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

Norman Maurer commented on CASSANDRA-2230:
--

I will work on a patch for this...

 Allow to specify ConsistencyLevel in cassandra-cli
 --

 Key: CASSANDRA-2230
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2230
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Norman Maurer
Assignee: Norman Maurer
Priority: Minor

 At the moment when using cassandra-cli all operations are done with 
 ConsistencyLevel.ONE. This works well but I think it would be overall useful 
 to allow to override this ConsistencyLevel on per command basis. 

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




[jira] Commented: (CASSANDRA-2229) Back off compaction after failure

2011-02-23 Thread Ryan King (JIRA)

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

Ryan King commented on CASSANDRA-2229:
--

It might be worth keeping track of the specific SSTables involved in the failed 
compaction and skipping those. Its possible we could make some progress on 
compaction in scenarios where a single sstable is corrupt.

 Back off compaction after failure
 -

 Key: CASSANDRA-2229
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2229
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Affects Versions: 0.7.2
Reporter: Nick Bailey
Priority: Minor
 Fix For: 0.8


 When compaction fails (for one of the multitude of reasons it can fail, 
 generally some sort of 'corruption'), we should back off on attempting to 
 compact that column family.  Continuously trying to compact it will just 
 waste resources.

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




svn commit: r1073894 - in /cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress: ./ operations/ util/

2011-02-23 Thread brandonwilliams
Author: brandonwilliams
Date: Wed Feb 23 19:25:40 2011
New Revision: 1073894

URL: http://svn.apache.org/viewvc?rev=1073894view=rev
Log:
Switch stress.java to a producer/consumer model for better performance.
Patch by Pavel Yaskevich, reviewed by brandonwilliams for CASSANDRA-2020

Removed:

cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/util/OperationThread.java

cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/util/Range.java
Modified:

cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/Session.java

cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/Stress.java

cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/operations/IndexedRangeSlicer.java

cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/operations/Inserter.java

cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/operations/MultiGetter.java

cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/operations/RangeSlicer.java

cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/operations/Reader.java

Modified: 
cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/Session.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/Session.java?rev=1073894r1=1073893r2=1073894view=diff
==
--- 
cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/Session.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/Session.java
 Wed Feb 23 19:25:40 2011
@@ -20,8 +20,8 @@ package org.apache.cassandra.contrib.str
 import java.io.*;
 import java.nio.ByteBuffer;
 import java.util.*;
-import java.util.concurrent.atomic.AtomicIntegerArray;
-import java.util.concurrent.atomic.AtomicLongArray;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.commons.cli.*;
 
@@ -38,9 +38,9 @@ public class Session
 // command line options
 public static final Options availableOptions = new Options();
 
-public final AtomicIntegerArray operationCount;
-public final AtomicIntegerArray keyCount;
-public final AtomicLongArray latencies;
+public final AtomicInteger operations;
+public final AtomicInteger keys;
+public final AtomicLonglatency;
 
 static
 {
@@ -93,7 +93,7 @@ public class Session
 private PrintStream out = System.out;
 
 private IndexType indexType = null;
-private Stress.Operation operation = Stress.Operation.INSERT;
+private Stress.Operations operation = Stress.Operations.INSERT;
 private ColumnFamilyType columnFamilyType = ColumnFamilyType.Standard;
 private ConsistencyLevel consistencyLevel = ConsistencyLevel.ONE;
 private String replicationStrategy = 
org.apache.cassandra.locator.SimpleStrategy;
@@ -183,7 +183,7 @@ public class Session
 unframed = Boolean.parseBoolean(cmd.getOptionValue(m));
 
 if (cmd.hasOption(o))
-operation = 
Stress.Operation.valueOf(cmd.getOptionValue(o).toUpperCase());
+operation = 
Stress.Operations.valueOf(cmd.getOptionValue(o).toUpperCase());
 
 if (cmd.hasOption(u))
 superColumns = Integer.parseInt(cmd.getOptionValue(u));
@@ -248,9 +248,9 @@ public class Session
 mean  = numKeys / 2;
 sigma = numKeys * STDev;
 
-operationCount = new AtomicIntegerArray(threads);
-keyCount = new AtomicIntegerArray(threads);
-latencies = new AtomicLongArray(threads);
+operations = new AtomicInteger();
+keys = new AtomicInteger();
+latency = new AtomicLong();
 }
 
 public int getCardinality()
@@ -323,7 +323,7 @@ public class Session
 return ignoreErrors;
 }
 
-public Stress.Operation getOperation()
+public Stress.Operations getOperation()
 {
 return operation;
 }

Modified: 
cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/Stress.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/Stress.java?rev=1073894r1=1073893r2=1073894view=diff
==
--- 
cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/Stress.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/contrib/stress/src/org/apache/cassandra/contrib/stress/Stress.java
 Wed Feb 23 19:25:40 2011
@@ -18,15 +18,18 @@
 package 

svn commit: r1073896 [2/2] - in /cassandra/trunk: ./ contrib/ contrib/client_only/conf/ contrib/client_only/src/ contrib/stress/src/org/apache/cassandra/contrib/stress/ contrib/stress/src/org/apache/c

2011-02-23 Thread gdusbabek
Modified: cassandra/trunk/src/java/org/apache/cassandra/io/PrecompactedRow.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/PrecompactedRow.java?rev=1073896r1=1073895r2=1073896view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/io/PrecompactedRow.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/PrecompactedRow.java Wed 
Feb 23 19:32:42 2011
@@ -58,7 +58,7 @@ public class PrecompactedRow extends Abs
 this.headerBuffer = new DataOutputBuffer();
 }
 
-public PrecompactedRow(ColumnFamilyStore cfStore, 
ListSSTableIdentityIterator rows, boolean major, int gcBefore)
+public PrecompactedRow(ColumnFamilyStore cfStore, 
ListSSTableIdentityIterator rows, boolean major, int gcBefore, boolean 
forceDeserialize)
 {
 super(rows.get(0).getKey());
 buffer = new DataOutputBuffer();
@@ -71,7 +71,7 @@ public class PrecompactedRow extends Abs
 }
 boolean shouldPurge = major || !cfStore.isKeyInRemainingSSTables(key, 
sstables);
 
-if (rows.size()  1 || shouldPurge)
+if (rows.size()  1 || shouldPurge || 
!rows.get(0).sstable.descriptor.isLatestVersion || forceDeserialize)
 {
 ColumnFamily cf = null;
 for (SSTableIdentityIterator row : rows)

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/CacheWriter.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/CacheWriter.java?rev=1073896r1=1073895r2=1073896view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/CacheWriter.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/CacheWriter.java 
Wed Feb 23 19:32:42 2011
@@ -89,8 +89,10 @@ public class CacheWriterK, V implement
 {
 out.close();
 }
+
+path.delete(); // ignore error if it didn't exist
 if (!tmpFile.renameTo(path))
-throw new IOException(Unable to rename cache to  + path);
+throw new IOException(Unable to rename  + tmpFile +  to  + 
path);
 logger.info(String.format(Saved %s (%d items) in %d ms,
   path.getName(), keys.size(), 
(System.currentTimeMillis() - start)));
 }

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/IndexHelper.java?rev=1073896r1=1073895r2=1073896view=diff
==
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/IndexHelper.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/IndexHelper.java 
Wed Feb 23 19:32:42 2011
@@ -111,8 +111,7 @@ public class IndexHelper
 }
 
 /**
- * the index of the IndexInfo in which @name will be found.
- * If the index is @indexList.size(), the @name appears nowhere.
+ * The index of the IndexInfo in which a scan starting with @name should 
begin.
  *
  * @param name
  * name of the index
@@ -133,19 +132,40 @@ public class IndexHelper
 if (name.remaining() == 0  reversed)
 return indexList.size() - 1;
 IndexInfo target = new IndexInfo(name, name, 0, 0);
-int index = Collections.binarySearch(indexList, target, 
getComparator(comparator));
-return index  0 ? -1 * (index + 1) : index;
+/*
+Take the example from the unit test, and say your index looks like 
this:
+[0..5][10..15][20..25]
+and you look for the slice [13..17].
+
+When doing forward slice, we we doing a binary search comparing 13 
(the start of the query)
+to the lastName part of the index slot. You'll end up with the first 
slot, going from left to right,
+that may contain the start.
+
+When doing a reverse slice, we do the same thing, only using as a 
start column the end of the query,
+i.e. 17 in this example, compared to the firstName part of the index 
slots.  bsearch will give us the
+first slot where firstName  start ([20..25] here), so we subtract an 
extra one to get the slot just before.
+*/
+int index = Collections.binarySearch(indexList, target, 
getComparator(comparator, reversed));
+return index  0 ? -index - (reversed ? 2 : 1) : index;
 }
 
-public static ComparatorIndexInfo getComparator(final AbstractType 
nameComparator)
+public static ComparatorIndexInfo getComparator(final AbstractType 
nameComparator, boolean reversed)
 {
-return new ComparatorIndexInfo()
-{
-public int compare(IndexInfo o1, IndexInfo o2)
-{
-return nameComparator.compare(o1.lastName, o2.lastName);
-   

[jira] Resolved: (CASSANDRA-2200) stress.java doesn't insert the correct amount of rows

2011-02-23 Thread Brandon Williams (JIRA)

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

Brandon Williams resolved CASSANDRA-2200.
-

Resolution: Fixed

Solved by CASSANDRA-2020

 stress.java doesn't insert the correct amount of rows
 -

 Key: CASSANDRA-2200
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2200
 Project: Cassandra
  Issue Type: Bug
  Components: Contrib
Affects Versions: 0.7.1
Reporter: Brandon Williams
Assignee: Pavel Yaskevich
Priority: Minor
 Fix For: 0.7.3

   Original Estimate: 8h
  Remaining Estimate: 8h

 For example, if you pass -n 200 you only get 1999800 (with 300 threads at 
 least, didn't check if it was related)

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




svn commit: r1073900 - in /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db: BinaryMemtable.java ColumnFamilyStore.java CompactionManager.java Memtable.java

2011-02-23 Thread jbellis
Author: jbellis
Date: Wed Feb 23 19:38:44 2011
New Revision: 1073900

URL: http://svn.apache.org/viewvc?rev=1073900view=rev
Log:
add CFS.createFlushWriter/createCompactionWriter

Modified:

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Memtable.java

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java?rev=1073900r1=1073899r2=1073900view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/BinaryMemtable.java
 Wed Feb 23 19:38:44 2011
@@ -125,8 +125,7 @@ public class BinaryMemtable implements I
 private SSTableReader writeSortedContents(ListDecoratedKey sortedKeys) 
throws IOException
 {
 logger.info(Writing  + this);
-String path = cfs.getFlushPath();
-SSTableWriter writer = new SSTableWriter(path, sortedKeys.size(), 
cfs.metadata, cfs.partitioner);
+SSTableWriter writer = cfs.createFlushWriter(sortedKeys.size());
 
 for (DecoratedKey key : sortedKeys)
 {

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1073900r1=1073899r2=1073900view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
 Wed Feb 23 19:38:44 2011
@@ -2063,4 +2063,14 @@ public class ColumnFamilyStore implement
 ssTables.getKeyCache().setCapacity(newCapacity);
 }
 }
+
+public SSTableWriter createFlushWriter(long estimatedRows) throws 
IOException
+{
+return new SSTableWriter(getFlushPath(), estimatedRows, metadata, 
partitioner);
+}
+
+public SSTableWriter createCompactionWriter(long estimatedRows, String 
location) throws IOException
+{
+return new SSTableWriter(getTempSSTablePath(location), estimatedRows, 
metadata, partitioner);
+}
 }

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java?rev=1073900r1=1073899r2=1073900view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
 Wed Feb 23 19:38:44 2011
@@ -444,8 +444,7 @@ public class CompactionManager implement
 return 0;
 }
 
-String newFilename = new 
File(cfs.getTempSSTablePath(compactionFileLocation)).getAbsolutePath();
-writer = new SSTableWriter(newFilename, expectedBloomFilterSize, 
cfs.metadata, cfs.partitioner);
+writer = cfs.createCompactionWriter(expectedBloomFilterSize, 
compactionFileLocation);
 while (nni.hasNext())
 {
 AbstractCompactedRow row = nni.next();
@@ -706,8 +705,7 @@ public class CompactionManager implement
 if (writer == null)
 {
 FileUtils.createDirectory(compactionFileLocation);
-String newFilename = new 
File(cfs.getTempSSTablePath(compactionFileLocation)).getAbsolutePath();
-writer = new SSTableWriter(newFilename, expectedBloomFilterSize, 
cfs.metadata, cfs.partitioner);
+writer = cfs.createCompactionWriter(expectedBloomFilterSize, 
compactionFileLocation);
 }
 return writer;
 }

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Memtable.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Memtable.java?rev=1073900r1=1073899r2=1073900view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Memtable.java 
(original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Memtable.java 
Wed Feb 23 19:38:44 2011
@@ -155,7 +155,7 @@ public class Memtable implements Compara
 private SSTableReader 

[jira] Created: (CASSANDRA-2231) Add CompositeType comparer to the comparers provided in org.apache.cassandra.db.marshal

2011-02-23 Thread Ed Anuff (JIRA)
Add CompositeType comparer to the comparers provided in 
org.apache.cassandra.db.marshal
---

 Key: CASSANDRA-2231
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2231
 Project: Cassandra
  Issue Type: Improvement
  Components: Contrib
Affects Versions: 0.7.3
Reporter: Ed Anuff
Priority: Minor


CompositeType is a custom comparer that makes it possible to create comparable 
composite values out of the basic types that Cassandra currently supports, such 
as Long, UUID, etc.  This is very useful in both the creation of custom 
inverted indexes using columns in a skinny row, where each column name is a 
composite value, and also when using Cassandra's built-in secondary index 
support, where it can be used to encode the values in the columns that 
Cassandra indexes.  One scenario for the usage of these is documented here: 
http://www.anuff.com/2010/07/secondary-indexes-in-cassandra.html.  Source for 
contribution is attached and has been previously maintained on github here: 
https://github.com/edanuff/CassandraCompositeType

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




[jira] Commented: (CASSANDRA-2223) ClientOnly mode is creating directories

2011-02-23 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2223:
---

Integrated in Cassandra-0.7 #312 (See 
[https://hudson.apache.org/hudson/job/Cassandra-0.7/312/])
fat clients were creating local data. patch by gdusbabek, reviewed by 
tjake. CASSANDRA-2223


 ClientOnly mode is creating directories
 ---

 Key: CASSANDRA-2223
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2223
 Project: Cassandra
  Issue Type: Bug
Affects Versions: 0.7.2
Reporter: Gary Dusbabek
Assignee: Gary Dusbabek
Priority: Minor
 Fix For: 0.7.3

 Attachments: 
 v1-0001-client-only-mode-shouldn-t-create-any-local-data.txt, 
 v2-0001-ClientOnlyExample-waits-for-schema-to-arrive-tries-to-.txt, 
 v2-0002-avoid-creating-local-files-when-in-fat-client-mode.txt, 
 v2-0003-make-sure-fat-clients-gossip-their-schema.txt, 
 v2-0004-update-contrib_client-only-meta.txt




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




[jira] Commented: (CASSANDRA-2020) stress.java performance falls off heavily towards the end

2011-02-23 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2020:
---

Integrated in Cassandra-0.7 #312 (See 
[https://hudson.apache.org/hudson/job/Cassandra-0.7/312/])
Switch stress.java to a producer/consumer model for better performance.
Patch by Pavel Yaskevich, reviewed by brandonwilliams for CASSANDRA-2020


 stress.java performance falls off heavily towards the end
 -

 Key: CASSANDRA-2020
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2020
 Project: Cassandra
  Issue Type: Improvement
  Components: Contrib
Reporter: Brandon Williams
Assignee: Pavel Yaskevich
Priority: Minor
 Fix For: 0.7.3

 Attachments: CASSANDRA-2020.patch

   Original Estimate: 8h
  Remaining Estimate: 8h

 This is due to threads completing towards the end, such that there aren't 
 enough to fully stress the cluster.  The main problem here is that 
 stress.java is a straight port of stress.py, where each thread runs through 
 some range until it's done, and the threads finish at different times 
 (probably offset by jvm warmup time.)  Instead, a producer/consumer model 
 would work better.

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




[jira] Updated: (CASSANDRA-2231) Add CompositeType comparer to the comparers provided in org.apache.cassandra.db.marshal

2011-02-23 Thread Ed Anuff (JIRA)

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

Ed Anuff updated CASSANDRA-2231:


Attachment: edanuff-CassandraCompositeType-1e253c4.zip

https://github.com/edanuff/CassandraCompositeType

 Add CompositeType comparer to the comparers provided in 
 org.apache.cassandra.db.marshal
 ---

 Key: CASSANDRA-2231
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2231
 Project: Cassandra
  Issue Type: Improvement
  Components: Contrib
Affects Versions: 0.7.3
Reporter: Ed Anuff
Priority: Minor
 Attachments: edanuff-CassandraCompositeType-1e253c4.zip


 CompositeType is a custom comparer that makes it possible to create 
 comparable composite values out of the basic types that Cassandra currently 
 supports, such as Long, UUID, etc.  This is very useful in both the creation 
 of custom inverted indexes using columns in a skinny row, where each column 
 name is a composite value, and also when using Cassandra's built-in secondary 
 index support, where it can be used to encode the values in the columns that 
 Cassandra indexes.  One scenario for the usage of these is documented here: 
 http://www.anuff.com/2010/07/secondary-indexes-in-cassandra.html.  Source for 
 contribution is attached and has been previously maintained on github here: 
 https://github.com/edanuff/CassandraCompositeType

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




[jira] Updated: (CASSANDRA-2231) Add CompositeType comparer to the comparers provided in org.apache.cassandra.db.marshal

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-2231:
--

Reviewer: slebresne

 Add CompositeType comparer to the comparers provided in 
 org.apache.cassandra.db.marshal
 ---

 Key: CASSANDRA-2231
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2231
 Project: Cassandra
  Issue Type: Improvement
  Components: Contrib
Affects Versions: 0.7.3
Reporter: Ed Anuff
Priority: Minor
 Attachments: edanuff-CassandraCompositeType-1e253c4.zip


 CompositeType is a custom comparer that makes it possible to create 
 comparable composite values out of the basic types that Cassandra currently 
 supports, such as Long, UUID, etc.  This is very useful in both the creation 
 of custom inverted indexes using columns in a skinny row, where each column 
 name is a composite value, and also when using Cassandra's built-in secondary 
 index support, where it can be used to encode the values in the columns that 
 Cassandra indexes.  One scenario for the usage of these is documented here: 
 http://www.anuff.com/2010/07/secondary-indexes-in-cassandra.html.  Source for 
 contribution is attached and has been previously maintained on github here: 
 https://github.com/edanuff/CassandraCompositeType

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




[jira] Created: (CASSANDRA-2232) Clean up and document EstimatedHistogram

2011-02-23 Thread Jonathan Ellis (JIRA)
Clean up and document EstimatedHistogram


 Key: CASSANDRA-2232
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2232
 Project: Cassandra
  Issue Type: Improvement
Reporter: Jonathan Ellis
Assignee: Jonathan Ellis
Priority: Minor
 Fix For: 0.7.3


EstimatedHistogram treats adding value n as adding a value infinitesimally 
greater than n.  This barely made sense for the original goal of latency 
tracking but is clearly broken for inherently integral data like 
sstables-per-read.

Also, median() is broken, but even a non-broken median() would not be correct 
to use in mean row size reporting which is its only caller.

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




[jira] Updated: (CASSANDRA-2232) Clean up and document EstimatedHistogram

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-2232:
--

Attachment: 2232.txt

fixes problems and adds documentation

 Clean up and document EstimatedHistogram
 

 Key: CASSANDRA-2232
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2232
 Project: Cassandra
  Issue Type: Improvement
Reporter: Jonathan Ellis
Assignee: Jonathan Ellis
Priority: Minor
 Fix For: 0.7.3

 Attachments: 2232.txt


 EstimatedHistogram treats adding value n as adding a value infinitesimally 
 greater than n.  This barely made sense for the original goal of latency 
 tracking but is clearly broken for inherently integral data like 
 sstables-per-read.
 Also, median() is broken, but even a non-broken median() would not be correct 
 to use in mean row size reporting which is its only caller.

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




svn commit: r1073986 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/tools/SSTableImport.java

2011-02-23 Thread jbellis
Author: jbellis
Date: Wed Feb 23 23:28:02 2011
New Revision: 1073986

URL: http://svn.apache.org/viewvc?rev=1073986view=rev
Log:
turnoff string interning in json2sstable
patch by jbellis for CASSANDRA-2189

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

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/SSTableImport.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1073986r1=1073985r2=1073986view=diff
==
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Wed Feb 23 23:28:02 2011
@@ -25,6 +25,7 @@
modification operations (CASSANDRA-)
  * fix for reversed slice queries on large rows (CASSANDRA-2212)
  * fat clients were writing local data (CASSANDRA-2223)
+ * turn off string interning in json2sstable (CASSANDRA-2189)
 
 
 0.7.2

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/SSTableImport.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/SSTableImport.java?rev=1073986r1=1073985r2=1073986view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/SSTableImport.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/tools/SSTableImport.java
 Wed Feb 23 23:28:02 2011
@@ -360,7 +360,7 @@ public class SSTableImport
  */
 private static JsonParser getParser(String fileName) throws IOException
 {
-return factory.createJsonParser(new File(fileName));
+return factory.createJsonParser(new 
File(fileName)).configure(JsonParser.Feature.INTERN_FIELD_NAMES, false);
 }
 
 /**




[jira] Commented: (CASSANDRA-2008) CLI help incorrect in places

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2008:
---

How is this coming?

 CLI help incorrect in places
 

 Key: CASSANDRA-2008
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2008
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Affects Versions: 0.7.0
Reporter: Aaron Morton
Assignee: Aaron Morton
Priority: Trivial
 Fix For: 0.7.3


 Found some errors in the CLI help, such as these for create column family.
 - memtable_operations: Flush memtables after this many operations
 - memtable_throughput: ... or after this many bytes have been written
 - memtable_flush_after: ... or after this many seconds
 Should be millions of ops, MB's written and minutes not seconds.  Have 
 confirmed thats how the values are used. Will check all the help. 

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




[jira] Updated: (CASSANDRA-2206) Startup fails due to cassandra trying to delete nonexisting file

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-2206:
--

Attachment: 2206-v2.txt

v2 also fixes a bug where tmp and non-tmp Descriptors were considered equal, 
which is what confused the file scanning for scrub in your example

 Startup fails due to cassandra trying to delete nonexisting file
 

 Key: CASSANDRA-2206
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2206
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
 Environment: linux
Reporter: Thibaut
Assignee: Jonathan Ellis
 Fix For: 0.7.3

 Attachments: 2206-v2.txt, 2206.txt

   Original Estimate: 1h
  Remaining Estimate: 1h

 Hi,
 On one of our nodes, startup fails due to cassandra trying to delete a 
 nonexistant Data file (see below).
 Why that file is missing is another mistery... The log file entries don't 
 show any ERROR messages before cassandra restarted (for reasons I don't know) 
 and this error occured.
 Directory listing:
 total 109M
 -rw-r--r-- 1 root root  51M 2011-02-21 05:25 table_task-f-1666-Data.db
 -rw-r--r-- 1 root root 243K 2011-02-21 05:25 table_task-f-1666-Filter.db
 -rw-r--r-- 1 root root 6.1M 2011-02-21 05:25 table_task-f-1666-Index.db
 -rw-r--r-- 1 root root 4.2K 2011-02-21 05:25 table_task-f-1666-Statistics.db
 -rw-r--r-- 1 root root 9.8M 2011-02-21 11:36 table_task-f-1703-Data.db
 -rw-r--r-- 1 root root  57K 2011-02-21 11:36 table_task-f-1703-Filter.db
 -rw-r--r-- 1 root root 1.3M 2011-02-21 11:36 table_task-f-1703-Index.db
 -rw-r--r-- 1 root root 4.2K 2011-02-21 11:36 table_task-f-1703-Statistics.db
 -rw-r--r-- 1 root root 292K 2011-02-21 11:42 table_task-f-1704-Data.db
 -rw-r--r-- 1 root root 1.7K 2011-02-21 11:42 table_task-f-1704-Filter.db
 -rw-r--r-- 1 root root  42K 2011-02-21 11:42 table_task-f-1704-Index.db
 -rw-r--r-- 1 root root 4.2K 2011-02-21 11:42 table_task-f-1704-Statistics.db
 -rw-r--r-- 1 root root 364K 2011-02-21 11:52 table_task-f-1705-Data.db
 -rw-r--r-- 1 root root 2.0K 2011-02-21 11:52 table_task-f-1705-Filter.db
 -rw-r--r-- 1 root root  50K 2011-02-21 11:52 table_task-f-1705-Index.db
 -rw-r--r-- 1 root root 4.2K 2011-02-21 11:52 table_task-f-1705-Statistics.db
 -rw-r--r-- 1 root root 535K 2011-02-21 12:10 table_task-f-1706-Data.db
 -rw-r--r-- 1 root root 2.8K 2011-02-21 12:10 table_task-f-1706-Filter.db
 -rw-r--r-- 1 root root  70K 2011-02-21 12:10 table_task-f-1706-Index.db
 -rw-r--r-- 1 root root 4.2K 2011-02-21 12:10 table_task-f-1706-Statistics.db
 -rw-r--r-- 1 root root  11M 2011-02-21 12:11 table_task-f-1707-Data.db
 -rw-r--r-- 1 root root  18M 2011-02-21 09:47 table_task_meta-f-417-Data.db
 -rw-r--r-- 1 root root 271K 2011-02-21 09:47 table_task_meta-f-417-Filter.db
 -rw-r--r-- 1 root root 6.7M 2011-02-21 09:47 table_task_meta-f-417-Index.db
 -rw-r--r-- 1 root root 4.2K 2011-02-21 09:47 
 table_task_meta-f-417-Statistics.db
 -rw-r--r-- 1 root root 1.2M 2011-02-21 10:47 table_task_meta-f-418-Data.db
 -rw-r--r-- 1 root root  18K 2011-02-21 10:47 table_task_meta-f-418-Filter.db
 -rw-r--r-- 1 root root 460K 2011-02-21 10:47 table_task_meta-f-418-Index.db
 -rw-r--r-- 1 root root 4.2K 2011-02-21 10:47 
 table_task_meta-f-418-Statistics.db
 -rw-r--r-- 1 root root 791K 2011-02-21 11:47 table_task_meta-f-419-Data.db
 -rw-r--r-- 1 root root  13K 2011-02-21 11:47 table_task_meta-f-419-Filter.db
 -rw-r--r-- 1 root root 311K 2011-02-21 11:47 table_task_meta-f-419-Index.db
 -rw-r--r-- 1 root root 4.2K 2011-02-21 11:47 
 table_task_meta-f-419-Statistics.db
 -rw-r--r-- 1 root root  57K 2011-02-21 12:11 table_task-tmp-f-1707-Filter.db
 -rw-r--r-- 1 root root 1.4M 2011-02-21 12:11 table_task-tmp-f-1707-Index.db
 -rw-r--r-- 1 root root 4.2K 2011-02-21 12:11 
 table_task-tmp-f-1707-Statistics.db
 Cassandra log:
 /software/cassandra/bin/cassandra
 rm: cannot remove `/software/cassandra/lib/jna.jar': No such file or directory
 root@intr1n3:/cassandra/data/table_task#  INFO 12:47:29,020 Logging 
 initialized
  INFO 12:47:29,030 Heap size: 2614493184/2614493184
  INFO 12:47:29,031 JNA not found. Native methods will be disabled.
  INFO 12:47:29,038 Loading settings from 
 file:/software/cassandra/conf/cassandra.yaml
  INFO 12:47:29,320 DiskAccessMode is standard, indexAccessMode is mmap
  INFO 12:47:29,332 Creating new commitlog segment 
 /hd1/cassandra_md5/commitlog/CommitLog-1298288849332.log
  INFO 12:47:29,422 Opening /cassandra/data/system/Schema-f-244
  INFO 12:47:29,434 Opening /cassandra/data/system/Migrations-f-244
  INFO 12:47:29,437 Opening /cassandra/data/system/LocationInfo-f-137
  INFO 12:47:29,440 Opening /cassandra/data/system/HintsColumnFamily-f-352
  INFO 12:47:29,441 Opening /cassandra/data/system/HintsColumnFamily-f-353
  INFO 

[jira] Commented: (CASSANDRA-2189) json2sstable fails due to OutOfMemory

2011-02-23 Thread Hudson (JIRA)

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

Hudson commented on CASSANDRA-2189:
---

Integrated in Cassandra-0.7 #313 (See 
[https://hudson.apache.org/hudson/job/Cassandra-0.7/313/])
turnoff string interning in json2sstable
patch by jbellis for CASSANDRA-2189


 json2sstable fails due to OutOfMemory
 -

 Key: CASSANDRA-2189
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2189
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Affects Versions: 0.7.0
 Environment: linux
Reporter: Shotaro Kamio
Assignee: Jonathan Ellis
Priority: Minor
 Fix For: 0.7.3

 Attachments: 2189.txt

   Original Estimate: 1h
  Remaining Estimate: 1h

 I have a json file created with sstable2json for a column family of super 
 column type. Its size is about 1.9GB. (It's a dump of all keys because I 
 cannot find out how to specify keys to dump in sstable2json.)
 When I tried to create sstable from the json file, it failed with 
 OutOfMemoryError as follows.
  WARN 00:31:58,595 Schema definitions were defined both locally and in 
 cassandra.yaml. Definitions in cassandra.yaml were ignored.
 Exception in thread main java.lang.OutOfMemoryError: PermGen space
 at java.lang.String.intern(Native Method)
 at org.codehaus.jackson.util.InternCache.intern(InternCache.java:40)
 at 
 org.codehaus.jackson.sym.BytesToNameCanonicalizer.addName(BytesToNameCanonicalizer.java:471)
 at 
 org.codehaus.jackson.impl.Utf8StreamParser.addName(Utf8StreamParser.java:893)
 at 
 org.codehaus.jackson.impl.Utf8StreamParser.findName(Utf8StreamParser.java:773)
 at 
 org.codehaus.jackson.impl.Utf8StreamParser.parseLongFieldName(Utf8StreamParser.java:379)
 at 
 org.codehaus.jackson.impl.Utf8StreamParser.parseMediumFieldName(Utf8StreamParser.java:347)
 at 
 org.codehaus.jackson.impl.Utf8StreamParser._parseFieldName(Utf8StreamParser.java:304)
 at 
 org.codehaus.jackson.impl.Utf8StreamParser.nextToken(Utf8StreamParser.java:140)
 at 
 org.codehaus.jackson.map.deser.UntypedObjectDeserializer.mapObject(UntypedObjectDeserializer.java:93)
 at 
 org.codehaus.jackson.map.deser.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:65)
 at 
 org.codehaus.jackson.map.deser.MapDeserializer._readAndBind(MapDeserializer.java:197)
 at 
 org.codehaus.jackson.map.deser.MapDeserializer.deserialize(MapDeserializer.java:145)
 at 
 org.codehaus.jackson.map.deser.MapDeserializer.deserialize(MapDeserializer.java:23)
 at 
 org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:1261)
 at 
 org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:517)
 at org.codehaus.jackson.JsonParser.readValueAs(JsonParser.java:897)
 at 
 org.apache.cassandra.tools.SSTableImport.importUnsorted(SSTableImport.java:208)
 at 
 org.apache.cassandra.tools.SSTableImport.importJson(SSTableImport.java:197)
 at 
 org.apache.cassandra.tools.SSTableImport.main(SSTableImport.java:421)
 So, what I had to is that split the json file with split command and modify 
 them to be correct json file. Create sstable for each small json files.
 Could you change json2sstable to avoid OutOfMemory?

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




[Cassandra Wiki] Update of DebianPackaging by DavidStrauss

2011-02-23 Thread Apache Wiki
Dear Wiki user,

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

The DebianPackaging page has been changed by DavidStrauss.
http://wiki.apache.org/cassandra/DebianPackaging?action=diffrev1=16rev2=17

--

  == Official Debian Package ==
+ 
+ Before installing, you will need a compatible JVM. If you're on a Debian or 
Ubuntu system, install OpenJDK:
+ {{{
+ sudo apt-get install default-jdk
+ }}}
  
  To install on Debian or Debian derivatives, use the following sources:
  


[Cassandra Wiki] Update of DebianPackaging by DavidStrauss

2011-02-23 Thread Apache Wiki
Dear Wiki user,

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

The DebianPackaging page has been changed by DavidStrauss.
http://wiki.apache.org/cassandra/DebianPackaging?action=diffrev1=17rev2=18

--

  == Official Debian Package ==
  
- Before installing, you will need a compatible JVM. If you're on a Debian or 
Ubuntu system, install OpenJDK:
+ To run Cassandra, you will need a compatible JVM. If you're on a Debian or 
Ubuntu system, you should probably install OpenJDK:
  {{{
  sudo apt-get install default-jdk
  }}}


[Cassandra Wiki] Update of DebianPackaging by DavidStrauss

2011-02-23 Thread Apache Wiki
Dear Wiki user,

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

The DebianPackaging page has been changed by DavidStrauss.
The comment on this change is: Correct spelling, drop instructions to install 
default-jdk because the Cassandra package should handle that..
http://wiki.apache.org/cassandra/DebianPackaging?action=diffrev1=18rev2=19

--

  == Official Debian Package ==
- 
- To run Cassandra, you will need a compatible JVM. If you're on a Debian or 
Ubuntu system, you should probably install OpenJDK:
- {{{
- sudo apt-get install default-jdk
- }}}
  
  To install on Debian or Debian derivatives, use the following sources:
  
@@ -65, +60 @@

  Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)
  }}}
  
- By default, installing the Casasndra Debian package or its build dependencies 
will pull in OpenJDK.  For runtime purposes this will work fine, but due to an 
issue with the packaging of OpenJDK in Lenny (see 
http://bugs.debian.org/501487), building the package from source will fail.  If 
you need to (re)build the package on Lenny, install `sun-java6-jdk` before-hand 
(`sun-java6-jdk` provides `java6-sdk` which satisfies the dependency), or use 
the alternatives system to change the default compiler afterward.
+ By default, installing the Cassandra Debian package or its build dependencies 
will pull in OpenJDK.  For runtime purposes this will work fine, but due to an 
issue with the packaging of OpenJDK in Lenny (see 
http://bugs.debian.org/501487), building the package from source will fail.  If 
you need to (re)build the package on Lenny, install `sun-java6-jdk` before-hand 
(`sun-java6-jdk` provides `java6-sdk` which satisfies the dependency), or use 
the alternatives system to change the default compiler afterward.
  
  {{{
  sudo update-alternatives --config javac


[jira] Commented: (CASSANDRA-2100) Restart required to change cache_save_period

2011-02-23 Thread Jon Hermes (JIRA)

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

Jon Hermes commented on CASSANDRA-2100:
---

I thought that UpdateColumnFamily.applyModels() called CFS.reload() in all 
cases, but that only happens when the server is not in client mode.

CFMetaData.apply(avro CfDef) will need to call the update logic. Patch 
forthcoming.

 Restart required to change cache_save_period
 

 Key: CASSANDRA-2100
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2100
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.0
Reporter: Nick Bailey
Assignee: Jon Hermes
Priority: Minor
 Fix For: 0.7.3

 Attachments: 2100-2.txt, 2100.txt

   Original Estimate: 2h
  Remaining Estimate: 2h

 The cache_save_period is set in the schema for each column family.  However 
 this value is only checked when a node starts up so changing this value isn't 
 really dynamic.
 We should actually change this when the schema changes instead of having to 
 restart.

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




[jira] Updated: (CASSANDRA-2025) generalized way of expressing hierarchical values

2011-02-23 Thread Eric Evans (JIRA)

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

Eric Evans updated CASSANDRA-2025:
--

Attachment: 
v1-0001-CASSANDRA-2025-updated-consistency-level-spec-removed.txt

 generalized way of expressing hierarchical values
 -

 Key: CASSANDRA-2025
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2025
 Project: Cassandra
  Issue Type: Sub-task
  Components: API
Reporter: Eric Evans
Assignee: Eric Evans
Priority: Minor
  Labels: cql
 Fix For: 0.8

 Attachments: 
 v1-0001-CASSANDRA-2025-updated-consistency-level-spec-removed.txt

   Original Estimate: 0h
  Remaining Estimate: 0h

 While hashing out {{CREATE KEYSPACE}}, it became obvious that we needed a 
 syntax for expressing hierarchical values.  Properties like 
 {{replication_factor}} can be expressed simply using keyword arguments like 
 ({{replication_factor = 3}}), but {{strategy_options}} is a map of strings.
 The solution I took in CASSANDRA-1709 was to dot-delimit map name and 
 option key, so for example:
 {code:style=SQL}
 CREATE KEYSPACE keyspace WITH ... AND strategy_options.DC1 = 1 ...
 {code}
 This led me to wonder if this was a general enough approach for any future 
 cases that might come up.  One example might be compound/composite column 
 names.  Dot-delimiting is a bad choice here since it rules out ever 
 introducing a float literal.
 One suggestion would be to colon-delimit, so for example:
 {code:style=SQL}
 CREATE KEYSPACE keyspace WITH ... AND strategy_options:DC1 = 1 ...
 {code}
 Or in the case of composite column names:
 {code:style=SQL}
 SELECT columnA:columnB,column1:column2 FROM Standard2 USING 
 CONSISTENCY.QUORUM WHERE KEY = key;
 UPDATE Standard2 SET columnA:columnB = valueC, column1:column2 = value3 WHERE 
 KEY = key;
 {code}
 As an aside, this also led me to the conclusion that {{CONSISTENCY.LEVEL}} 
 is probably a bad choice for consistency level specification.  It mirrors the 
 underlying enum for no good reason and should probably be changed to 
 {{CONSISTENCY LEVEL}} (i.e. omitting the separator).  For example:
 {code:style=SQL}
 SELECT column FROM Standard2 USING CONSISTENCY QUORUM WHERE KEY = key;
 {code}
 Thoughts?
 *Edit: improved final example*
 *Edit: restore final example, create new one (gah).*

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




[Cassandra Wiki] Update of CassandraCli by jeremyhanna

2011-02-23 Thread Apache Wiki
Dear Wiki user,

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

The CassandraCli page has been changed by jeremyhanna.
The comment on this change is: Added some more example information..
http://wiki.apache.org/cassandra/CassandraCli?action=diffrev1=27rev2=28

--

  Type 'help;' or '?' for help. Type 'quit;' or 'exit;' to quit.
  [default@unknown] connect localhost/9160;
  Connected to: Test Cluster on localhost/9160
- [default@unknown] create keyspace Keyspace1;
+ [default@unknown] create keyspace Twissandra;
  d105c4f1-3c93-11e0-9fb5-e700f669bcfc
- [default@unknown] use Keyspace1;
+ [default@unknown] use Twissandra;
- Authenticated to keyspace: Keyspace1
+ Authenticated to keyspace: Twissandra
- [default@Keyspace1] create column family Standard2;
+ [default@Twissandra] create column family User with comparator = UTF8Type;
  00389812-3c94-11e0-9fb5-e700f669bcfc
- [default@Keyspace1] quit;
+ [default@Twissandra] quit;
  evans@achilles:~/cassandra$
  }}}
- In the above example we started the cli with no options. You can specify 
things like `-host`, `-port`, `-keyspace`, `-username`, `-password`, etc. Use 
`bin/cassandra-cli -?` for a full set of options.  We went on to connect to our 
local Cassandra node. We created keyspace `Keyspace1` and column family 
`Standard2` with the default options. Then we exited from our cli shell.
+ In the above example we started the cli with no options. You can specify 
things like `-host`, `-port`, `-keyspace`, `-username`, `-password`, etc. Use 
`bin/cassandra-cli -?` for a full set of options.
+ 
+ We went on to connect to our local Cassandra node. We created keyspace 
`Twissandra` and column family `User` with the default options. Note that with 
the column family, we used a UTF8Type comparator.  That means that the columns 
will be sorted based on UTF8Type sorting.  It also means that when the column 
names are displayed on the command-line, they will be displayed as UTF8Type 
(readable) text. For more information and options for creating column families 
type `help create column family;` on the command line. Finally, we exited from 
our cli shell.
  
  Let's get back into the shell with some options specified and create some 
data.
  
@@ -30, +32 @@

  Welcome to cassandra CLI.
  
  Type 'help;' or '?' for help. Type 'quit;' or 'exit;' to quit.
- [default@unknown] use Keyspace1;
+ [default@unknown] use Twissandra;
- Authenticated to keyspace: Keyspace1
+ Authenticated to keyspace: Twissandra
- [default@Keyspace1] set Standard2['jsmith']['first'] = 'John';
+ [default@Twissandra] set User['jsmith']['first'] = 'John';
  Value inserted.
- [default@Keyspace1] set Standard2['jsmith']['last'] = 'Smith';
+ [default@Twissandra] set User['jsmith']['last'] = 'Smith';
  Value inserted.
- [default@Keyspace1] set Standard2['jsmith']['age'] = '42';
+ [default@Twissandra] set User['jsmith']['age'] = '39';
  Value inserted.
  }}}
- Note that before we can start adding data, we have to `use Keyspace1` to set 
our context. We created a record in the `Standard2` column family using the key 
`jsmith`. This record has three columns, `first`, `last`, and `age`. Each of 
these commands is the equivalent to an `insert()` using the [[API|Thrift API]].
+ Note that before we can start adding data, we have to `use Twissandra` to set 
our context. We created a record in the `User` column family using the key 
`jsmith`. This record has three columns, `first`, `last`, and `age`. Each of 
these commands is the equivalent to an `insert()` using the [[API|Thrift API]].
  
  Now let's read back the `jsmith` row to see what it contains:
  
  {{{
- [default@Keyspace1] get Standard2['jsmith'];
- = (column=616765, value=3432, timestamp=1298168118014000)
+ [default@Twissandra] get User['jsmith'];
+ = (column=age, value=3339, timestamp=1298504259386000)
- = (column=6669727374, value=4a6f686e, timestamp=1298166059047000)
+ = (column=first, value=4a6f686e, timestamp=1298504239938000)
- = (column=6c617374, value=536d697468, timestamp=1298168112533000)
+ = (column=last, value=536d697468, timestamp=129850424857)
  Returned 3 results.
  }}}
  Note: Using the `get` command in this form is the equivalent to a 
`get_slice()` using the [[API|Thrift API]].
+ Why are the values all hex? It's because the default validation class is 
BytesType, which displays in hex in the output. Let's update the column 
metadata of the column family to not only make them output in a readable 
format, but also add a secondary index on age. We'll also add another record so 
that we can see the secondary index work.
  
+ {{{
+ [default@Twissandra] update column family User with   
 
+ ...   column_metadata = 
+ ...   [
+ ...   {column_name: first, validation_class: UTF8Type},
+ ...   {column_name: last, validation_class: UTF8Type},
+ ...   {column_name: 

[jira] Updated: (CASSANDRA-2100) Restart required to change cache_save_period

2011-02-23 Thread Jon Hermes (JIRA)

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

Jon Hermes updated CASSANDRA-2100:
--

Attachment: 2100-3.txt

Slight surprise in testing due to 2172 changes, but tests correctly (save 
period is updated at runtime for both JMX and schema migrations (both client 
and non-client mode)).

 Restart required to change cache_save_period
 

 Key: CASSANDRA-2100
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2100
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.0
Reporter: Nick Bailey
Assignee: Jon Hermes
Priority: Minor
 Fix For: 0.7.3

 Attachments: 2100-2.txt, 2100-3.txt, 2100.txt

   Original Estimate: 2h
  Remaining Estimate: 2h

 The cache_save_period is set in the schema for each column family.  However 
 this value is only checked when a node starts up so changing this value isn't 
 really dynamic.
 We should actually change this when the schema changes instead of having to 
 restart.

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




[jira] Commented: (CASSANDRA-2025) generalized way of expressing hierarchical values

2011-02-23 Thread Eric Evans (JIRA)

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

Eric Evans commented on CASSANDRA-2025:
---

Patch attached to remove the '.' from consistency level specifications.

 generalized way of expressing hierarchical values
 -

 Key: CASSANDRA-2025
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2025
 Project: Cassandra
  Issue Type: Sub-task
  Components: API
Reporter: Eric Evans
Assignee: Eric Evans
Priority: Minor
  Labels: cql
 Fix For: 0.8

 Attachments: 
 v1-0001-CASSANDRA-2025-updated-consistency-level-spec-removed.txt

   Original Estimate: 0h
  Remaining Estimate: 0h

 While hashing out {{CREATE KEYSPACE}}, it became obvious that we needed a 
 syntax for expressing hierarchical values.  Properties like 
 {{replication_factor}} can be expressed simply using keyword arguments like 
 ({{replication_factor = 3}}), but {{strategy_options}} is a map of strings.
 The solution I took in CASSANDRA-1709 was to dot-delimit map name and 
 option key, so for example:
 {code:style=SQL}
 CREATE KEYSPACE keyspace WITH ... AND strategy_options.DC1 = 1 ...
 {code}
 This led me to wonder if this was a general enough approach for any future 
 cases that might come up.  One example might be compound/composite column 
 names.  Dot-delimiting is a bad choice here since it rules out ever 
 introducing a float literal.
 One suggestion would be to colon-delimit, so for example:
 {code:style=SQL}
 CREATE KEYSPACE keyspace WITH ... AND strategy_options:DC1 = 1 ...
 {code}
 Or in the case of composite column names:
 {code:style=SQL}
 SELECT columnA:columnB,column1:column2 FROM Standard2 USING 
 CONSISTENCY.QUORUM WHERE KEY = key;
 UPDATE Standard2 SET columnA:columnB = valueC, column1:column2 = value3 WHERE 
 KEY = key;
 {code}
 As an aside, this also led me to the conclusion that {{CONSISTENCY.LEVEL}} 
 is probably a bad choice for consistency level specification.  It mirrors the 
 underlying enum for no good reason and should probably be changed to 
 {{CONSISTENCY LEVEL}} (i.e. omitting the separator).  For example:
 {code:style=SQL}
 SELECT column FROM Standard2 USING CONSISTENCY QUORUM WHERE KEY = key;
 {code}
 Thoughts?
 *Edit: improved final example*
 *Edit: restore final example, create new one (gah).*

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




[Cassandra Wiki] Trivial Update of CassandraCli by jeremyhanna

2011-02-23 Thread Apache Wiki
Dear Wiki user,

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

The CassandraCli page has been changed by jeremyhanna.
http://wiki.apache.org/cassandra/CassandraCli?action=diffrev1=28rev2=29

--

  Returned 3 results.
  }}}
  Note: Using the `get` command in this form is the equivalent to a 
`get_slice()` using the [[API|Thrift API]].
+ 
  Why are the values all hex? It's because the default validation class is 
BytesType, which displays in hex in the output. Let's update the column 
metadata of the column family to not only make them output in a readable 
format, but also add a secondary index on age. We'll also add another record so 
that we can see the secondary index work.
  
  {{{


[Cassandra Wiki] Trivial Update of CassandraCli by jeremyhanna

2011-02-23 Thread Apache Wiki
Dear Wiki user,

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

The CassandraCli page has been changed by jeremyhanna.
http://wiki.apache.org/cassandra/CassandraCli?action=diffrev1=29rev2=30

--

  }}}
  Note: Using the `get` command in this form is the equivalent to a 
`get_slice()` using the [[API|Thrift API]].
  
- Why are the values all hex? It's because the default validation class is 
BytesType, which displays in hex in the output. Let's update the column 
metadata of the column family to not only make them output in a readable 
format, but also add a secondary index on age. We'll also add another record so 
that we can see the secondary index work.
+ Why are the values all hex? It's because the default validation class is 
!BytesType, which displays in hex in the output. Let's update the column 
metadata of the column family to not only make them output in a readable 
format, but also add a secondary index on age. We'll also add another record so 
that we can see the secondary index work.
  
  {{{
  [default@Twissandra] update column family User with   
 


[Cassandra Wiki] Update of CassandraCli by jeremyhanna

2011-02-23 Thread Apache Wiki
Dear Wiki user,

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

The CassandraCli page has been changed by jeremyhanna.
The comment on this change is: Added an example with scripting schema creation..
http://wiki.apache.org/cassandra/CassandraCli?action=diffrev1=30rev2=31

--

  }}}
  In the above example, you can see that we can span commands over multiple 
lines. We add column metadata that validates the column data as well as display 
value unencoded in the cli output. We also add an index on age. We add one more 
row with an age of '42' and finally query the column family for rows that with 
an age of 42.
  
+ One final thing that is very handy about the cassandra-cli, you can script 
your schema creation in a file and run it through the cli. You just create a 
text file with any number of creation commands and run the cli with the `-f` 
option:
+ 
+ {{{
+ tblose@quasar:~/dev/workspaces/cassandra$ bin/cassandra-cli -host localhost 
-port 9160 -f ~/cassandra-schema.txt
+ Connected to: Test Cluster on localhost/9160
+ 1eafa8f4-3faf-11e0-a627-e700f669bcfc
+ Authenticated to keyspace: Twissandra
+ 1f09fdf5-3faf-11e0-a627-e700f669bcfc
+ }}}
+ 
+ with `cassandra-schema.txt`:
+ 
+ {{{
+ create keyspace Twissandra;
+ use Twissandra;
+ 
+ create column family User with
+   comparator = UTF8Type and
+   column_metadata =
+   [
+ {column_name: first, validation_class: UTF8Type},
+ {column_name: last, validation_class: UTF8Type},
+ {column_name: age, validation_class: UTF8Type, index_type: KEYS}
+   ];
+ }}}
+ 
  This has just been a brief introduction with a couple of examples. For more 
information on how things work, type `help;` on the cli by itself or with any 
of the commands you're interested in.
  


[jira] Commented: (CASSANDRA-2008) CLI help incorrect in places

2011-02-23 Thread Jon Hermes (JIRA)

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

Jon Hermes commented on CASSANDRA-2008:
---

bq. I am not a fan either of the cli somehow extracting yaml comments
Not what I was suggesting, but Aaron nailed it with the `commands: {name,help}` 
blocks.

Hadn't seen #2007 yet, but that looks very good. Separating node.yaml and 
schema.yaml is good, but separating and throwing away schema.yaml (for a script 
solution) is even better.

I would rename `o.a.c.cli.CliHelp.yaml` to something more generic and move it 
out of cli(conf/config_help.yaml). The cli can read it from there, it's an 
intuitive place to find it for a new user, and it can be mirrored onto the wiki 
and anywhere else it's referenced. 

If there were a way to couple it with or generate it from 
interface/cassandra.thrift:{Ks,Cf}Def, o.a.c.config.Raw{Keyspace,ColumnFamily} 
and o.a.c.config.{KS,CF}MetaData, it would be even better-er. Currently all 
three are kept in sync by force of will which has introduced multiple bugs 
already. (Note: this is not in the scope of this ticket, but would be worth 
keeping in mind.)

 CLI help incorrect in places
 

 Key: CASSANDRA-2008
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2008
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Affects Versions: 0.7.0
Reporter: Aaron Morton
Assignee: Aaron Morton
Priority: Trivial
 Fix For: 0.7.3


 Found some errors in the CLI help, such as these for create column family.
 - memtable_operations: Flush memtables after this many operations
 - memtable_throughput: ... or after this many bytes have been written
 - memtable_flush_after: ... or after this many seconds
 Should be millions of ops, MB's written and minutes not seconds.  Have 
 confirmed thats how the values are used. Will check all the help. 

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




[Cassandra Wiki] Trivial Update of CassandraCli by jeremyhanna

2011-02-23 Thread Apache Wiki
Dear Wiki user,

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

The CassandraCli page has been changed by jeremyhanna.
http://wiki.apache.org/cassandra/CassandraCli?action=diffrev1=32rev2=33

--

  [default@Twissandra] set User['jsmith']['age'] = '39';
  Value inserted.
  }}}
- Note that before we can start adding data, we have to `use Twissandra` to set 
our context. We created a record in the `User` column family using the key 
`jsmith`. This record has three columns, `first`, `last`, and `age`. Each of 
these commands is the equivalent to an `insert()` using the [[API|Thrift API]].
+ Note that before we can start adding data, we have to `use Twissandra;` to 
set our context. We created a record in the `User` column family using the key 
`jsmith`. This record has three columns, `first`, `last`, and `age`. Each of 
these commands is the equivalent to an `insert()` using the [[API|Thrift API]].
  
  Now let's read back the `jsmith` row to see what it contains:
  


[Cassandra Wiki] Trivial Update of CassandraCli by jeremyhanna

2011-02-23 Thread Apache Wiki
Dear Wiki user,

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

The CassandraCli page has been changed by jeremyhanna.
http://wiki.apache.org/cassandra/CassandraCli?action=diffrev1=33rev2=34

--

  
  1 Row Returned.
  }}}
- In the above example, you can see that we can span commands over multiple 
lines. We add column metadata that validates the column data as well as display 
value unencoded in the cli output. We also add an index on age. We add one more 
row with an age of '42' and finally query the column family for rows that with 
an age of 42.
+ In the above example, you can see that we can span commands over multiple 
lines. We add column metadata that validates the column data as well as display 
value unencoded in the cli output. We also add an index on age. The `KEYS` 
index type means that we can only perform equality operations over it. We add 
one more row with an age of '42' and finally query the column family for rows 
with an age of 42.
  
  One final thing that is very handy about the cassandra-cli, you can script 
your schema creation in a file and run it through the cli. You just create a 
text file with any number of creation commands and run the cli with the `-f` 
option:
  


[jira] Commented: (CASSANDRA-2176) Add configuration setting to cap the number of Thrift connections

2011-02-23 Thread T Jake Luciani (JIRA)

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

T Jake Luciani commented on CASSANDRA-2176:
---

bq. What's going on w/ the diff to CustomTPS, is that your IDE going crazy w/ 
whitespace changes?

The current file is totally unformatted.  The core of the changes is in the 
serve() where it makes sure activeClient counts is = max.  The activeClients 
is decremented when a client hangs up see WorkerProcess.run


bq. is there any reason not to make these cassandra.conf options instead of -D 
flags?

No, I just figures most people don't care, would you like me to add this there?


 Add configuration setting to cap the number of Thrift connections
 -

 Key: CASSANDRA-2176
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2176
 Project: Cassandra
  Issue Type: Improvement
  Components: API
Reporter: Jonathan Ellis
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.7.3

 Attachments: 0001-CASSANDRA-2176-limit-number-of-connected-clients.txt

   Original Estimate: 4h
  Remaining Estimate: 4h

 At least until CASSANDRA-1405 is done, it's useful to have a connection cap 
 to prevent misbehaving clients from DOSing the server.

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




svn commit: r1074010 - /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java

2011-02-23 Thread jbellis
Author: jbellis
Date: Thu Feb 24 01:41:29 2011
New Revision: 1074010

URL: http://svn.apache.org/viewvc?rev=1074010view=rev
Log:
reformat

Modified:

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java?rev=1074010r1=1074009r2=1074010view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java
 Thu Feb 24 01:41:29 2011
@@ -39,151 +39,180 @@ import org.apache.thrift.transport.TTran
 
 /**
  * Slightly modified version of the Apache Thrift TThreadPoolServer.
- *
+ * p/
  * This allows passing an executor so you have more control over the actual
  * behaviour of the tasks being run.
- *
+ * p/
  * Newer version of Thrift should make this obsolete.
  */
-public class CustomTThreadPoolServer extends TServer {
+public class CustomTThreadPoolServer extends TServer
+{
 
-private static final Logger LOGGER = 
LoggerFactory.getLogger(CustomTThreadPoolServer.class.getName());
+private static final Logger LOGGER = 
LoggerFactory.getLogger(CustomTThreadPoolServer.class.getName());
 
-// Executor service for handling client connections
-private ExecutorService executorService_;
+// Executor service for handling client connections
+private ExecutorService executorService_;
 
-// Flag for stopping the server
-private volatile boolean stopped_;
-
-// Server options
-private Options options_;
-
-// Customizable server options
-public static class Options {
-   public int minWorkerThreads = 5;
-   public int maxWorkerThreads = Integer.MAX_VALUE;
-   public int stopTimeoutVal = 60;
-   public TimeUnit stopTimeoutUnit = TimeUnit.SECONDS;
-}
-
-
-public CustomTThreadPoolServer(TProcessorFactory tProcessorFactory,
-TServerSocket tServerSocket,
-TTransportFactory inTransportFactory,
-TTransportFactory outTransportFactory,
-TProtocolFactory tProtocolFactory,
-TProtocolFactory tProtocolFactory2,
-Options options,
-ExecutorService executorService) {
-
-super(tProcessorFactory, tServerSocket, inTransportFactory, 
outTransportFactory,
-tProtocolFactory, tProtocolFactory2);
-options_ = options;
-executorService_ = executorService;
-}
-
-
-public void serve() {
-   try {
-   serverTransport_.listen();
-   } catch (TTransportException ttx) {
-   LOGGER.error(Error occurred during listening., ttx);
-   return;
-   }
-
-   stopped_ = false;
-   while (!stopped_) {
-   int failureCount = 0;
-   try {
-   TTransport client = serverTransport_.accept();
-   WorkerProcess wp = new WorkerProcess(client);
-   executorService_.execute(wp);
-   } catch (TTransportException ttx) {
-   if (!stopped_) {
-   ++failureCount;
-   LOGGER.warn(Transport error occurred during acceptance of 
message., ttx);
-   }
-   }
-   }
-
-   executorService_.shutdown();
-
-   // Loop until awaitTermination finally does return without a interrupted
-   // exception. If we don't do this, then we'll shut down prematurely. We 
want
-   // to let the executorService clear it's task queue, closing client 
sockets
-   // appropriately.
-   long timeoutMS = 
options_.stopTimeoutUnit.toMillis(options_.stopTimeoutVal);
-   long now = System.currentTimeMillis();
-   while (timeoutMS = 0) {
-   try {
-   executorService_.awaitTermination(timeoutMS, 
TimeUnit.MILLISECONDS);
-   break;
-   } catch (InterruptedException ix) {
-   long newnow = System.currentTimeMillis();
-   timeoutMS -= (newnow - now);
-   now = newnow;
-   }
-   }
-}
-
-public void stop() {
-   stopped_ = true;
-   serverTransport_.interrupt();
-}
-
-private class WorkerProcess implements Runnable {
-
-   /**
-* Client that this services.
-*/
-   private TTransport client_;
-
-   /**
-* Default constructor.
-*
-* @param client Transport to process
-*/
-   private WorkerProcess(TTransport client) {
-   client_ = client;
-   }
-
-   /**
-* Loops on processing a client forever
-*/
-   public void run() {
-   TProcessor processor = null;
-   TTransport inputTransport = null;
-   TTransport outputTransport = null;
-   TProtocol inputProtocol = null;
-   TProtocol outputProtocol = null;
-   try {
-   

[jira] Commented: (CASSANDRA-2176) Add configuration setting to cap the number of Thrift connections

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-2176:
---

bq. The current file is totally unformatted

Committed a reformat so we don't have to mix them together.

bq. would you like me to add this there?

Yes, let's do that.

 Add configuration setting to cap the number of Thrift connections
 -

 Key: CASSANDRA-2176
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2176
 Project: Cassandra
  Issue Type: Improvement
  Components: API
Reporter: Jonathan Ellis
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.7.3

 Attachments: 0001-CASSANDRA-2176-limit-number-of-connected-clients.txt

   Original Estimate: 4h
  Remaining Estimate: 4h

 At least until CASSANDRA-1405 is done, it's useful to have a connection cap 
 to prevent misbehaving clients from DOSing the server.

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




svn commit: r1074018 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/config/CFMetaData.java src/java/org/apache/cassandra/io/sstable/Descriptor.java src/java/org/apac

2011-02-23 Thread jbellis
Author: jbellis
Date: Thu Feb 24 02:17:16 2011
New Revision: 1074018

URL: http://svn.apache.org/viewvc?rev=1074018view=rev
Log:
DEFAULT_MEMTABLE_LIFETIME_IN_MINS to 24h

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

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

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1074018r1=1074017r2=1074018view=diff
==
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Thu Feb 24 02:17:16 2011
@@ -26,6 +26,7 @@
  * fix for reversed slice queries on large rows (CASSANDRA-2212)
  * fat clients were writing local data (CASSANDRA-2223)
  * turn off string interning in json2sstable (CASSANDRA-2189)
+ * set DEFAULT_MEMTABLE_LIFETIME_IN_MINS to 24h
 
 
 0.7.2

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/CFMetaData.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/CFMetaData.java?rev=1074018r1=1074017r2=1074018view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/CFMetaData.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/CFMetaData.java
 Thu Feb 24 02:17:16 2011
@@ -56,7 +56,7 @@ public final class CFMetaData
 public final static int DEFAULT_GC_GRACE_SECONDS = 864000;
 public final static int DEFAULT_MIN_COMPACTION_THRESHOLD = 4;
 public final static int DEFAULT_MAX_COMPACTION_THRESHOLD = 32;
-public final static int DEFAULT_MEMTABLE_LIFETIME_IN_MINS = 60;
+public final static int DEFAULT_MEMTABLE_LIFETIME_IN_MINS = 60 * 24;
 public final static int DEFAULT_MEMTABLE_THROUGHPUT_IN_MB = 
sizeMemtableThroughput();
 public final static double DEFAULT_MEMTABLE_OPERATIONS_IN_MILLIONS = 
sizeMemtableOperations(DEFAULT_MEMTABLE_THROUGHPUT_IN_MB);
 

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java?rev=1074018r1=1074017r2=1074018view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java
 Thu Feb 24 02:17:16 2011
@@ -199,7 +199,11 @@ public class Descriptor
 if (!(o instanceof Descriptor))
 return false;
 Descriptor that = (Descriptor)o;
-return that.directory.equals(this.directory)  that.generation == 
this.generation  that.ksname.equals(this.ksname)  
that.cfname.equals(this.cfname);
+return that.directory.equals(this.directory)
+that.generation == this.generation
+that.ksname.equals(this.ksname)
+that.cfname.equals(this.cfname)
+that.temporary == this.temporary;
 }
 
 @Override

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java?rev=1074018r1=1074017r2=1074018view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
 Thu Feb 24 02:17:16 2011
@@ -22,9 +22,12 @@ package org.apache.cassandra.io.sstable;
 import java.io.*;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
+import com.google.common.collect.Sets;
+
 import org.apache.cassandra.utils.ByteBufferUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -204,8 +207,10 @@ public class SSTableWriter extends SSTab
 Descriptor newdesc = tmpdesc.asTemporary(false);
 try
 {
-for (Component component : components)
+// do -Data last because -Data present should mean the sstable was 
completely renamed before crash
+for (Component component : Sets.difference(components, 
Collections.singleton(Component.DATA)))
 FBUtilities.renameWithConfirm(tmpdesc.filenameFor(component), 

svn commit: r1074019 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/config/CFMetaData.java

2011-02-23 Thread jbellis
Author: jbellis
Date: Thu Feb 24 02:18:34 2011
New Revision: 1074019

URL: http://svn.apache.org/viewvc?rev=1074019view=rev
Log:
revert unreviewed changes to SSTW/Descriptor

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

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

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1074019r1=1074018r2=1074019view=diff
==
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Thu Feb 24 02:18:34 2011
@@ -26,7 +26,6 @@
  * fix for reversed slice queries on large rows (CASSANDRA-2212)
  * fat clients were writing local data (CASSANDRA-2223)
  * turn off string interning in json2sstable (CASSANDRA-2189)
- * set DEFAULT_MEMTABLE_LIFETIME_IN_MINS to 24h
 
 
 0.7.2

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/CFMetaData.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/CFMetaData.java?rev=1074019r1=1074018r2=1074019view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/CFMetaData.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/CFMetaData.java
 Thu Feb 24 02:18:34 2011
@@ -56,7 +56,7 @@ public final class CFMetaData
 public final static int DEFAULT_GC_GRACE_SECONDS = 864000;
 public final static int DEFAULT_MIN_COMPACTION_THRESHOLD = 4;
 public final static int DEFAULT_MAX_COMPACTION_THRESHOLD = 32;
-public final static int DEFAULT_MEMTABLE_LIFETIME_IN_MINS = 60 * 24;
+public final static int DEFAULT_MEMTABLE_LIFETIME_IN_MINS = 60;
 public final static int DEFAULT_MEMTABLE_THROUGHPUT_IN_MB = 
sizeMemtableThroughput();
 public final static double DEFAULT_MEMTABLE_OPERATIONS_IN_MILLIONS = 
sizeMemtableOperations(DEFAULT_MEMTABLE_THROUGHPUT_IN_MB);
 




svn commit: r1074021 - in /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable: Descriptor.java SSTableWriter.java

2011-02-23 Thread jbellis
Author: jbellis
Date: Thu Feb 24 02:20:05 2011
New Revision: 1074021

URL: http://svn.apache.org/viewvc?rev=1074021view=rev
Log:
revert unreviewed changes to SSTW/Descriptor, take 2

Modified:

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java

cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java?rev=1074021r1=1074020r2=1074021view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java
 Thu Feb 24 02:20:05 2011
@@ -199,11 +199,7 @@ public class Descriptor
 if (!(o instanceof Descriptor))
 return false;
 Descriptor that = (Descriptor)o;
-return that.directory.equals(this.directory)
-that.generation == this.generation
-that.ksname.equals(this.ksname)
-that.cfname.equals(this.cfname)
-that.temporary == this.temporary;
+return that.directory.equals(this.directory)  that.generation == 
this.generation  that.ksname.equals(this.ksname)  
that.cfname.equals(this.cfname);
 }
 
 @Override

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java?rev=1074021r1=1074020r2=1074021view=diff
==
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
 Thu Feb 24 02:20:05 2011
@@ -22,12 +22,9 @@ package org.apache.cassandra.io.sstable;
 import java.io.*;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
-import com.google.common.collect.Sets;
-
 import org.apache.cassandra.utils.ByteBufferUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -207,10 +204,8 @@ public class SSTableWriter extends SSTab
 Descriptor newdesc = tmpdesc.asTemporary(false);
 try
 {
-// do -Data last because -Data present should mean the sstable was 
completely renamed before crash
-for (Component component : Sets.difference(components, 
Collections.singleton(Component.DATA)))
+for (Component component : components)
 FBUtilities.renameWithConfirm(tmpdesc.filenameFor(component), 
newdesc.filenameFor(component));
-FBUtilities.renameWithConfirm(tmpdesc.filenameFor(Component.DATA), 
newdesc.filenameFor(Component.DATA));
 }
 catch (IOException e)
 {




[jira] Commented: (CASSANDRA-2225) Cannot get columns from sstable generated by json2sstable

2011-02-23 Thread Muga Nishizawa (JIRA)

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

Muga Nishizawa commented on CASSANDRA-2225:
---

I'm so sorry, this was not a bug and my operation mistake.  I was able to 
acquire data on sstable generated by json2sstable.  I had forgotten compaction 
of multiple sstables before creating JSON data with sstable2json. 

 Cannot get columns from sstable generated by json2sstable
 -

 Key: CASSANDRA-2225
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2225
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
 Environment: Fedora 11, Intel Core i5, JDK 1.6.0_20
Reporter: Muga Nishizawa
Assignee: Pavel Yaskevich
 Fix For: 0.7.3

 Attachments: cassandra_sample_insert.py, create_table.cli


 I cannot get columns on Cassandra that has sstable generated by json2sstable. 
  It returns null as its result.  Columns that are associated to specified 
 row keys are stored on Cassandra in advance.  Cassandra outputs following 
 exception to system.log.  
 This Cassandra has sstable that was generated by json2sstable.  I stored data 
 in Cassandra, shut it down, then create JSON data from its sstable with 
 sstable2json and I generate sstable from JSON data with json2sstable in 
 advance.  I could check that columns are included in JSON data file.  But 
 columns could not be acquired from the generated sstable.  This problem 
 occurs with or without using Pavel's patch on CASSANDRA-2188.  
 I attached programs so that you can know detail of data stored in Cassandra.  
 You will be able to reproduce this problem by executing attached programs, 
 sstable2json and json2sstable.  For example, I could not get columns 
 associated to row key 030yy from sstable generated by json2sstable. 
  null will be returned as result.  Cassandra will output exception to 
 system.log.  
 - 1. Start Cassandra daemon on localhost (number of thrift port is 9160)
 - 2. Create keyspace and column family, according to create_table.cli
 - 3. Execute cassandra_sample_insert.py, storing pairs of row keys and 
 super columns
  cassandra_sample_insert.py requires pycassa
 - 4. Shutdown Cassandra daemon
 - 5. Execute sstable2json and create JSON data
 - 6. Execute json2sstable and generate sstable from JSON data
 - 7. Start Cassandra daemon again
 - 8. Get columns related to row key 030yy (but, I could not get)
 {quote}
  ERROR 15:45:18,228 Fatal exception in thread Thread[ReadStage:2,5,main]
  java.io.IOError: 
 org.apache.cassandra.db.ColumnSerializer$CorruptColumnException: invalid 
 column name length 0
   at 
 org.apache.cassandra.io.util.ColumnIterator.deserializeNext(ColumnSortedMap.java:246)
   at 
 org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:262)
   at org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:1)
   at 
 java.util.concurrent.ConcurrentSkipListMap.buildFromSorted(ConcurrentSkipListMap.java:1493)
   at 
 java.util.concurrent.ConcurrentSkipListMap.init(ConcurrentSkipListMap.java:1443)
   at 
 org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:366)
   at 
 org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:1)
   at 
 org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:79)
   at 
 org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:1)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
   at 
 org.apache.cassandra.db.columniterator.SSTableSliceIterator.hasNext(SSTableSliceIterator.java:108)
   at 
 org.apache.commons.collections.iterators.CollatingIterator.anyHasNext(CollatingIterator.java:364)
   at 
 org.apache.commons.collections.iterators.CollatingIterator.hasNext(CollatingIterator.java:217)
   at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:55)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
   at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:118)
   at 
 org.apache.cassandra.db.filter.QueryFilter.collectCollatedColumns(QueryFilter.java:142)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1290)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1167)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1095)
   at 

[jira] Updated: (CASSANDRA-2176) Add configuration setting to cap the number of Thrift connections

2011-02-23 Thread T Jake Luciani (JIRA)

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

T Jake Luciani updated CASSANDRA-2176:
--

Attachment: 0001-CASSANDRA-2176-limit-connected-clients-and-config.txt

 Add configuration setting to cap the number of Thrift connections
 -

 Key: CASSANDRA-2176
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2176
 Project: Cassandra
  Issue Type: Improvement
  Components: API
Reporter: Jonathan Ellis
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.7.3

 Attachments: 
 0001-CASSANDRA-2176-limit-connected-clients-and-config.txt, 
 0001-CASSANDRA-2176-limit-number-of-connected-clients.txt

   Original Estimate: 4h
  Remaining Estimate: 4h

 At least until CASSANDRA-1405 is done, it's useful to have a connection cap 
 to prevent misbehaving clients from DOSing the server.

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




[jira] Updated: (CASSANDRA-2176) Add configuration setting to cap the number of Thrift connections

2011-02-23 Thread T Jake Luciani (JIRA)

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

T Jake Luciani updated CASSANDRA-2176:
--

Attachment: (was: 
0001-CASSANDRA-2176-limit-number-of-connected-clients.txt)

 Add configuration setting to cap the number of Thrift connections
 -

 Key: CASSANDRA-2176
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2176
 Project: Cassandra
  Issue Type: Improvement
  Components: API
Reporter: Jonathan Ellis
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.7.3

 Attachments: 
 0001-CASSANDRA-2176-limit-connected-clients-and-config.txt

   Original Estimate: 4h
  Remaining Estimate: 4h

 At least until CASSANDRA-1405 is done, it's useful to have a connection cap 
 to prevent misbehaving clients from DOSing the server.

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




[jira] Commented: (CASSANDRA-2176) Add configuration setting to cap the number of Thrift connections

2011-02-23 Thread T Jake Luciani (JIRA)

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

T Jake Luciani commented on CASSANDRA-2176:
---

k, changes attached

 Add configuration setting to cap the number of Thrift connections
 -

 Key: CASSANDRA-2176
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2176
 Project: Cassandra
  Issue Type: Improvement
  Components: API
Reporter: Jonathan Ellis
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 0.7.3

 Attachments: 
 0001-CASSANDRA-2176-limit-connected-clients-and-config.txt

   Original Estimate: 4h
  Remaining Estimate: 4h

 At least until CASSANDRA-1405 is done, it's useful to have a connection cap 
 to prevent misbehaving clients from DOSing the server.

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




[jira] Resolved: (CASSANDRA-2225) Cannot get columns from sstable generated by json2sstable

2011-02-23 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis resolved CASSANDRA-2225.
---

   Resolution: Invalid
Fix Version/s: (was: 0.7.3)
 Assignee: (was: Pavel Yaskevich)

 Cannot get columns from sstable generated by json2sstable
 -

 Key: CASSANDRA-2225
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2225
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Affects Versions: 0.7.2
 Environment: Fedora 11, Intel Core i5, JDK 1.6.0_20
Reporter: Muga Nishizawa
 Attachments: cassandra_sample_insert.py, create_table.cli


 I cannot get columns on Cassandra that has sstable generated by json2sstable. 
  It returns null as its result.  Columns that are associated to specified 
 row keys are stored on Cassandra in advance.  Cassandra outputs following 
 exception to system.log.  
 This Cassandra has sstable that was generated by json2sstable.  I stored data 
 in Cassandra, shut it down, then create JSON data from its sstable with 
 sstable2json and I generate sstable from JSON data with json2sstable in 
 advance.  I could check that columns are included in JSON data file.  But 
 columns could not be acquired from the generated sstable.  This problem 
 occurs with or without using Pavel's patch on CASSANDRA-2188.  
 I attached programs so that you can know detail of data stored in Cassandra.  
 You will be able to reproduce this problem by executing attached programs, 
 sstable2json and json2sstable.  For example, I could not get columns 
 associated to row key 030yy from sstable generated by json2sstable. 
  null will be returned as result.  Cassandra will output exception to 
 system.log.  
 - 1. Start Cassandra daemon on localhost (number of thrift port is 9160)
 - 2. Create keyspace and column family, according to create_table.cli
 - 3. Execute cassandra_sample_insert.py, storing pairs of row keys and 
 super columns
  cassandra_sample_insert.py requires pycassa
 - 4. Shutdown Cassandra daemon
 - 5. Execute sstable2json and create JSON data
 - 6. Execute json2sstable and generate sstable from JSON data
 - 7. Start Cassandra daemon again
 - 8. Get columns related to row key 030yy (but, I could not get)
 {quote}
  ERROR 15:45:18,228 Fatal exception in thread Thread[ReadStage:2,5,main]
  java.io.IOError: 
 org.apache.cassandra.db.ColumnSerializer$CorruptColumnException: invalid 
 column name length 0
   at 
 org.apache.cassandra.io.util.ColumnIterator.deserializeNext(ColumnSortedMap.java:246)
   at 
 org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:262)
   at org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:1)
   at 
 java.util.concurrent.ConcurrentSkipListMap.buildFromSorted(ConcurrentSkipListMap.java:1493)
   at 
 java.util.concurrent.ConcurrentSkipListMap.init(ConcurrentSkipListMap.java:1443)
   at 
 org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:366)
   at 
 org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:1)
   at 
 org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:79)
   at 
 org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:1)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
   at 
 org.apache.cassandra.db.columniterator.SSTableSliceIterator.hasNext(SSTableSliceIterator.java:108)
   at 
 org.apache.commons.collections.iterators.CollatingIterator.anyHasNext(CollatingIterator.java:364)
   at 
 org.apache.commons.collections.iterators.CollatingIterator.hasNext(CollatingIterator.java:217)
   at 
 org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:55)
   at 
 com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
   at 
 com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
   at 
 org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:118)
   at 
 org.apache.cassandra.db.filter.QueryFilter.collectCollatedColumns(QueryFilter.java:142)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1290)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1167)
   at 
 org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1095)
   at org.apache.cassandra.db.Table.getRow(Table.java:384)
   at 
 org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:63)
   at 
 org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:473)
   

[jira] Created: (CASSANDRA-2233) Add unified UUIDType

2011-02-23 Thread Ed Anuff (JIRA)
Add unified UUIDType


 Key: CASSANDRA-2233
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2233
 Project: Cassandra
  Issue Type: Improvement
  Components: Contrib
Affects Versions: 0.7.3
Reporter: Ed Anuff
Priority: Minor


Unified UUIDType comparator, compares as time-based if both UUIDs are 
time-based, otherwise uses byte comparison.  Based on code from the current 
LexicalUUIDType and TimeUUIDType comparers, so performance and behavior should 
be consistent and compatible.

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




[jira] Updated: (CASSANDRA-2233) Add unified UUIDType

2011-02-23 Thread Ed Anuff (JIRA)

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

Ed Anuff updated CASSANDRA-2233:


Attachment: UUIDType.java

 Add unified UUIDType
 

 Key: CASSANDRA-2233
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2233
 Project: Cassandra
  Issue Type: Improvement
  Components: Contrib
Affects Versions: 0.7.3
Reporter: Ed Anuff
Priority: Minor
 Attachments: UUIDType.java


 Unified UUIDType comparator, compares as time-based if both UUIDs are 
 time-based, otherwise uses byte comparison.  Based on code from the current 
 LexicalUUIDType and TimeUUIDType comparers, so performance and behavior 
 should be consistent and compatible.

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




[jira] Commented: (CASSANDRA-1684) Entity groups

2011-02-23 Thread Ed Anuff (JIRA)

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

Ed Anuff commented on CASSANDRA-1684:
-

This is something I've been thinking about while consolidating the number of 
column families within an application so that I ended up with row keys that 
were constructed from concatenating an entity id with various other strings 
(eg. 9081bd70-3fe4-11e0-9207-0800200c9a66:something ).  Is it feasible to have 
a partitioner that hashed on just the first x bytes in a key?  Do tokens have 
to be one-to-one unique with keys, or could you have multiple keys share the 
same token? (apparently that's currently possible, although an extreme edge 
case, with the RandomPartitioner)

 Entity groups
 -

 Key: CASSANDRA-1684
 URL: https://issues.apache.org/jira/browse/CASSANDRA-1684
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Jonathan Ellis
Assignee: Sylvain Lebresne
 Fix For: 0.8

   Original Estimate: 80h
  Remaining Estimate: 80h

 Supporting entity groups similar to App Engine's (that is, allow rows to be 
 part of a parent entity group, whose key is used for routing instead of the 
 row itself) allows several improvements:
  - batches within an EG can be atomic across multiple rows
  - order-by-value queries within an EG only have to touch a single replica 
 even with RandomPartitioner

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