On Sat, Jul 20, 2013 at 7:30 AM, E S <tr1skl...@yahoo.com> wrote:

> I am trying to understand the best procedure for adding new nodes.  The
> one that I see most often online seems to have a hole where there is a low
> probability of permanently losing data.  I want to understand what I am
> missing in my understanding.
>

You aren't missing anything. Congratulations, you have deduced the
following bug :

https://issues.apache.org/jira/browse/CASSANDRA-2434

"Range movements violate consistency"

 I don't think this problem would normally happen without vnodes, because
> when doubling you would alternate the new nodes with the old nodes in the
> ring, so while quorum might not work until the final repair, "all" would,
> and a repair would solve the problem.  With vnodes though, some of the
> ranges will follow the pattern above (range ownership moving from A,B,C to
> D,E,F).
>

I believe this is correct, though adding nodes "between" other nodes is
just convention, there is nothing actually keeping you from being exposed
to 2434 if you do not do this.


> Am I missing something here?  If I'm right, I think the only way to avoid
> this is adding less then a quorum of new nodes (in this case 1) before
> doing a repair.  That would be painful since repairs take a while.
>

If you read/write at QUORUM, this is true. If you read/write at ONE, my
reading of 2434 is that any range movement is capable of losing data
because your data may be only on the node which has lost the range at the
end of the movement, which is not necessarily the host streaming its keys
to the bootstrapping node. Even running a repair before the movement only
reduces the chance of loss, it does not eliminate it.

=Rob

Reply via email to