On Tue, Sep 8, 2015 at 2:39 PM, horschi <hors...@gmail.com> wrote:

> I tried to set up a new node with join_ring=false once. In my test that
> node did not pick a token in the ring. I assume running repair or rebuild
> would not do anything in that case: No tokens = no data. But I must admit:
> I have not tried running rebuild.
>

I admit I haven't been following this thread closely, perhaps I have missed
what exactly it is you're trying to do.

It's possible you'd need to :

1) join the node with auto_bootstrap=false
2) immediately stop it
3) re-start it with join_ring=false

To actually use repair or rebuild in this way.

However, if your goal is to create a new data-center and rebuild a node
there without any risk of reading from that node while creating the new
data center, you can just :

1) create nodes in new data-center, with RF=0 for that DC
2) change RF in that DC
3) run rebuild on new data-center nodes
4) while doing so, don't talk to new data-center coordinators from your
client
5) and also use LOCAL_ONE/LOCAL_QUORUM to avoid cross-data-center reads
from your client
6) modulo the handful of current bugs which make 5) currently imperfect

What problem are you encountering with this procedure? If it's this ...

I've learned from experience that the node immediately joins the cluster,
> and starts accepting reads (from other DCs) for the range it owns.


This seems to be the incorrect assumption at the heart of the confusion.
You "should" be able to prevent this behavior entirely via correct use of
ConsistencyLevel and client configuration.

In an ideal world, I'd write a detailed blog post explaining this... :/ in
my copious spare time...

=Rob

Reply via email to