You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Juho Mäkinen <ju...@gmail.com> on 2014/10/22 14:39:20 UTC

Question on how to run incremental repairs

I'm having problems understanding how incremental repairs are supposed to
be run.

If I try to do "nodetool repair -inc" cassandra will complain that "It is
not possible to mix sequential repair and incremental repairs". However it
seems that running "nodetool repair -inc -par" does the job, but I couldn't
be sure if  this is the correct (and only?) way to run incremental repairs?

Previously I ran repairs with "nodetool repair -pr" on each node at a time,
so that I could minimise the performance hit. I've understood that doing a
single "nodetool repair -inc -par" command runs it on all machines in the
entire cluster, so doesn't that cause a big performance penalty? Can I run
incremental repairs on one node at a time?

If running "nodetool repair -inc -par" every night in a single node is
fine, should I still spread them out so that each node takes a turn
executing this command each night?

Last question is a bit deeper: What I've understood is that incremental
repairs don't do repairs on SSTables which have already been repaired, but
doesn't this mean that these repaired SSTables can't be checked towards
missing or incorrect data?

Thanks.

Re: Question on how to run incremental repairs

Posted by Robert Coli <rc...@eventbrite.com>.
On Wed, Oct 22, 2014 at 5:47 AM, Marcus Eriksson <kr...@gmail.com> wrote:

>
> no, if you get a corrupt sstable for example, you will need to run an old
> style repair on that node (without -inc).
>

As a general statement, if you get a corrupt SSTable, restoring it from a
backup (with the node down) should be done before repair.

=Rob
http://twitter.com/rcolidba

Re: Question on how to run incremental repairs

Posted by Marcus Eriksson <kr...@gmail.com>.
On Wed, Oct 22, 2014 at 2:39 PM, Juho Mäkinen <ju...@gmail.com>
wrote:

> I'm having problems understanding how incremental repairs are supposed to
> be run.
>
> If I try to do "nodetool repair -inc" cassandra will complain that "It is
> not possible to mix sequential repair and incremental repairs". However it
> seems that running "nodetool repair -inc -par" does the job, but I couldn't
> be sure if  this is the correct (and only?) way to run incremental repairs?
>
> yes, you need to run with -par


> Previously I ran repairs with "nodetool repair -pr" on each node at a
> time, so that I could minimise the performance hit. I've understood that
> doing a single "nodetool repair -inc -par" command runs it on all machines
> in the entire cluster, so doesn't that cause a big performance penalty? Can
> I run incremental repairs on one node at a time?
>

repair still works the same way, you can do with -pr, and no, repair -inc
-par does not run on all nodes, it repairs all ranges that the node you are
executing it on owns, so, if you have rf = 3 you will need to run repair
(without -pr) on every third node

>
> If running "nodetool repair -inc -par" every night in a single node is
> fine, should I still spread them out so that each node takes a turn
> executing this command each night?
>

use your old schedule, repair works the same way, just that incremental
repair does not include already repaired sstables


> Last question is a bit deeper: What I've understood is that incremental
> repairs don't do repairs on SSTables which have already been repaired, but
> doesn't this mean that these repaired SSTables can't be checked towards
> missing or incorrect data?
>

no, if you get a corrupt sstable for example, you will need to run an old
style repair on that node (without -inc).

>