Re: Secondary index data gone after restart (1.1.1)

2012-06-27 Thread aaron morton
CASSANDRA-3954 disabled caches on secondary index CF's in 1.1.0 and  
CASSANDRA-4197 enabled it in 1.1.1

Can you create a ticket on https://issues.apache.org/jira/browse/CASSANDRA

I guessing this has something to do with the local partitioner used for the 
secondary index Cf. That would explain the BigInteger value (from the RP) and 
the TimeUUIDType could come from the LocalToken. 

Cheers

-
Aaron Morton
Freelance Developer
@aaronmorton
http://www.thelastpickle.com

On 26/06/2012, at 8:11 PM, Ivo Meißner wrote:

 Hi,
 
 but if the data must be converted, this is something that should be fixed 
 inside cassandra… Is this a bug, should I file a bug report?
 Or is there some kind of setting I can change to make it work for now?
 
 Maybe it is related to this issue, but this should have been fixed in 1.1.0:
 
 https://issues.apache.org/jira/browse/CASSANDRA-3954
 
 Thanks
 Ivo
 
 
 Am 26.06.2012 um 09:26 schrieb Fei Shan:
 
 Hi
 
please refer JDK nio package's ByteBuffer, I don't think that ByteBuffer 
 can be cast from the BigInteger directly, 
 it seems you need make some conversion before put it into a ByteBuffer.
 
 Thanks
 Fei
 
 On Tue, Jun 26, 2012 at 12:07 AM, Ivo Meißner i...@overtronic.com wrote:
 Hi,
 
 I am running into some problems with secondary indexes that I am unable to 
 track down. When I restart the cassandra service, the secondary index data 
 won't load and I get the following error during startup: 
 
 INFO 08:29:42,127 Opening 
 /var/myproject/cassandra/data/mykeyspace/group_admin/mykeyspace-group_admin.group_admin_groupId_idx-hd-1
  (20808 bytes)
 ERROR 08:29:42,159 Exception in thread Thread[SSTableBatchOpen:1,5,main]
 java.lang.ClassCastException: java.math.BigInteger cannot be cast to 
 java.nio.ByteBuffer
  at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:37)
  at org.apache.cassandra.dht.LocalToken.compareTo(LocalToken.java:45)
  at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:89)
  at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:38)
  at java.util.TreeMap.getEntry(TreeMap.java:328)
  at java.util.TreeMap.containsKey(TreeMap.java:209)
  at java.util.TreeSet.contains(TreeSet.java:217)
  at 
 org.apache.cassandra.io.sstable.SSTableReader.load(SSTableReader.java:396)
  at 
 org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:187)
  at 
 org.apache.cassandra.io.sstable.SSTableReader$1.run(SSTableReader.java:225)
  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)
 
 When the service starts I can still select data from the column family, but 
 not using the secondary index. 
 After I execute nodetool rebuild_index the secondary index works fine 
 again until the next restart. 
 
 The error only seems to occur on the column groupId (TimeUUIDType). The 
 other index on userId seems to work. 
 
 I have the following column family definition: 
 
 create column family group_admin with
   comparator = UTF8Type and
   key_validation_class = UTF8Type and
   column_metadata = [
 {column_name: id, validation_class: UTF8Type},
 {column_name: added, validation_class: LongType},
 {column_name: userId, validation_class: BytesType, index_type: KEYS},
 {column_name: requestMessage, validation_class: UTF8Type},
 {column_name: status, validation_class: LongType},
 {column_name: groupId, validation_class: TimeUUIDType, index_type: KEYS}
   ];
 
 Thank you very much for your help!
 
 Ivo
 
 
 



Secondary index data gone after restart (1.1.1)

2012-06-26 Thread Ivo Meißner
Hi,

I am running into some problems with secondary indexes that I am unable to 
track down. When I restart the cassandra service, the secondary index data 
won't load and I get the following error during startup: 

INFO 08:29:42,127 Opening 
/var/myproject/cassandra/data/mykeyspace/group_admin/mykeyspace-group_admin.group_admin_groupId_idx-hd-1
 (20808 bytes)
ERROR 08:29:42,159 Exception in thread Thread[SSTableBatchOpen:1,5,main]
java.lang.ClassCastException: java.math.BigInteger cannot be cast to 
java.nio.ByteBuffer
at 
org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:37)
at org.apache.cassandra.dht.LocalToken.compareTo(LocalToken.java:45)
at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:89)
at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:38)
at java.util.TreeMap.getEntry(TreeMap.java:328)
at java.util.TreeMap.containsKey(TreeMap.java:209)
at java.util.TreeSet.contains(TreeSet.java:217)
at 
org.apache.cassandra.io.sstable.SSTableReader.load(SSTableReader.java:396)
at 
org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:187)
at 
org.apache.cassandra.io.sstable.SSTableReader$1.run(SSTableReader.java:225)
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)

When the service starts I can still select data from the column family, but not 
using the secondary index. 
After I execute nodetool rebuild_index the secondary index works fine again 
until the next restart. 

The error only seems to occur on the column groupId (TimeUUIDType). The other 
index on userId seems to work. 

I have the following column family definition: 

create column family group_admin with
  comparator = UTF8Type and
  key_validation_class = UTF8Type and
  column_metadata = [
{column_name: id, validation_class: UTF8Type},
{column_name: added, validation_class: LongType},
{column_name: userId, validation_class: BytesType, index_type: KEYS},
{column_name: requestMessage, validation_class: UTF8Type},
{column_name: status, validation_class: LongType},
{column_name: groupId, validation_class: TimeUUIDType, index_type: KEYS}
  ];

