You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (Issue Comment Edited) (JIRA)" <ji...@apache.org> on 2012/04/11 15:43:18 UTC

[jira] [Issue Comment Edited] (CASSANDRA-3974) Per-CF TTL

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

Jonathan Ellis edited comment on CASSANDRA-3974 at 4/11/12 1:42 PM:
--------------------------------------------------------------------

bq. Part of the code I changed was in CFMetaData's toThrift and fromThrift methods

Let me back up.  I can see two main approaches towards respecting the per-CF ttl:

# Set the column TTL to the max(column, CF) ttl on insert; then the rest of the code doesn't have to know anything changed
# Take max(column, CF) ttl during operations like compaction, and leave column ttl (which is to say, ExpiringColumn objects) to specify *only* the column TTL

The code in UpdateStatement led me to believe you're going with option 1.  So what I meant by my comment was, you need to make a similar change for inserts done over Thrift RPC, as well.  (to/from Thrift methods are used for telling Thrift clients about the schema, but are not used for insert/update operations.)

Does that help?

bq. Sorry, I'm not sure to which part of the code you're referring

CFMetadata.getTimeToLive.  Sounds like you addressed this anyway.
                
      was (Author: jbellis):
    bq. Part of the code I changed was in CFMetaData's toThrift and fromThrift methods

Let me back up.  I can see two main approaches towards respecting the per-CF ttl:

# Set the column TTL to the max(column, CF) ttl on insert; then the rest of the code doesn't have to know anything changed
# Take max(column, CF) ttl during operations like compaction, and leave column ttl to specify *only* the column TTL

The code in UpdateStatement led me to believe you're going with option 1.  So what I meant by my comment was, you need to make a similar change for inserts done over Thrift RPC, as well.  (to/from Thrift methods are used for telling Thrift clients about the schema, but are not used for insert/update operations.)

Does that help?

bq. Sorry, I'm not sure to which part of the code you're referring

CFMetadata.getTimeToLive.  Sounds like you addressed this anyway.
                  
> Per-CF TTL
> ----------
>
>                 Key: CASSANDRA-3974
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3974
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>            Assignee: Kirk True
>            Priority: Minor
>             Fix For: 1.2
>
>         Attachments: trunk-3974.txt
>
>
> Per-CF TTL would allow compaction optimizations ("drop an entire sstable's worth of expired data") that we can't do with per-column.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira