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

Stu Hood commented on CASSANDRA-193:
------------------------------------

More thoughts (in no particular order, and probably disagreeing with previous 
decisions):
 1. Since Memtables are always flushed after a bounded period (I think?) it is 
possible to completely ignore them.
 2. Due to 1, invalidating a range for every Memtable change is dumb/overkill. 
It would be much more efficient to only invalidate during minor compactions.
 3. Again, due to 1, we only care about the data affected during a major 
compaction, so we can validate the tree during every major compaction.

If we hook tree validation into major compactions:
 * Handling TreeRequests/TreeResponses would be queued until the next major 
compaction,
 * The compactor would acquire a lock on the tree for the CF, validate it, and 
then handle outstanding TreeRequests/TreeResponses.

> Proactive repair
> ----------------
>
>                 Key: CASSANDRA-193
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-193
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Stu Hood
>             Fix For: 0.5
>
>         Attachments: CASSANDRA-193.diff
>
>
> Currently cassandra supports "read repair," i.e., lazy repair when a read is 
> done.  This is better than nothing but is not sufficient for some cases (e.g. 
> catastrophic node failure where you need to rebuild all of a node's data on a 
> new machine).
> Dynamo uses merkle trees here.  This is harder for Cassandra given the CF 
> data model but I suppose we could just hash the serialized CF value.

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

Reply via email to