As everyone would agree, Cassandra repairs are necessary but are very expensive and failure prone, gets stuck most of the time if any node in the cluster go down while the repair is running on any other node in the cluster. I am running full sequential repair on primary range using the following command in a rolling fashion:
node repair -pr -full -seq
But have a doubt, Is it enough to run this repair on every node of a data-center (I have 4 different data-centers) or is it required to be run on every node of the whole cluster? I found some documents on this topic, but the language doesn't answer this question properly. For example 3.1 Primary range repair
With repair -pr -full you must run repair on every node in the cluster. See this blog post I wrote a couple years ago for a detailed description of why.
Update: I was actually wrong here thinking ring as two DCs instead of single, the actual token Ring is more of:
| DC | Node | Token |
|-----|------|-------|
| DC1 |node1 | 1 |
| DC2 |node2 | 5 |
| DC1 |node3 | 10 |
| DC2 |node4 | 15 |
| DC1 |node5 | 20 |
| DC2 |node6 | 25 |
The primary range for node4 here is 11-15, not 6-15 (which is the primary range + local ranges). You must do -pr on each node. Deleting original so it doesn't cause any confusion.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With