cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marcelo Elias Del Valle <marc...@s1mbi0se.com.br>
Subject Re: index partition key
Date Thu, 18 Sep 2014 16:58:57 GMT
Yes, indeed using the evil ordered partitioner it would work, but it should
be avoided at all costs.
What I am trying to figure is: Can I tell Cassandra is not good for cases
where you need range queries over all the cluster?
It's just a kind of "architectural rule" I am trying to use to decide
whether when to use a kind of technology or another.
Solr, for instance, allows you to query the way you want over all the
cluster, so data stax enterprise could "solve" this problem, but I wonder
if it's the only way.

[]s

2014-09-18 13:35 GMT-03:00 DuyHai Doan <doanduyhai@gmail.com>:

> Your query "select * from testcf where key1 > 'Lucas';" does work if you
> choose the old OrderPartioner but since it's considered absolute evil (for
> good reason, load distribution is horrendous), pratically it is not
> possible to do your query.
>
> And it's the same thing with secondary index. Query with inequality on
> secondary index translates into full cluster scan...
>
> Regards
>
>  Duy Hai DOAN
>
> On Thu, Sep 18, 2014 at 5:44 PM, Marcelo Elias Del Valle <
> marcelo@s1mbi0se.com.br> wrote:
>
>> Hi,
>>
>> This question is just for curiosity purposes, I don't need this in my
>> solution, but it's something I was asking myself...
>>
>> Is there a way of indexing the partition key values in Cassandra? Does
>> anyone needed this and found a solution of any kind?
>>
>> For example, I know the sample bellow doesn't work, but would it be
>> possible somehow?
>> I know select * from testcf where token(key1) > token('Lucas'); works,
>> but the question is ordering by the values, even using another CF or index
>> of any kind...
>>
>> CREATE KEYSPACE IF NOT EXISTS testks
>>   WITH REPLICATION = { 'class' : 'SimpleStrategy',
>>   'replication_factor': '1' };
>>
>>
>> CREATE TABLE IF NOT EXISTS testcf (
>>   key1 varchar,
>>   value varchar,
>>   PRIMARY KEY ((key1)));
>>
>> CREATE INDEX testidx on testks.testcf (key1);
>>
>> insert into testcf (key1, value) values ('Lucas', 'value1');
>> insert into testcf (key1, value) values ('Luiz', 'value2');
>> insert into testcf (key1, value) values ('Edu', 'value3');
>> insert into testcf (key1, value) values ('Marcelo', 'value4');
>>
>> select * from testcf order by key1;
>> select * from testcf where key1 > 'Lucas';
>>
>>
>> Best regards,
>> Marcelo.
>>
>
>

Mime
View raw message