cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tyler Hobbs <ty...@datastax.com>
Subject Re: Datastructure time tracking
Date Sat, 19 Nov 2011 04:38:32 GMT
On Fri, Nov 18, 2011 at 1:59 PM, RobinUs2 <robin@us2.nl> wrote:

> We should be able to:
> - find all time records from all users within a given project (with
> optionally a certain date range)
>

You'll need a timeline per project.  I would use one row per day, week, or
month, depending on the size.  Your row keys could be something like
'fooproject:2011-11-18'.  The column names could be timestamps or
TimeUUIDs, which will cause the columns in the row to be chronologically
ordered.


> - find total time per task
>

One row per taskID, with each column being an entry that contributes to the
total time for that project.  You would need to read the entire row and
calculate the sum client-side.  Depending on how big these might get, you
might want a process that periodically processes the rows and reduces them
down to their current sum (or you might build it into your read behavior --
a write after read, if you will -- depending on your requirements).  I'm
assuming you want exact numbers here, so the built-in counters probably
aren't a suitable option.


> - find all time records from user X (with optionally a certain date range)
>

This will look almost identical to the project timeline described above.
You could probably split the timelines into bigger chunks, though (like one
month per row).

As I understand from your answer this would require atleast 3 (or 5?) CF's
> for the queries?
>

Correct, it looks like you would need 3 CFs for this set of queries.

Hopefully that helps to illustrate the thought process.

-- 
Tyler Hobbs
DataStax <http://datastax.com/>

Mime
View raw message