We had some problems when using secondary indexes because of three issues:

- The query is a Range Query, which means that it is slow.
- There is an open bug regarding the use of row cache for secondary indexes (CASSANDRA-4973)
- The cardinality of our secondary key was very low (this was bad)

We performed some modifications and created another column family, which maps the secondary index to the key of the original column family. The improvements were very impressive in our case!

Best regards
Francisco


On Aug 28, 2013, at 12:22 PM, Vivek Mishra <mishra.vivs@gmail.com> wrote:

Create a column family of compositeType (or PRIMARY KEY) as (user_id,age, salary).

Then you will be able to query use eq operator  over partition key and as well over clustering key:

You may also exclude salary as a secondary index rather than part of cluster key(e.g. age,salary)

I am sure based on your query usage, you can opt for either a composite key or may mix composite key with secondary index !

Have a look at: http://www.datastax.com/dev/blog/introduction-to-composite-columns-part-1

Hope it helps.


-Vivek


On Wed, Aug 28, 2013 at 5:49 PM, Sávio Teles <savio.teles@lupa.inf.ufg.br> wrote:
I can populate again. We are modelling the data yet! Tks.


2013/8/28 Vivek Mishra <mishra.vivs@gmail.com>
Just saw that you already have data populated, so i guess modifying for composite key may not work for you.

-Vivek


On Tue, Aug 27, 2013 at 11:55 PM, Sávio Teles <savio.teles@lupa.inf.ufg.br> wrote:
Vivek, using a composite key, how would be the query?


2013/8/27 Vivek Mishra <mishra.vivs@gmail.com>
For such queries, looks like you may create a composite key as (user_id,age, salary).

Too much indexing always kills(irrespective of RDBMS or NoSQL). Remember every search request on secondary indexes will be passed on each node in ring.

-Vivek


On Tue, Aug 27, 2013 at 11:11 PM, Sávio Teles <savio.teles@lupa.inf.ufg.br> wrote:
Use a database that is designed for efficient range queries? ;D

Is there no way to do this with Cassandra? Like using Hive, Sorl...


2013/8/27 Robert Coli <rcoli@eventbrite.com>
On Fri, Aug 23, 2013 at 5:53 AM, Sávio Teles <savio.teles@lupa.inf.ufg.br> wrote:
I need to perform range query efficiently. 
... 
This query takes a long time to run. Any ideas to perform it efficiently?

Use a database that is designed for efficient range queries? ;D

=Rob
 



--
Atenciosamente,
Sávio S. Teles de Oliveira
voice: +55 62 9136 6996
http://br.linkedin.com/in/savioteles
Mestrando em Ciências da Computação - UFG
Arquiteto de Software
Laboratory for Ubiquitous and Pervasive Applications (LUPA) - UFG




--
Atenciosamente,
Sávio S. Teles de Oliveira
voice: +55 62 9136 6996
http://br.linkedin.com/in/savioteles
Mestrando em Ciências da Computação - UFG
Arquiteto de Software
Laboratory for Ubiquitous and Pervasive Applications (LUPA) - UFG




--
Atenciosamente,
Sávio S. Teles de Oliveira
voice: +55 62 9136 6996
http://br.linkedin.com/in/savioteles
Mestrando em Ciências da Computação - UFG
Arquiteto de Software
Laboratory for Ubiquitous and Pervasive Applications (LUPA) - UFG