Don't repair system_distributed by default Patch by marcuse; reviewed by slebresne for CASSANDRA-9621
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2deb68ed Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2deb68ed Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2deb68ed Branch: refs/heads/trunk Commit: 2deb68ede4b1eaf45eddaeb15e3af704daa1bbff Parents: 44c7bde Author: Marcus Eriksson <marc...@apache.org> Authored: Mon Jun 22 09:55:05 2015 +0200 Committer: Marcus Eriksson <marc...@apache.org> Committed: Mon Jun 22 12:59:57 2015 +0200 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/tools/nodetool/Repair.java | 10 ++++++++++ 2 files changed, 11 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2deb68ed/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 4886850..45727f9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2 + * Don't repair system_distributed by default (CASSANDRA-9621) * Fix mixing min, max, and count aggregates for blob type (CASSANRA-9622) * Rename class for DATE type in Java driver (CASSANDRA-9563) * Duplicate compilation of UDFs on coordinator (CASSANDRA-9475) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2deb68ed/src/java/org/apache/cassandra/tools/nodetool/Repair.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/tools/nodetool/Repair.java b/src/java/org/apache/cassandra/tools/nodetool/Repair.java index 45b3d98..7d0e207 100644 --- a/src/java/org/apache/cassandra/tools/nodetool/Repair.java +++ b/src/java/org/apache/cassandra/tools/nodetool/Repair.java @@ -27,8 +27,12 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; + +import com.google.common.collect.Sets; import org.apache.cassandra.repair.RepairParallelism; +import org.apache.cassandra.repair.SystemDistributedKeyspace; import org.apache.cassandra.repair.messages.RepairOption; import org.apache.cassandra.tools.NodeProbe; import org.apache.cassandra.tools.NodeTool.NodeToolCmd; @@ -37,6 +41,8 @@ import org.apache.commons.lang3.StringUtils; @Command(name = "repair", description = "Repair one or more tables") public class Repair extends NodeToolCmd { + public final static Set<String> ONLY_EXPLICITLY_REPAIRED = Sets.newHashSet(SystemDistributedKeyspace.NAME); + @Arguments(usage = "[<keyspace> <tables>...]", description = "The keyspace followed by one or many tables") private List<String> args = new ArrayList<>(); @@ -86,6 +92,10 @@ public class Repair extends NodeToolCmd for (String keyspace : keyspaces) { + // avoid repairing system_distributed by default (CASSANDRA-9621) + if ((args == null || args.isEmpty()) && ONLY_EXPLICITLY_REPAIRED.contains(keyspace)) + continue; + Map<String, String> options = new HashMap<>(); RepairParallelism parallelismDegree = RepairParallelism.PARALLEL; if (sequential)