ok sorry I thought columns inside a row had their keys hashed also
So they are just putted as raw bytes

thx

2012/6/1 aaron morton <aaron@thelastpickle.com>
If you hash 4 composite keys, let's say ('A','B','C'), ('A','D','C'), ('A','E','X'), ('A','R','X'), you have only 4 hashes or you have more?
Four

If it's 4, how come you are able to range query for example between start_column=('A', 'D') and end_column=('A','E') and get this column ('A','D','C')
That's a slice query against columns, the column value is not hashed. The values of the column are sorted according to the comparator which can be different to the raw byte order.

A range query is against rows. Rows keys are hashed (using the Random Partitioner) to create tokens, and are stored in token order. 

the composites are like chapters between the whole keys set, there must be intermediate keys added?
Not sure what you mean. 

Cheers

-----------------
Aaron Morton
Freelance Developer
@aaronmorton

On 1/06/2012, at 12:52 AM, Cyril Auburtin wrote:

but sorry, I don"t undertand

If you hash 4 composite keys, let's say ('A','B','C'), ('A','D','C'), ('A','E','X'), ('A','R','X'), you have only 4 hashes or you have more?

If it's 4, how come you are able to range query for example between start_column=('A', 'D') and end_column=('A','E') and get this column ('A','D','C')

the composites are like chapters between the whole keys set, there must be intermediate keys added?


2012/5/31 aaron morton <aaron@thelastpickle.com>
it is hashed once. 

To the partitioner it's just some bytes. Other parts of the code car about it's structure. 

Cheers

-----------------
Aaron Morton
Freelance Developer
@aaronmorton

On 31/05/2012, at 7:00 PM, Cyril Auburtin wrote:

Thx for the answer
1 more thing, a Composite key is not hashed only once I guess?
It's hashed the number of part the composite have?
So this means there are twice or 3 or ... as many keys as for normal column keys, is it true?

Le 31 mai 2012 02:59, "aaron morton" <aaron@thelastpickle.com> a écrit :
Composite Columns compare each part in turn, so the values are ordered as you've shown them. 

However the rows are not ordered according to key value. They are ordered using the random token generated by the partitioner see http://wiki.apache.org/cassandra/FAQ#range_rp

What is the real advantage compared to super column families?
They are faster. 

Cheers

-----------------
Aaron Morton
Freelance Developer
@aaronmorton

On 29/05/2012, at 10:08 PM, Cyril Auburtin wrote:

How is it done in Cassandra to be able to range query on a composite key?

"key1" => (A:A:C), (A:B:C), (A:C:C), (A:D:C), (B,A,C)

like get_range ("key1", start_column=(A,"), end_column=(A, C)); will return [ (A:B:C), (A:C:C) ] (in pycassa)

I mean does the composite implementation add much overhead to make it work?
Does it need to add other Column families, to be able to range query between composites simple keys (first, second and third part of the composite)?

What is the real advantage compared to super column families?

"key1" => A: (A,C), (B,C), (C,C), (D,C)  , B: (A,C)

thx