From 177c5a18334457c68b34af6da4eaa0c11aac5ac0 Mon Sep 17 00:00:00 2001 From: Dmitry Potepalov Date: Fri, 5 Jul 2024 15:15:46 +0200 Subject: [PATCH] Apply streaming_connections_per_host to decommission The streaming_connections_per_host parameter can be used to speed up CPU-bound bootstrap. Semantically there seems nothing wrong to use it during decommission as well instead of the hardcoded 1 connection. --- src/java/org/apache/cassandra/service/StorageService.java | 2 +- src/java/org/apache/cassandra/streaming/StreamPlan.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index aa849559d2..2a390159e6 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -5990,7 +5990,7 @@ private Future streamRanges(Map rangesT sessionsToStreamByKeyspace.put(keyspace, replicasPerEndpoint.build()); } - StreamPlan streamPlan = new StreamPlan(StreamOperation.DECOMMISSION); + StreamPlan streamPlan = new StreamPlan(StreamOperation.DECOMMISSION, DatabaseDescriptor.getStreamingConnectionsPerHost()); // Vinculate StreamStateStore to current StreamPlan to update transferred rangeas per StreamSession streamPlan.listeners(streamStateStore); diff --git a/src/java/org/apache/cassandra/streaming/StreamPlan.java b/src/java/org/apache/cassandra/streaming/StreamPlan.java index 9e79a5db4b..50b3764356 100644 --- a/src/java/org/apache/cassandra/streaming/StreamPlan.java +++ b/src/java/org/apache/cassandra/streaming/StreamPlan.java @@ -56,6 +56,11 @@ public StreamPlan(StreamOperation streamOperation) this(streamOperation, 1, false, NO_PENDING_REPAIR, PreviewKind.NONE); } + public StreamPlan(StreamOperation streamOperation, int connectionsPerHost) + { + this(streamOperation, connectionsPerHost, false, NO_PENDING_REPAIR, PreviewKind.NONE); + } + public StreamPlan(StreamOperation streamOperation, boolean connectSequentially) { this(streamOperation, 1, connectSequentially, NO_PENDING_REPAIR, PreviewKind.NONE);