[
https://issues.apache.org/jira/browse/CASSANDRA-5220?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14508815#comment-14508815
]
Marcus Olsson commented on CASSANDRA-5220:
------------------------------------------
I've done some work on this to make the repair handle multiple ranges at the
same time(attaching patch). Essentially what it does is that it finds the
common ranges for a set of nodes and repairs them all at the same time.
Assume we have three nodes A, B and C, and RF=2 containing the ranges:
A -> 1, 2, 3, 4
B -> 3, 4, 5, 6
C -> 1, 2, 5, 6
then if we issue a repair -pr on A it would create two repair sessions:
(A, B) -> (3, 4)
and
(A, C) -> (1, 2)
instead of one for each range:
(A, B) -> 3
(A, B) -> 4
(A, C) -> 1
(A, C) -> 2
The change is mostly centered around the new utility class MerkleTrees which is
a wrapper for multiple MerkleTree's and their associated ranges. This utility
class replaces the occurrences of the MerkleTree class in the validator phase
and the repair messages. The changes are non-backwards compatible, since the
repair job is sending multiple ranges and validation complete sends MerkleTrees
instead of MerkleTree.
> Repair improvements when using vnodes
> -------------------------------------
>
> Key: CASSANDRA-5220
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5220
> Project: Cassandra
> Issue Type: Improvement
> Components: Core
> Affects Versions: 1.2.0 beta 1
> Reporter: Brandon Williams
> Assignee: Yuki Morishita
> Labels: performance, repair
> Attachments: 5220-yourkit.png, 5220-yourkit.tar.bz2,
> cassandra-3.0-5220.patch
>
>
> Currently when using vnodes, repair takes much longer to complete than
> without them. This appears at least in part because it's using a session per
> range and processing them sequentially. This generates a lot of log spam
> with vnodes, and while being gentler and lighter on hard disk deployments,
> ssd-based deployments would often prefer that repair be as fast as possible.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)