You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jacek Lewandowski (JIRA)" <ji...@apache.org> on 2013/09/03 16:48:51 UTC

[jira] [Comment Edited] (CASSANDRA-5972) Reduce the amount of data to be transferred during repair

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

Jacek Lewandowski edited comment on CASSANDRA-5972 at 9/3/13 2:47 PM:
----------------------------------------------------------------------

Yes, that does assume a bunch of things. I know that it is far more complicated than the current solution. And, I agree that a huge advantage of the solution proposed in https://issues.apache.org/jira/browse/CASSANDRA-3200 is its rather straightforward implementation, especially in comparison to the one described here. 

However, I've found it difficult to prove that the my solution is worse :)

For example, in a situation where one of n+1 replicas has outdated sub-range R (and the rest are in sync), the procedure from C*-3200 will initiate n+1 data transfers. With the algorithm described here, we would require only one data transfer with a probability (n-1)/n, or 2 data transfers with a probability 1/n. It depends on which node starts the sequence.  

                
      was (Author: jlewandowski):
    Yes, that does assume a bunch of things. I know that it is far more complicated than the current solution. And, I agree that a huge advantage of the solution proposed in https://issues.apache.org/jira/browse/CASSANDRA-3200 is its rather straightforward implementation, especially in comparison to the one described here. 

However, I've found it difficult to prove that the my solution is worse :)

For example, in a situation where one of n+1 replicas has outdated sub-range R, the procedure from C*-3200 will initiate n+1 data transfers. With the algorithm described here, we would require only one data transfer with a probability (n-1)/n, or 2 data transfers with a probability 1/n. It depends on which node starts the sequence.  

                  
> Reduce the amount of data to be transferred during repair
> ---------------------------------------------------------
>
>                 Key: CASSANDRA-5972
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5972
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Jacek Lewandowski
>            Priority: Minor
>
> Currently, when a validator finds a token range different in n replicas, data streams are initiated simultaneously between each possible pair of these n nodes, in both directions. It yields n*(n-1) data stream in total. 
> It can be done in a sequence - Replica[1] -> R[2], R[2] -> R[3], ... , R[n-1] -> R[n]. After this process, the data in R[n] are up to date. Then, we continue: R[n] -> R[1], R[1] -> R[2], ... , R[n-2] -> R[n-1]. The active repair is done after 2*(n-1) data transfers performed sequentially in 2*(n-1) steps.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira