> 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 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=('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 <aa...@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 > http://www.thelastpickle.com > > 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" <aa...@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 >> http://www.thelastpickle.com >> >> 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 >> > >