Pelops moved to github several months ago...

https://github.com/s7/scale7-pelops/blob/master/src/main/java/org/scale7/cassandra/pelops/Selector.java#L1179

Cheers,
-- 
Dan Washusen
On Wednesday, 2 March 2011 at 3:35 AM, Matthew Dennis wrote: 
> I'm not really familiar with pelops code, but I found two implementations (~ 
> line 454 and ~ line 559) of getColumnsFromRows in Selector.java in pelops 
> trunk.
> 
> The first uses a HashMap so it clearly isn't ordered, the second uses a 
> LinkedHashMap but it inserts the keys in the order returned by C* which we 
> already know isn't ordered.
> 
> See http://bit.ly/egZaXi for relevant code.
> 
> Like I said, I'm not really familiar with pelops so I could be completely off 
> on this, but it looks like if pelops was intending to preserve the order of 
> the requested keys that it's not actually doing it...
> 
> On Wed, Feb 23, 2011 at 3:44 PM, Dan Washusen <d...@reactive.org> wrote:
> > Hi Matthew,
> > As you mention the map returned from multiget_slice is not order 
> > preserving, Pelops is doing this on the client side...
> > 
> > Cheers,
> > Dan
> > 
> > -- 
> > Dan Washusen
> > Sent with Sparrow
> > On Wednesday, 23 February 2011 at 8:38 PM, Matthew Dennis wrote:
> > > The map returned by multiget_slice (what I suspect is the underlying 
> > > thrift call for getColumnsFromRows) is not a order preserving map, it's a 
> > > HashMap so the order of the returned results cannot be depended on.  Even 
> > > if it was a order preserving map, not all languages would be able to make 
> > > use of the results since not all languages have ordered maps (though 
> > > many, including Java, certainly do).
> > > 
> > > That being said, it would be fairly easy to change this on the C* side to 
> > > preserve the order the keys were requested in, though as mentioned not 
> > > all clients could take advantage of it.
> > > 
> > >  On Mon, Feb 21, 2011 at 4:09 PM, cbert...@libero.it <cbert...@libero.it> 
> > > wrote:
> > > > > 
> > > > > 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
> > > > > > > 
> > > > > > 
> > > > > > 
> > > > > 
> > > > > 
> > > 
> > > 
> > 
> 

Reply via email to