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=3D('A', 'D') and = end_column=3D('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

http://www.thelastpickle.com

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=3D('A', 'D') and end_column=3D('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
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:

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 =E9crit :
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" = =3D> (A:A:C), (A:B:C), (A:C:C), (A:D:C), (B,A,C)

like get_range ("key1", start_column=3D(A,"), = end_column=3D(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" =3D> A: (A,C), (B,C), = (C,C), (D,C)  , B: (A,C)

thx

=

= --Apple-Mail=_04B31CE6-5160-41CC-82E8-F6ED0596E28A--