Hi again,

i am still having trouble with this.
If I define the index using cli with these commands:
create column family A with column_type='Standard' and 
comparator='TimeUUIDType' and keys_cached=200000 and read_repair_chance=1.0 and 
rows_cached=0.0 and column_metadata=[{column_name: 
00000000-0000-1000-0000-000000000000, validation_class: UTF8Type, index_name: 
MyIndex, index_type: KEYS}];
create column family B with column_type='Standard' and 
comparator='TimeUUIDType' and keys_cached=200000 and read_repair_chance=1.0 and 
rows_cached=0.0 and column_metadata=[{column_name: 
00000000-0000-1000-0000-000000000000, validation_class: UTF8Type, index_name: 
MyIndex, index_type: KEYS}];

I can do IndexedSliceQueries as expected

In my unit tests where I use an embedded Cassandra instance configured via yaml 
like this:
  - column_metadata: [{name: 00000000-0000-1000-0000-000000000000, 
validator_class: UTF8Type, index_name: MyIndex, index_type: KEYS}]
    compare_with: TimeUUIDType
    gc_grace_seconds: 864000
    keys_cached: 0.0
    max_compaction_threshold: 32
    min_compaction_threshold: 4
    name: A
    read_repair_chance: 1.0
    rows_cached: 0.0
  - column_metadata: [{name: 00000000-0000-1000-0000-000000000000, 
validator_class: UTF8Type, index_name: MyIndex, index_type: KEYS}]
    compare_with: TimeUUIDType
    gc_grace_seconds: 864000
    keys_cached: 0.0
    max_compaction_threshold: 32
    min_compaction_threshold: 4
    name: B
    read_repair_chance: 1.0
    rows_cached: 0.0

I get these Exceptions:

18:23:55.973 [CassandraDataFetcher-queries] ERROR 
c.y.s.c.i.event.CassandraDataFetcher - Query 
me.prettyprint.cassandra.model.IndexedSlicesQuery@1bbd3e2 failed, stop query.
me.prettyprint.hector.api.exceptions.HInvalidRequestException: 
InvalidRequestException(why:No indexed columns present in index clause with 
operator EQ)
      at 
me.prettyprint.cassandra.service.ExceptionsTranslatorImpl.translate(ExceptionsTranslatorImpl.java:42)
 ~[hector-core-0.7.0-26.jar:na]
      at 
me.prettyprint.cassandra.service.KeyspaceServiceImpl$12.execute(KeyspaceServiceImpl.java:513)
 ~[hector-core-0.7.0-26.jar:na]
      at 
me.prettyprint.cassandra.service.KeyspaceServiceImpl$12.execute(KeyspaceServiceImpl.java:495)
 ~[hector-core-0.7.0-26.jar:na]
      at 
me.prettyprint.cassandra.service.Operation.executeAndSetResult(Operation.java:101)
 ~[hector-core-0.7.0-26.jar:na]
      at 
me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:161)
 ~[hector-core-0.7.0-26.jar:na]
      at 
me.prettyprint.cassandra.service.KeyspaceServiceImpl.operateWithFailover(KeyspaceServiceImpl.java:129)
 ~[hector-core-0.7.0-26.jar:na]
      at 
me.prettyprint.cassandra.service.KeyspaceServiceImpl.getIndexedSlices(KeyspaceServiceImpl.java:517)
 ~[hector-core-0.7.0-26.jar:na]
      at 
me.prettyprint.cassandra.model.IndexedSlicesQuery$1.doInKeyspace(IndexedSlicesQuery.java:140)
 ~[hector-core-0.7.0-26.jar:na]
      at 
me.prettyprint.cassandra.model.IndexedSlicesQuery$1.doInKeyspace(IndexedSlicesQuery.java:131)
 ~[hector-core-0.7.0-26.jar:na]
      at 
me.prettyprint.cassandra.model.KeyspaceOperationCallback.doInKeyspaceAndMeasure(KeyspaceOperationCallback.java:20)
 ~[hector-core-0.7.0-26.jar:na]
      at 
me.prettyprint.cassandra.model.ExecutingKeyspace.doExecute(ExecutingKeyspace.java:85)
 ~[hector-core-0.7.0-26.jar:na]
      at 
me.prettyprint.cassandra.model.IndexedSlicesQuery.execute(IndexedSlicesQuery.java:130)
 ~[hector-core-0.7.0-26.jar:na]
      at 
com.yoochoose.services.cassandra.internal.event.CassandraDataFetcher$1.onMessage(CassandraDataFetcher.java:60)
 [classes/:na]
      at 
com.yoochoose.services.cassandra.internal.event.CassandraDataFetcher$1.onMessage(CassandraDataFetcher.java:47)
 [classes/:na]
      at 
org.jetlang.channels.ChannelSubscription$1.run(ChannelSubscription.java:31) 
[jetlang-0.2.1.jar:na]
      at org.jetlang.core.BatchExecutorImpl.execute(BatchExecutorImpl.java:11) 
[jetlang-0.2.1.jar:na]
      at 
org.jetlang.core.RunnableExecutorImpl.run(RunnableExecutorImpl.java:34) 
[jetlang-0.2.1.jar:na]
      at org.jetlang.fibers.ThreadFiber.runThread(ThreadFiber.java:51) 
