[
https://issues.apache.org/jira/browse/CASSANDRA-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12777586#action_12777586
]
Jun Rao commented on CASSANDRA-193:
-----------------------------------
Now that I understood how the code really works, I don't have any big issue
with the patch. Some comments below:
1. To get us started, can we trigger a Merkle tree repair manually from
nodeprobe. Something like the following:
trigger Merkle tree repair for a Keyspace/CF on a node from nodeprobe
the range to be fixed is (token from left node, token from this node]
each replica of this range computes Merkle tree independently, in parallel,
through a full scan of all SSTables.
when done, Merkle trees are compared and repairs triggered, if necessary.
4. The code needs to be better documented. You need to explain the n-ary tree,
the complete binary tree and the relationship btw them. Attach the diagram you
uploaded will be useful.
5. You need to name variables and methods better. For example, MerkleTree.SELF
and MerkleTree.CHILD are not very intuitive. How about FullyInconsisten and
PartiallyInconsistent. Ditto for ChildMatch.container().
6. In MerkleTree.difference(), shouldn't you add a case that returns an empty
diff when the trees are consistent?
> 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: 193-1-tree-preparation.diff, 193-2-tree.diff,
> 193-3-aes-preparation.diff, 193-4-aes.diff, mktree-and-binary-tree.png
>
>
> 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.