I think that is more or less what Sylvain is proposing.  The main
downside is adding the extra 8 bytes for a long (or 4 for an int,
which should actually be plenty of resolution for this use case) to
each Column object.

On Wed, Jan 13, 2010 at 4:57 PM, Kelvin Kakugawa <kakug...@gmail.com> wrote:
> An alternative implementation that may be worth exploring would be to
> modify IColumn's isMarkedForDelete() method to check TTL.
>
> It probably wouldn't be as performant as straight dropping SSTables.
> You'd probably also need to periodically compact old tables to remove
> expired rows.  However, on the surface, it appears to be a more
> seamless and fine-grained approach to this problem.
>
> -Kelvin
>
> A little more background:
> db.IColumn is the shared interface that db.Column and db.SuperColumn
> implement.  db.Column's isMarkedForDelete() method only checks if a
> flag has been set, right now.  So, it would be relatively
> straightforward to slip some logic into that method to check if its
> timestamp has expired beyond some TTL.
>
> However, I suspect that there may be other methods that may need to be
> slightly modified, as well.  And, the compaction code would have to be
> inspected to make sure that old tables are periodically compacted to
> remove expired rows.
>
> On Wed, Jan 13, 2010 at 12:30 PM, Mark Robson <mar...@gmail.com> wrote:
>> I also agree: Some mechanism to expire rolling data would be really good if
>> we can incorporate it. Using the existing client interface, deleting old
>> data is very cumbersome.
>>
>> We want to store lots of audit data in Cassandra, this will need to be
>> expired eventually.
>>
>> Nodes should be able to do expiry locally without needing to talk to other
>> nodes in the cluster. As we have a timestamp on everything anyway, can we
>> not use that somehow?
>>
>> If we only ever append data rather than update it (or update it very
>> rarely), can we somehow store timestamp ranges in each sstable file and then
>> have the server know when it's time to expire one?
>>
>> I'm guessing here from my limited understanding of how Cassandra works.
>>
>> Mark
>>
>

Reply via email to