You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by dc...@apache.org on 2020/09/25 04:19:43 UTC
[cassandra] branch cassandra-3.11 updated (0361d53 -> 0f46c90)
This is an automated email from the ASF dual-hosted git repository.
dcapwell pushed a change to branch cassandra-3.11
in repository https://gitbox.apache.org/repos/asf/cassandra.git.
from 0361d53 Avoid failing compactions with very large partitions
add 5a39ff4 Avoid failing compactions with very large partitions
new 8a4c1d7 Add flag to ignore unreplicated keyspaces during repair
new 0f46c90 Merge branch 'cassandra-3.0' into cassandra-3.11
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
CHANGES.txt | 2 +
.../apache/cassandra/repair/RepairRunnable.java | 29 ++++
.../cassandra/repair/messages/RepairOption.java | 13 +-
.../apache/cassandra/service/StorageService.java | 4 +-
.../apache/cassandra/tools/nodetool/Repair.java | 5 +
.../distributed/test/RepairOperationalTest.java | 163 +++++++++++++++++++++
6 files changed, 212 insertions(+), 4 deletions(-)
create mode 100644 test/distributed/org/apache/cassandra/distributed/test/RepairOperationalTest.java
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org
[cassandra] 01/01: Merge branch 'cassandra-3.0' into cassandra-3.11
Posted by dc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
dcapwell pushed a commit to branch cassandra-3.11
in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit 0f46c90d1a72f1c31c00ea617697a5565e97f30c
Merge: 0361d53 8a4c1d7
Author: David Capwell <dc...@apache.org>
AuthorDate: Thu Sep 24 21:16:53 2020 -0700
Merge branch 'cassandra-3.0' into cassandra-3.11
CHANGES.txt | 2 +
.../apache/cassandra/repair/RepairRunnable.java | 29 ++++
.../cassandra/repair/messages/RepairOption.java | 13 +-
.../apache/cassandra/service/StorageService.java | 4 +-
.../apache/cassandra/tools/nodetool/Repair.java | 5 +
.../distributed/test/RepairOperationalTest.java | 163 +++++++++++++++++++++
6 files changed, 212 insertions(+), 4 deletions(-)
diff --cc CHANGES.txt
index b5b0cbc,5f326ce..189aec4
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,13 -1,9 +1,15 @@@
-3.0.23:
+3.11.9
* Avoid failing compactions with very large partitions (CASSANDRA-15164)
- * Use IF NOT EXISTS for index and UDT create statements in snapshot schema files (CASSANDRA-13935)
+ * Make sure LCS handles duplicate sstable added/removed notifications correctly (CASSANDRA-14103)
++Merged from 3.0:
+ * Add flag to ignore unreplicated keyspaces during repair (CASSANDRA-15160)
-3.0.22:
+3.11.8
+ * Correctly interpret SASI's `max_compaction_flush_memory_in_mb` setting in megabytes not bytes (CASSANDRA-16071)
+ * Fix short read protection for GROUP BY queries (CASSANDRA-15459)
+ * Frozen RawTuple is not annotated with frozen in the toString method (CASSANDRA-15857)
+Merged from 3.0:
+ * Use IF NOT EXISTS for index and UDT create statements in snapshot schema files (CASSANDRA-13935)
* Fix gossip shutdown order (CASSANDRA-15816)
* Remove broken 'defrag-on-read' optimization (CASSANDRA-15432)
* Check for endpoint collision with hibernating nodes (CASSANDRA-14599)
diff --cc src/java/org/apache/cassandra/repair/messages/RepairOption.java
index 146ab64,5d56d3a..14fff97
--- a/src/java/org/apache/cassandra/repair/messages/RepairOption.java
+++ b/src/java/org/apache/cassandra/repair/messages/RepairOption.java
@@@ -45,8 -45,7 +45,9 @@@ public class RepairOptio
public static final String DATACENTERS_KEY = "dataCenters";
public static final String HOSTS_KEY = "hosts";
public static final String TRACE_KEY = "trace";
+ public static final String SUB_RANGE_REPAIR_KEY = "sub_range_repair";
+ public static final String PULL_REPAIR_KEY = "pullRepair";
+ public static final String IGNORE_UNREPLICATED_KS = "ignoreUnreplicatedKeyspaces";
// we don't want to push nodes too much for repair
public static final int MAX_JOB_THREADS = 4;
@@@ -137,7 -130,7 +138,8 @@@
boolean primaryRange = Boolean.parseBoolean(options.get(PRIMARY_RANGE_KEY));
boolean incremental = Boolean.parseBoolean(options.get(INCREMENTAL_KEY));
boolean trace = Boolean.parseBoolean(options.get(TRACE_KEY));
+ boolean pullRepair = Boolean.parseBoolean(options.get(PULL_REPAIR_KEY));
+ boolean ignoreUnreplicatedKeyspaces = Boolean.parseBoolean(options.get(IGNORE_UNREPLICATED_KS));
int jobThreads = 1;
if (options.containsKey(JOB_THREADS_KEY))
@@@ -175,7 -168,7 +177,7 @@@
}
}
- RepairOption option = new RepairOption(parallelism, primaryRange, incremental, trace, jobThreads, ranges, !ranges.isEmpty(), pullRepair);
- RepairOption option = new RepairOption(parallelism, primaryRange, incremental, trace, jobThreads, ranges, !ranges.isEmpty(), ignoreUnreplicatedKeyspaces);
++ RepairOption option = new RepairOption(parallelism, primaryRange, incremental, trace, jobThreads, ranges, !ranges.isEmpty(), pullRepair, ignoreUnreplicatedKeyspaces);
// data centers
String dataCentersStr = options.get(DATACENTERS_KEY);
@@@ -250,16 -228,16 +252,17 @@@
private final boolean trace;
private final int jobThreads;
private final boolean isSubrangeRepair;
+ private final boolean pullRepair;
+ private final boolean ignoreUnreplicatedKeyspaces;
private final Collection<String> columnFamilies = new HashSet<>();
private final Collection<String> dataCenters = new HashSet<>();
private final Collection<String> hosts = new HashSet<>();
private final Collection<Range<Token>> ranges = new HashSet<>();
- public RepairOption(RepairParallelism parallelism, boolean primaryRange, boolean incremental, boolean trace, int jobThreads, Collection<Range<Token>> ranges, boolean isSubrangeRepair, boolean pullRepair)
- public RepairOption(RepairParallelism parallelism, boolean primaryRange, boolean incremental, boolean trace, int jobThreads, Collection<Range<Token>> ranges, boolean isSubrangeRepair, boolean ignoreUnreplicatedKeyspaces)
++ public RepairOption(RepairParallelism parallelism, boolean primaryRange, boolean incremental, boolean trace, int jobThreads, Collection<Range<Token>> ranges, boolean isSubrangeRepair, boolean pullRepair, boolean ignoreUnreplicatedKeyspaces)
{
- if (FBUtilities.isWindows() &&
+ if (FBUtilities.isWindows &&
(DatabaseDescriptor.getDiskAccessMode() != Config.DiskAccessMode.standard || DatabaseDescriptor.getIndexAccessMode() != Config.DiskAccessMode.standard) &&
parallelism == RepairParallelism.SEQUENTIAL)
{
@@@ -275,7 -253,7 +278,8 @@@
this.jobThreads = jobThreads;
this.ranges.addAll(ranges);
this.isSubrangeRepair = isSubrangeRepair;
+ this.pullRepair = pullRepair;
+ this.ignoreUnreplicatedKeyspaces = ignoreUnreplicatedKeyspaces;
}
public RepairParallelism getParallelism()
@@@ -354,24 -331,7 +362,25 @@@
", dataCenters: " + dataCenters +
", hosts: " + hosts +
", # of ranges: " + ranges.size() +
+ ", pull repair: " + pullRepair +
+ ", ignore unreplicated keyspaces: "+ ignoreUnreplicatedKeyspaces +
')';
}
+
+ public Map<String, String> asMap()
+ {
+ Map<String, String> options = new HashMap<>();
+ options.put(PARALLELISM_KEY, parallelism.toString());
+ options.put(PRIMARY_RANGE_KEY, Boolean.toString(primaryRange));
+ options.put(INCREMENTAL_KEY, Boolean.toString(incremental));
+ options.put(JOB_THREADS_KEY, Integer.toString(jobThreads));
+ options.put(COLUMNFAMILIES_KEY, Joiner.on(",").join(columnFamilies));
+ options.put(DATACENTERS_KEY, Joiner.on(",").join(dataCenters));
+ options.put(HOSTS_KEY, Joiner.on(",").join(hosts));
+ options.put(SUB_RANGE_REPAIR_KEY, Boolean.toString(isSubrangeRepair));
+ options.put(TRACE_KEY, Boolean.toString(trace));
+ options.put(RANGES_KEY, Joiner.on(",").join(ranges));
+ options.put(PULL_REPAIR_KEY, Boolean.toString(pullRepair));
+ return options;
+ }
}
diff --cc src/java/org/apache/cassandra/service/StorageService.java
index ab30bfc,69e337e..70900bc
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@@ -3498,7 -3167,7 +3498,7 @@@ public class StorageService extends Not
parallelism = RepairParallelism.PARALLEL;
}
-- RepairOption options = new RepairOption(parallelism, primaryRange, !fullRepair, false, 1, Collections.<Range<Token>>emptyList(), false, false);
++ RepairOption options = new RepairOption(parallelism, primaryRange, !fullRepair, false, 1, Collections.<Range<Token>>emptyList(), false, false, false);
if (dataCenters != null)
{
options.getDataCenters().addAll(dataCenters);
@@@ -3590,7 -3259,7 +3590,7 @@@
"The repair will occur but without anti-compaction.");
Collection<Range<Token>> repairingRange = createRepairRangeFrom(beginToken, endToken);
-- RepairOption options = new RepairOption(parallelism, false, !fullRepair, false, 1, repairingRange, true, false);
++ RepairOption options = new RepairOption(parallelism, false, !fullRepair, false, 1, repairingRange, true, false, false);
if (dataCenters != null)
{
options.getDataCenters().addAll(dataCenters);
diff --cc src/java/org/apache/cassandra/tools/nodetool/Repair.java
index 350601a,928cae8..180748d
--- a/src/java/org/apache/cassandra/tools/nodetool/Repair.java
+++ b/src/java/org/apache/cassandra/tools/nodetool/Repair.java
@@@ -81,9 -81,9 +81,12 @@@ public class Repair extends NodeToolCm
@Option(title = "trace_repair", name = {"-tr", "--trace"}, description = "Use -tr to trace the repair. Traces are logged to system_traces.events.")
private boolean trace = false;
+ @Option(title = "pull_repair", name = {"-pl", "--pull"}, description = "Use --pull to perform a one way repair where data is only streamed from a remote node to this node.")
+ private boolean pullRepair = false;
+
+ @Option(title = "ignore_unreplicated_keyspaces", name = {"-iuk","--ignore-unreplicated-keyspaces"}, description = "Use --ignore-unreplicated-keyspaces to ignore keyspaces which are not replicated, otherwise the repair will fail")
+ private boolean ignoreUnreplicatedKeyspaces = false;
+
@Override
public void execute(NodeProbe probe)
{
@@@ -111,7 -111,8 +114,9 @@@
options.put(RepairOption.JOB_THREADS_KEY, Integer.toString(numJobThreads));
options.put(RepairOption.TRACE_KEY, Boolean.toString(trace));
options.put(RepairOption.COLUMNFAMILIES_KEY, StringUtils.join(cfnames, ","));
+ options.put(RepairOption.PULL_REPAIR_KEY, Boolean.toString(pullRepair));
+ options.put(RepairOption.IGNORE_UNREPLICATED_KS, Boolean.toString(ignoreUnreplicatedKeyspaces));
+
if (!startToken.isEmpty() || !endToken.isEmpty())
{
options.put(RepairOption.RANGES_KEY, startToken + ":" + endToken);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org