You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jun Rao (JIRA)" <ji...@apache.org> on 2009/05/22 18:12:45 UTC

[jira] Commented: (CASSANDRA-196) Doing a descending range still returns columns in ascending order

    [ https://issues.apache.org/jira/browse/CASSANDRA-196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12712147#action_12712147 ] 

Jun Rao commented on CASSANDRA-196:
-----------------------------------

To fix the ordering of the returned result, we can reverse the returned list just before returning the thrift call, if the order is descending.

In terms of I/O, it is always better to fetch a group of columns from SSTable (instead of a column at a time). We can think about deserielizing a column at a time from the buffer. Doing this for descending order is bit difficult, but may still be possible.


> Doing a descending range still returns columns in ascending order
> -----------------------------------------------------------------
>
>                 Key: CASSANDRA-196
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-196
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Jonathan Ellis
>
> If I do
>         result = table.getSliceFrom(row, "Standard1:col5", false, 2);
>         cf = result.getColumnFamily("Standard1");
> I expect to get back columns in the order 5, 4, 3 (at the thrift level, it's turned into a list) but instead I get 3, 4, 5 because using a CF as the return vehicle re-sorts them by the standard comparator.
> The simplest solution is to allow user-defined column ordering as in CASSANDRA-185 and always return columns in that order (i.e., remove the ascending bool).  This also allows us to make the columngroup fetching more efficient in the best case (deserializing one column at a time instead of a group at a time).
> OTOH using one index to allow fetching items relatively efficiently in either directly is cool.  But my gut says it's relatively uncommon to want to access in both directions at once, and even more uncommon to not be able to do a reverse() on the client side (because of data volume, for instance).  Forcing a separate CF for this special case of a special case might be worth the tradeoff.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.