You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Philippe <wa...@gmail.com> on 2011/08/17 22:45:58 UTC

Repairs are both ways ?

Looking at the logs, I see that repairs stream data TO and FROM a node to
its replicas.
So on a 3-node RF=3 cluster, one only needs to launch repairs on a single
node right ?

Thanks

Re: Repairs are both ways ?

Posted by Philippe <wa...@gmail.com>.
>
> Because they are occurring in parallel.
>>
> So if a range is out of sync between A<->B and A<->C, A will receive the
> repairing stream from both (in any order) and will apply mutations based on
> that and the usual overwrite rules so necessarily exclude one of the
> repairing stream and that data will not be reparied on the remote node. Is
> that it ?
>
Still thinking of this : wouldn't this explain why multiple repairs in a row
on the same node (but not on the others) result in constant out-of-syncs ?
Node A is out of sync from B & C but B & C are out of sync with each other
so once A repairs with B (or C) ,the next repair will again show it out of
sync with the other node but it will ignore its stream since it's "out of
date".

Re: Repairs are both ways ?

Posted by Philippe <wa...@gmail.com>.
>
> Because they are occurring in parallel.
>
So if a range is out of sync between A<->B and A<->C, A will receive the
repairing stream from both (in any order) and will apply mutations based on
that and the usual overwrite rules so necessarily exclude one of the
repairing stream and that data will not be reparied on the remote node. Is
that it ?

Re: Repairs are both ways ?

Posted by Jonathan Ellis <jb...@gmail.com>.
Because they are occurring in parallel.

On Wed, Aug 17, 2011 at 5:32 PM, Philippe <wa...@gmail.com> wrote:
>> Almost, but not quite: if you have nodes A,B,C and repair A, it will
>> transfer A<->B, A<->C, but not B<->C.
>
> But on a 3 node cluster once you do A<->B & A<->C, why don't you
> transitively get B<->C ?
> Thanks



-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of DataStax, the source for professional Cassandra support
http://www.datastax.com

Re: Repairs are both ways ?

Posted by Philippe <wa...@gmail.com>.
>
> Almost, but not quite: if you have nodes A,B,C and repair A, it will
> transfer A<->B, A<->C, but not B<->C.
>
But on a 3 node cluster once you do A<->B & A<->C, why don't you
transitively get B<->C ?

Thanks

Re: Repairs are both ways ?

Posted by Jonathan Ellis <jb...@gmail.com>.
Almost, but not quite: if you have nodes A,B,C and repair A, it will
transfer A<->B, A<->C, but not B<->C.

https://issues.apache.org/jira/browse/CASSANDRA-2610 is open to make
this match your intuition.

On Wed, Aug 17, 2011 at 3:45 PM, Philippe <wa...@gmail.com> wrote:
> Looking at the logs, I see that repairs stream data TO and FROM a node to
> its replicas.
> So on a 3-node RF=3 cluster, one only needs to launch repairs on a single
> node right ?
> Thanks



-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of DataStax, the source for professional Cassandra support
http://www.datastax.com