0

We have a cluster of 3 Cassandra 2.1 nodes in Datastax Enterprise; we had to replace one of our nodes that had a hardware failure. When we added the third node, it immediately started to serve requests before it had completed data synchronization.

My question: Is there a way to mark the node as not available until we know replication is complete? We can't have this machine in our production rotation. I took the node down but while it's down its not backfilling data.

Please let me know, thanks,

Bob Glassett

  • This isn't really an issue. A node can act as a coordinator at any time. The node won't serve data until it's ready. This was argued over on the cassandra mailing list recently. See [this thread](http://www.mail-archive.com/user@cassandra.apache.org/msg43426.html) – LHWizard Sep 01 '15 at 13:06

2 Answers2

0

Try starting the node with following option

-Djoin_ring=false

After completing required task on your node, add the node to the ring

nodetool join <options>
  • We tried this but the node auto-joined the ring anyway. is there a part of the datastax documents that outlines the process a little more clearly? – Robert Glassett Sep 01 '15 at 04:55
0

The node can act as a coordinator (The node that determines which nodes in the ring should get the request), but will not be considered a "data owner" until it has received all of its data. You could avoid the node being a coordinator by having your driver use the TokenAwarePolicy which means the driver will select a coordinator that owns the data being requested (and the new node technically isn't a "data owner" yet).

Chris Gerlt
  • 647
  • 4
  • 10