cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Ferland <>
Subject Re: Do I need to run repair and compaction every node?
Date Tue, 14 Apr 2015 06:43:54 GMT
Just read the source and well… yup. I’m guessing now that the options are indeed only rolling
repair on each node (with -pr stopping the duplicate work) or -st -9223372036854775808 -et
9223372036854775807 to actually cover all ranges. I didn’t walk through to test that, though.

Glad 3.0 is getting a little bit of love on improving repairs and communications / logging
about them.


> On Apr 13, 2015, at 3:45 PM, Robert Coli <> wrote:
> On Mon, Apr 13, 2015 at 3:33 PM, Jeff Ferland < <>>
> Nodetool repair -par: covers all nodes, computes merkle trees for each node at the same
time. Much higher IO load as every copy of a key range is scanned at once. Can be totally
OK with SSDs and throughput limits.  Only need to run the command one node.
> No? -par is just a performance (of repair) de-optimization, intended to improve service
time during repair. Doing -par without -pr on a single node doesn't repair your entire cluster.
> Consider the following 7 node cluster, without vnodes :
> A B C D E F G
> RF=3
> You run a repair on node D, without -pr.
> D is repaired against B's tertiary replicas.
> D is repaired against C's secondary replicas.
> E is repaired against D's secondary replicas.
> F is repaired against D's tertiary replicas.
> Nodes A and G are completely unaffected and unrepaired, because D does not share any
ranges with them.
> repair with or without -par only covers all *replica* nodes. Even with vnodes, you still
have to run it on almost all nodes in most cases. Which is why most users should save themselves
the complexity and just do a rolling -par -pr on all nodes, one by one.
> =Rob

View raw message