As Jonathan mentions the compareWith on a column family def. is defines the order for the columns *within* a row... In order to control the ordering of rows you'll need to use the OrderPreservingPartitioner (http://www.datastax.com/docs/0.7/operations/clustering#tokens-partitioners-ring).
Thanks for your answer and for your time, I will take a look at this. As for getColumnsFromRows; it should be returning you a map of lists. The map is insertion-order-preserving and populated based on the provided list of row keys (so if you iterate over the entries in the map they should be in the same order as the list of row keys). mmm ... well it didn't happen like this. In my code I had a CF named comments and also a CF called usercomments. UserComments use an uuid as row-key to keep, TimeUUID sorted, the "pointers" to the comments of the user. When I get the sorted list of keys from the UserComments and I use this list as row-keys-list in the GetColumnsFromRows I don't get back the data sorted as I expect them to be.It looks like if Cassandra/Pelops does not care on how I provide the row-keys-list. I am sure about that cause I did something different: I iterate over my row-keys-list and made many GetColumnFromRow instead of one GetColumnsFromRows and when I iterate data are correctly sorted. But this can not be a solution ... I am using Cassandra 0.6.9 I profit of your knownledge of Pelops to ask you something: I am evaluating the migration to Cassandra 0.7 ... as far as you know, in terms of written code, is it an heavy job? Best Regards Carlo ----Messaggio originale---- Da: d...@reactive.org On Saturday, 19 February 2011 at 8:16 AM, cbert...@libero.it wrote: Hi all, I created a CF in which i need to get, sorted by time, the Rows inside. Each Row represents a comment. <ColumnFamily name="Comments" compareWith="TimeUUIDType" / > I've created a few rows using as Row Key a generated TimeUUID but when I call the Pelops method "GetColumnsFromRows" I don't get the data back as I expect: rows are not sorted by TimeUUID. I though it was probably cause of the random-part of the TimeUUID so I create a new CF ... <ColumnFamily name="Comments2" compareWith="LongType" / > This time I created a few rows using the java System.CurrentTimeMillis() that retrieve a long. I call again the "GetColumnsFromRows" and again the same results: data are not sorted! I've read many times that Rows are sorted as specified in the compareWith but I can't see it. To solve this problem for the moment I've used a SuperColumnFamily with an UNIQUE ROW ... but I think this is just a workaround and not the solution. <ColumnFamily name="Comments" type="Super" compareWith="TimeUUIDType" CompareSubcolumnsWith="BytesType"/ > Now when I call the "GetSuperColumnsFromRow" I get all the SuperColumns as I expected: sorted by TimeUUID. Why it does not happen the same with the Rows? I'm confused. TIA for any help. Best Regards Carlo