Hi -

From what I understand, Peter's recommendation should work for you. They have both worked for me. No need to copy anything by hand on the new node. Bootstrap/repair does that for you. From the Wiki:


If a node goes down entirely, then you have two options:

(Recommended approach) Bring up the replacement node with a new IP address, Set initial token to (failure node's token) - 1 and AutoBootstrap set to true in cassandra.yaml (storage-conf.xml for 0.6 or earlier). This will place the replacement node in front of the failure node. Then the bootstrap process begins. While this process runs, the node will not receive reads until finished. Once this process is finished on the replacement node, run nodetool removetoken once, supplying the token of the dead node, and nodetool cleanup on each node. You can obtain the dead node's token by running nodetool ring on any live node, unless there was some kind of outage, and the others came up but not the down one -- in that case, you can retrieve the token from the live nodes' system tables.

(Alternative approach) Bring up a replacement node with the same IP and token as the old, and run nodetool repair. Until the repair process is complete, clients reading only from this node may get no data back. Using a higher ConsistencyLevel on reads will avoid this.

On , Anand Somani <[email protected]> wrote:
Let me be specific on lost data -> lost a replica , the other 2 nodes have replicas

I am running read/write at quorum. At this point I have turned off my clients from talking to this node. So if that is the case I can potentially just nodetool repair (without changing IP). But would it be better if I copied over the data/mykeyspace from another replica and then run repair?


On Fri, Aug 19, 2011 at 11:20 AM, Peter Schuller [email protected]> wrote:

> ok, so we just lost the data on that node. are building the raid on it, but

> once it is up what is the best way to bring it back in the cluster




You're saying the raid failed and data is gone?



> just let it come up and run nodetool repair

> copy data from another node and then run nodetool repair,

>

> do I still need to run repair immeidately if I copy the data? Want to

> schedule repair for later during non peak hours?




If data is gone, the safe way is to have it re-join the cluster:



http://wiki.apache.org/cassandra/Operations#Handling_failure



But note that in your case, since you've lost data (if I understand

you), it's effectively a completely new node. That means you either

want to switch it's IP address and go for the "recommended" approach,

or do the other option but that WILL mean the node is serving reads

with incorrect data, violating the consistency. Depending on your

application, this may or may not be the case.



Unless it's a major problem for you, I suggest bringing it back in

with a new IP address and make it be treated like a completely fresh

replacement node. Probably decreases the risk of mistakes happening.



As for the other stuff about repair in the e-mail you pasted; periodic

repairs are part of regular cluster maintenance. See:



http://wiki.apache.org/cassandra/Operations#Frequency_of_nodetool_repair



--

/ Peter Schuller (@scode on twitter)





Reply via email to