Thank you very much for your help!

Ivo

Re: Secondary index data gone after restart (1.1.1)

2012-06-26 Thread Fei Shan
Hi

   please refer JDK nio package's ByteBuffer, I don't think that ByteBuffer
can be cast from the BigInteger directly,
it seems you need make some conversion before put it into a ByteBuffer.

Thanks
Fei

On Tue, Jun 26, 2012 at 12:07 AM, Ivo Meißner i...@overtronic.com wrote:

 Hi,

 I am running into some problems with secondary indexes that I am unable to
 track down. When I restart the cassandra service, the secondary index data
 won't load and I get the following error during startup:

 INFO 08:29:42,127 Opening
 /var/myproject/cassandra/data/mykeyspace/group_admin/mykeyspace-group_admin.group_admin_groupId_idx-hd-1
 (20808 bytes)
 ERROR 08:29:42,159 Exception in thread Thread[SSTableBatchOpen:1,5,main]
 java.lang.ClassCastException: java.math.BigInteger cannot be cast to
 java.nio.ByteBuffer
 at
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:37)
 at org.apache.cassandra.dht.LocalToken.compareTo(LocalToken.java:45)
 at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:89)
 at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:38)
 at java.util.TreeMap.getEntry(TreeMap.java:328)
 at java.util.TreeMap.containsKey(TreeMap.java:209)
 at java.util.TreeSet.contains(TreeSet.java:217)
 at
 org.apache.cassandra.io.sstable.SSTableReader.load(SSTableReader.java:396)
 at
 org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:187)
 at
 org.apache.cassandra.io.sstable.SSTableReader$1.run(SSTableReader.java:225)
 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)

 When the service starts I can still select data from the column family,
 but not using the secondary index.
 After I execute nodetool rebuild_index the secondary index works fine
 again until the next restart.

 The error only seems to occur on the column groupId (TimeUUIDType). The
 other index on userId seems to work.

 I have the following column family definition:

 create column family group_admin with
   comparator = UTF8Type and
   key_validation_class = UTF8Type and
   column_metadata = [
 {column_name: id, validation_class: UTF8Type},
 {column_name: added, validation_class: LongType},
 {column_name: userId, validation_class: BytesType, index_type: KEYS},
 {column_name: requestMessage, validation_class: UTF8Type},
 {column_name: status, validation_class: LongType},
 {column_name: groupId, validation_class: TimeUUIDType, index_type:
 KEYS}
   ];

 Thank you very much for your help!

 Ivo



Re: Secondary index data gone after restart (1.1.1)

2012-06-26 Thread Ivo Meißner
Hi,

but if the data must be converted, this is something that should be fixed 
inside cassandra… Is this a bug, should I file a bug report?
Or is there some kind of setting I can change to make it work for now?

Maybe it is related to this issue, but this should have been fixed in 1.1.0:

https://issues.apache.org/jira/browse/CASSANDRA-3954

Thanks
Ivo


Am 26.06.2012 um 09:26 schrieb Fei Shan:

 Hi
 
please refer JDK nio package's ByteBuffer, I don't think that ByteBuffer 
 can be cast from the BigInteger directly, 
 it seems you need make some conversion before put it into a ByteBuffer.
 
 Thanks
 Fei
 
 On Tue, Jun 26, 2012 at 12:07 AM, Ivo Meißner i...@overtronic.com wrote:
 Hi,
 
 I am running into some problems with secondary indexes that I am unable to 
 track down. When I restart the cassandra service, the secondary index data 
 won't load and I get the following error during startup: 
 
 INFO 08:29:42,127 Opening 
 /var/myproject/cassandra/data/mykeyspace/group_admin/mykeyspace-group_admin.group_admin_groupId_idx-hd-1
  (20808 bytes)
 ERROR 08:29:42,159 Exception in thread Thread[SSTableBatchOpen:1,5,main]
 java.lang.ClassCastException: java.math.BigInteger cannot be cast to 
 java.nio.ByteBuffer
   at 
 org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:37)
   at org.apache.cassandra.dht.LocalToken.compareTo(LocalToken.java:45)
   at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:89)
   at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:38)
   at java.util.TreeMap.getEntry(TreeMap.java:328)
   at java.util.TreeMap.containsKey(TreeMap.java:209)
   at java.util.TreeSet.contains(TreeSet.java:217)
   at 
 org.apache.cassandra.io.sstable.SSTableReader.load(SSTableReader.java:396)
   at 
 org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:187)
   at 
 org.apache.cassandra.io.sstable.SSTableReader$1.run(SSTableReader.java:225)
   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)
 
 When the service starts I can still select data from the column family, but 
 not using the secondary index. 
 After I execute nodetool rebuild_index the secondary index works fine again 
 until the next restart. 
 
 The error only seems to occur on the column groupId (TimeUUIDType). The other 
 index on userId seems to work. 
 
 I have the following column family definition: 
 
 create column family group_admin with
   comparator = UTF8Type and
   key_validation_class = UTF8Type and
   column_metadata = [
 {column_name: id, validation_class: UTF8Type},
 {column_name: added, validation_class: LongType},
 {column_name: userId, validation_class: BytesType, index_type: KEYS},
 {column_name: requestMessage, validation_class: UTF8Type},
 {column_name: status, validation_class: LongType},
 {column_name: groupId, validation_class: TimeUUIDType, index_type: KEYS}
   ];
 
 Thank you very much for your help!
 
 Ivo