On Wed, Mar 23, 2016 at 8:07 AM, Anubhav Kale <anubhav.k...@microsoft.com>
wrote:

> Suppose we change the racks on VMs on a running cluster. (We need to do
> this while running on Azure, because sometimes when the VM gets moved its
> rack changes).
>
> In this situation, new writes will be laid out based on new rack info on
> appropriate replicas. What happens for existing data ? Is that data moved
> around as well and does it happen if we run repair or on its own ?
>

First, you should understand this ticket if relying on rack awareness :

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

Second, in general nodes cannot move between racks.

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

Has some detailed explanations of what blows up if they do.

Note that if you want to preserve any of the data on the node, you need to :

1) bring it and have it join the ring in its new rack (during which time it
will serve incorrect reads due to missing data)
2) stop it
3) run cleanup
4) run repair
5) start it again

Can't really say that I recommend this practice, but it's better than
"rebootstrap it" which is the official advice. If you "rebootstrap it" you
decrease unique replica count by 1, which has a nonzero chance of
data-loss. The Coli Conjecture says that in practice you probably don't
care about this nonzero chance of data loss if you are running your
application in CL.ONE, which should be all cases where it matters.

=Rob

Reply via email to