incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nate McCall <n...@datastax.com>
Subject Re: cant seem to figure out secondary index definition
Date Thu, 17 Feb 2011 20:45:27 GMT
How are you constructing the IndexSlicesQuery? Does it have an equals
clause with that UUID as the column name?

On Thu, Feb 17, 2011 at 11:32 AM, Roland Gude <roland.gude@yoochoose.com> wrote:
> 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.michal@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.gude@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.michal@gmail.com]
> Gesendet: Dienstag, 15. Februar 2011 15:53
> An: 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.gude@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,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.gude@yoochoose.com
>
> WWW: 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
>
>
>
>
>
>

Mime
View raw message