Let's say I have a cluster of three nodes with (for simplicity) a replication factor of 1. Let's call the nodes A, B and C.
According to the ring, the partition key X should be stored on A. However, due to a database recovery, the data for partition key X has ended up on node B (and A doesn't store X at all).
Question: If I issue nodetool repair
, will it make sure that partition key X ends up on A?
I understand, that the real way of doing the database recovery would be to use something like sstableloader
, however due to unforeseen circumstances doing the above might be an easier solution for me (if it works!).
You can't use repairs for clusters with replication factor 1. It just doesn't make sense for Cassandra to repair data across nodes if each node exclusively owns his own token range. Using sstableloader
would be the cleaner solution in this case.