cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stu Hood (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CASSANDRA-1142) redesign hinted handoff schema
Date Fri, 04 Jun 2010 16:14:56 GMT

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

Stu Hood commented on CASSANDRA-1142:
-------------------------------------

Also, it might make sense to take advantage of TTLs to handle cleaning up old hints. If we
consider the "gc_grace_seconds" time to effectively be a "max time out of sync", then it would
make sense to apply it to hints as well: if a node is down for longer than gc_grace_seconds,
then there wouldn't be a good reason to deliver hints to it, since it should be considered
dead.

> redesign hinted handoff schema
> ------------------------------
>
>                 Key: CASSANDRA-1142
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1142
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Brandon Williams
>             Fix For: 0.7
>
>         Attachments: 1142.txt
>
>
> Currently, the HH schema looks like this:
>  * For each table (keyspace), there is a row in the system hints CF.
>  * SuperColumns in that row are keys for which we have hinted data.
>  * Subcolumns names within that supercolumn are host IPs. Subcolumn values are always
empty.
>  * Instead, we store the row data "normally" in the application table it belongs in.
> This has the drawback that we need to scan the entire hints data set to deliver hints
to a given endpoint.  I propose instead we do this:
>  * Row keys are endpoints for which we have hints.
>  * SuperColumns in that row are keys for which we have hinted data.
>  * Subcolumns names within that supercolumn are Keyspace + CF names, joined with a '-'
(which is an illegal character in CF names, so it's safe to use here)
> This makes looking up hints for a single endpoint efficient, as well as making it so
we only have to read data from CFs for which we actually have data for the key.
> Actual row data continues to be stored in application tables.
> Makes sense to do this after CASSANDRA-1141.

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


Mime
View raw message