storage_service: forceKeyspaceCompaction: add offStrategy option

To trigger offstrategy compaction. e.g. immediately after repair completes.
Otherwise, it is auto-triggered after a 5 minutes idle timeout.

Signed-off-by: Benny Halevy <bhalevy@scylladb.com>
This commit is contained in:
Benny Halevy 2021-08-01 10:25:59 +03:00
parent 5311e9bae3
commit 44fe527a42
2 changed files with 8 additions and 7 deletions

View File

@ -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<String, String> queryParams = new MultivaluedHashMap<String, String>();
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);
}
/**
@ -1698,10 +1699,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

View File

@ -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