diff --git a/src/main/java/org/apache/cassandra/service/StorageService.java b/src/main/java/org/apache/cassandra/service/StorageService.java index 3281bac..83ad332 100644 --- a/src/main/java/org/apache/cassandra/service/StorageService.java +++ b/src/main/java/org/apache/cassandra/service/StorageService.java @@ -648,11 +648,12 @@ public class StorageService extends MetricsMBean implements StorageServiceMBean, * Forces major compaction of a single keyspace */ @Override - public void forceKeyspaceCompaction(String keyspaceName, String... columnFamilies) + public void forceKeyspaceCompaction(boolean offStrategy, String keyspaceName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException { - log(" forceKeyspaceCompaction(String keyspaceName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException"); + log(" forceKeyspaceCompaction(boolean offStrategy, String keyspaceName, String... columnFamilies) throws IOException, ExecutionException, InterruptedException"); MultivaluedMap queryParams = new MultivaluedHashMap(); APIClient.set_query_param(queryParams, "cf", APIClient.join(columnFamilies)); + APIClient.set_bool_query_param(queryParams, "offstrategy", offStrategy); client.post("/storage_service/keyspace_compaction/" + keyspaceName, queryParams); } @@ -660,7 +661,7 @@ public class StorageService extends MetricsMBean implements StorageServiceMBean, public void forceKeyspaceCompactionForTokenRange(String keyspaceName, String startToken, String endToken, String... tableNames) throws IOException, ExecutionException, InterruptedException { // TODO: actually handle token ranges. - forceKeyspaceCompaction(keyspaceName, tableNames); + forceKeyspaceCompaction(false, keyspaceName, tableNames); } /** @@ -1716,10 +1717,10 @@ public class StorageService extends MetricsMBean implements StorageServiceMBean, } @Override - public void forceKeyspaceCompaction(boolean splitOutput, String keyspaceName, String... tableNames) + public void forceKeyspaceCompaction(boolean splitOutput, boolean offStrategy, String keyspaceName, String... tableNames) throws IOException, ExecutionException, InterruptedException { // "splitOutput" afaik not relevant for scylla (yet?...) - forceKeyspaceCompaction(keyspaceName, tableNames); + forceKeyspaceCompaction(offStrategy, keyspaceName, tableNames); } @Override diff --git a/src/main/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/main/java/org/apache/cassandra/service/StorageServiceMBean.java index 915bfd1..7bd8c05 100644 --- a/src/main/java/org/apache/cassandra/service/StorageServiceMBean.java +++ b/src/main/java/org/apache/cassandra/service/StorageServiceMBean.java @@ -312,13 +312,13 @@ public interface StorageServiceMBean extends NotificationEmitter { /** * Forces major compaction of a single keyspace */ - public void forceKeyspaceCompaction(boolean splitOutput, String keyspaceName, String... tableNames) + public void forceKeyspaceCompaction(boolean splitOutput, boolean offStrategy, String keyspaceName, String... tableNames) throws IOException, ExecutionException, InterruptedException; /** * Forces major compaction of a single keyspace. */ - public void forceKeyspaceCompaction(String keyspaceName, String... tableNames) + public void forceKeyspaceCompaction(boolean offStrategy, String keyspaceName, String... tableNames) throws IOException, ExecutionException, InterruptedException; @Deprecated