incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Lebresne <sylv...@datastax.com>
Subject Re: Sorting in time order without using TimeUUID type column names
Date Thu, 03 Feb 2011 12:13:52 GMT
On Thu, Feb 3, 2011 at 11:27 AM, Aditya Narayan <adynnn@gmail.com> wrote:

> Hey all,
>
> I want to store some columns that are reminders to the users on my
> application, in time sorted order in a row(timeline row of the user).
>
> Would it be recommended to store these reminder columns in the
> timeline row with column names like: combination of timestamp(of time
> when the reminder gets due) + UserId+ Reminders Count of that user;
> Column Name= <TimestampOfDueTimeInFuture>: <UserId> :
> <ReminderCountOfThisUser>
>

If you have one row by user (which is a good idea), why keep the UserId in
the column name ?


> Then what comparator could I use to sort them in order of the their
> due time ? This comparator should be able to sort no. in descending
> order.(I guess ascii type would do the opposite order) (Reminders need
> to be sorted in the timeline in the order of their due time.)
>

*The* solution is write a custom comparator.
Have a look at http://www.datastax.com/docs/0.7/data_model/column_families
and http://www.sodeso.nl/?p=421 for instance.

As a side note, the fact that the comparator sort in ascending order when
you
need descending order would be that much of a problem, since you can always
do slice queries in reversed order. But even then, asciiType is not a very
satisfying solution as you would have to be careful about the padding of
your
timestamp for it to work correctly. So again, custom comparator is the way
to go.

Basically I am trying to avoid 16 bytes long timeUUID first because
> they are too long and the above defined key pattern is guaranteeing me
> a unique key/Id for the reminder row always.
>
>
> Thanks
> Aditya Narayan
>

--
Sylvain

Mime
View raw message