[ https://issues.apache.org/jira/browse/CASSANDRA-1142?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Brandon Williams updated CASSANDRA-1142:
----------------------------------------
Attachment: 1142.txt
Patch to change schema as described. A thought, though: perhaps we should either store the
token instead of ep, or use a lower value than Integer.MAX_VALUE for gcBefore, since with
CASSANDRA-1118 it seems like a hint could be stored for a very long time.
> 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.
|