[jetlang-0.2.1.jar:na]
      at org.jetlang.fibers.ThreadFiber.access$000(ThreadFiber.java:10) 
[jetlang-0.2.1.jar:na]
      at org.jetlang.fibers.ThreadFiber$1.run(ThreadFiber.java:27) 
[jetlang-0.2.1.jar:na]
      at java.lang.Thread.run(Thread.java:619) [na:1.6.0_17]
Caused by: org.apache.cassandra.thrift.InvalidRequestException: null
      at 
org.apache.cassandra.thrift.Cassandra$get_indexed_slices_result.read(Cassandra.java:13299)
 ~[cassandra-all-0.7.0.jar:0.7.0]
      at 
org.apache.cassandra.thrift.Cassandra$Client.recv_get_indexed_slices(Cassandra.java:780)
 ~[cassandra-all-0.7.0.jar:0.7.0]
      at 
org.apache.cassandra.thrift.Cassandra$Client.get_indexed_slices(Cassandra.java:752)
 ~[cassandra-all-0.7.0.jar:0.7.0]
      at 
me.prettyprint.cassandra.service.KeyspaceServiceImpl$12.execute(KeyspaceServiceImpl.java:501)
 ~[hector-core-0.7.0-26.jar:na]
      ... 19 common frames omitted



With the very same code and data.
I assume that the column name I give in Cassandra.yaml is somehow not 
inmterpreted as a TimedUUID or something.

Any help would be greatly appreciated

Greetings,
roland


Von: Michal Augustýn [mailto:augustyn.mic...@gmail.com]
Gesendet: Dienstag, 15. Februar 2011 16:22
An: user@cassandra.apache.org
Betreff: Re: cant seem to figure out secondary index definition

Ah, ok. I checked that in source and the problem is that you wrote 
"validation_class" but you should "validator_class".

Augi
2011/2/15 Roland Gude 
<roland.g...@yoochoose.com<mailto:roland.g...@yoochoose.com>>
Yeah i know about that, but the definition i have is for a cluster that is 
started/stopped from a unit test with hector embeddedServerHelper, which takes 
definitions from the yaml.
So i'd still like to define the index in the yaml file (it should very well be 
possible I guess)


Von: Michal Augustýn 
[mailto:augustyn.mic...@gmail.com<mailto:augustyn.mic...@gmail.com>]
Gesendet: Dienstag, 15. Februar 2011 15:53
An: user@cassandra.apache.org<mailto:user@cassandra.apache.org>
Betreff: Re: cant seem to figure out secondary index definition

Hi,

if you download Cassandra and look into "conf/cassandra.yaml" then you can see 
this:

"this keyspace definition is for demonstration purposes only. Cassandra will 
not load these definitions during startup. See 
http://wiki.apache.org/cassandra/FAQ#no_keyspaces for an explanation."

So you should make all schema-related operation via Thrift/AVRO API, or you can 
use Cassandra CLI.

Augi

2011/2/15 Roland Gude 
<roland.g...@yoochoose.com<mailto:roland.g...@yoochoose.com>>
Hi,

i am a little puzzled on creation of secondary indexes and the docs in that 
area are still very sparse.
What I am trying to do is - in a columnfamily with TimeUUID comparator, I want 
the "special" timeuuid 00000000-0000-1000-0000-000000000000 to be indexed. The 
value being some UTF8 string on which I want to perform equality checks.

What do I need to put in my cassandra.yaml file?
Something like this?

  - column_metadata: [{name: 00000000-0000-1000-0000-000000000000, 
validation_class: UTF8Type, index_name: MyIndex, index_type: KEYS}]

This gives me that error:

15:05:12.492 [pool-1-thread-1] ERROR o.a.c.config.DatabaseDescriptor - Fatal 
error: null; Can't construct a java object for 
tag:yaml.org<http://yaml.org>,2002:org.apache.cassandra.config.Config; 
exception=Cannot create property=keyspaces for 
JavaBean=org.apache.cassandra.config.Config@7eb6e2; Cannot create 
property=column_families for 
JavaBean=org.apache.cassandra.config.RawKeyspace@987a33; Cannot create 
property=column_metadata for 
JavaBean=org.apache.cassandra.config.RawColumnFamily@716cb7; Cannot create 
property=validation_class for 
JavaBean=org.apache.cassandra.config.RawColumnDefinition@e29820; Unable to find 
property 'validation_class' on class: 
org.apache.cassandra.config.RawColumnDefinition
Bad configuration; unable to start server


I am furthermor uncertain if the column name will be correctly used if given 
like this. Should I put the byte representation of the uuid there?

Greetings,
roland
--
YOOCHOOSE GmbH

Roland Gude
Software Engineer

Im Mediapark 8, 50670 Köln

+49 221 4544151 (Tel)
+49 221 4544159 (Fax)
+49 171 7894057 (Mobil)


Email: roland.g...@yoochoose.com<mailto:roland.g...@yoochoose.com>
WWW: www.yoochoose.com<http://www.yoochoose.com/>

YOOCHOOSE GmbH
Geschäftsführer: Dr. Uwe Alkemper, Michael Friedmann
Handelsregister: Amtsgericht Köln HRB 65275
Ust-Ident-Nr: DE 264 773 520
Sitz der Gesellschaft: Köln



Reply via email to