Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add option for idle sleep milliseconds. #437

Merged
merged 1 commit into from
Aug 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions sbk-gem/src/main/java/io/gem/api/impl/SbkGem.java
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ public static RemoteResponse[] run(final String[] args, final String application

storageDrivers = storageDevice == null ? packageStore.getClassNames() : null;

params = new SbkGemParameters(usageLine, storageDrivers, loggerNames, gemConfig, sbmConfig.port);
params = new SbkGemParameters(usageLine, storageDrivers, loggerNames, gemConfig, sbmConfig.port, sbmConfig.idleMS);
logger.addArgs(params);
if (storageDevice != null) {
storageDevice.addArgs(params);
Expand Down Expand Up @@ -368,13 +368,15 @@ public static RemoteResponse[] run(final String[] args, final String application
ramArgsList.add(String.valueOf(logger.getMaxReaderIDs() > 0));
ramArgsList.add("-max");
ramArgsList.add(Integer.toString(params.getConnections().length));
ramArgsList.add("-millisecsleep");
ramArgsList.add(Integer.toString(params.getSbmIdleSleepMilliSeconds()));

final String[] ramArgs = ramArgsList.toArray(new String[0]);
Printer.log.info("Arguments to SBM: " + Arrays.toString(ramArgs));
Printer.log.info("Logger for SBM: " + ramLogger.getClass().getSimpleName());

ramParams = new SbmParameters(appName, params.getSbmPort(), params.getConnections().length,
new String[]{ramLogger.getClass().getSimpleName()});
params.getSbmIdleSleepMilliSeconds(), new String[]{ramLogger.getClass().getSimpleName()});
ramLogger.addArgs(ramParams);
try {
ramParams.parseArgs(ramArgs);
Expand Down
9 changes: 9 additions & 0 deletions sbk-gem/src/main/java/io/gem/params/GemParameters.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,15 @@ public sealed interface GemParameters extends Parameters permits GemParameterOpt
*/
int getSbmPort();


/**
* to get SBM idle milliseconds sleep.
*
* @return SBM idle milliseconds sleep.
*/
int getSbmIdleSleepMilliSeconds();


/**
* checks if parameters are copy.
*
Expand Down
18 changes: 13 additions & 5 deletions sbk-gem/src/main/java/io/gem/params/impl/SbkGemParameters.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ public final class SbkGemParameters extends SbkDriversParameters implements GemP
@Getter
private int sbmPort;

@Getter
private int sbmIdleSleepMilliSeconds;

/**
* This Constructor is responsible for initializing all values.
*
Expand All @@ -64,12 +67,15 @@ public final class SbkGemParameters extends SbkDriversParameters implements GemP
* @param loggers
* @param config NotNull GemConfig
* @param sbmPort int
* @param sbmIdleSleepMilliSeconds int
*/
public SbkGemParameters(String name, String[] drivers, String[] loggers, @NotNull GemConfig config, int sbmPort) {
public SbkGemParameters(String name, String[] drivers, String[] loggers, @NotNull GemConfig config, int sbmPort,
int sbmIdleSleepMilliSeconds) {
super(name, GemConfig.DESC, drivers, loggers);
this.config = config;
this.timeoutMS = config.timeoutSeconds * Time.MS_PER_SEC;
this.sbmPort = sbmPort;
this.sbmIdleSleepMilliSeconds = sbmIdleSleepMilliSeconds;
try {
this.localHost = InetAddress.getLocalHost().getHostName();
} catch (UnknownHostException ex) {
Expand All @@ -88,9 +94,10 @@ public SbkGemParameters(String name, String[] drivers, String[] loggers, @NotNul
addOption("copy", true, "Copy the SBK package to remote hosts; default: " + config.copy);
addOption("delete", true, "Delete SBK package after benchmark; default: " + config.delete);
addOption("localhost", true, "this local SBM host name, default: " + localHost);
addOption("sbmPort", true, "SBM port number; default: " + this.sbmPort);
addOption("sbmport", true, "SBM port number; default: " + this.sbmPort);
addOption("sbmsleepms", true, "SBM idle milliseconds to sleep; default: " + this.sbmIdleSleepMilliSeconds);
this.optionsArgs = new String[]{"-nodes", "-gemuser", "-gempass", "-gemport", "-sbkdir", "-sbkcommand",
"-copy", "-delete", "-localhost", "-sbmPort"};
"-copy", "-delete", "-localhost", "-sbmPort", "-sbmsleepms"};
this.parsedArgs = null;
}

Expand All @@ -108,14 +115,15 @@ public void parseArgs(String[] args) throws ParseException, IllegalArgumentExcep
config.sbkdir = getOptionValue("sbkdir", config.sbkdir);
config.sbkcommand = getOptionValue("sbkcommand", config.sbkcommand);
localHost = getOptionValue("localhost", localHost);
sbmPort = Integer.parseInt(getOptionValue("ramport", Integer.toString(sbmPort)));
sbmPort = Integer.parseInt(getOptionValue("sbmport", Integer.toString(sbmPort)));
sbmIdleSleepMilliSeconds = Integer.parseInt(getOptionValue("sbmsleepms", Integer.toString(sbmPort)));
config.copy = Boolean.parseBoolean(getOptionValue("copy", Boolean.toString(config.copy)));
config.delete = Boolean.parseBoolean(getOptionValue("delete", Boolean.toString(config.delete)));

parsedArgs = new String[]{"-nodes", nodeString, "-gemuser", config.sbkcommand, "-gempass",
config.gempass, "-gemport", Integer.toString(config.gemport), "-sbkdir", config.sbkdir,
"-sbkcommand", config.sbkcommand, "-copy", Boolean.toString(config.copy),
"-delete", Boolean.toString(config.delete), "-localhost", localHost, "-ramport",
"-delete", Boolean.toString(config.delete), "-localhost", localHost, "-sbmport",
Integer.toString(sbmPort)};

connections = new ConnectionConfig[nodes.length];
Expand Down
4 changes: 2 additions & 2 deletions sbm/src/main/java/io/sbm/api/impl/Sbm.java
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ public static Benchmark buildBenchmark(final String[] args, final String applica
Printer.log.error("Instantiation of Logger class '" + argsLoggerName + "' from the package '" +
ramLoggerPackageName + "' failed!, " + "error: " + ex);
final RamParameterOptions helpParams = new SbmParameters(appName, sbmConfig.port,
sbmConfig.maxConnections, loggerNames);
sbmConfig.maxConnections, sbmConfig.idleMS, loggerNames);
helpParams.printHelp();
throw ex;
}
Expand All @@ -167,7 +167,7 @@ public static Benchmark buildBenchmark(final String[] args, final String applica
// disable CSV
sbmConfig.csv = false;

params = new SbmParameters(usageLine, sbmConfig.port, sbmConfig.maxConnections, loggerNames);
params = new SbmParameters(usageLine, sbmConfig.port, sbmConfig.maxConnections, sbmConfig.idleMS, loggerNames);
logger.addArgs(params);
try {
params.parseArgs(args);
Expand Down
6 changes: 6 additions & 0 deletions sbm/src/main/java/io/sbm/params/RamParameters.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,10 @@ public sealed interface RamParameters extends ActionParameter permits RamParamet
*/
int getMaxConnections();

/**
* get duration idle sleep in Milliseconds.
*
* @return get idle sleep in milliseconds .
*/
int getIdleSleepMilliSeconds();
}
9 changes: 7 additions & 2 deletions sbm/src/main/java/io/sbm/params/impl/SbmParameters.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,20 @@ final public class SbmParameters extends SbkInputOptions implements RamParameter
@Getter
private int port;

@Getter
private int idleSleepMilliSeconds;

final private String[] loggerNames;
/**
* Constructor SbmParameters initializing all values.
*
* @param name String
* @param port int
* @param maxConnections int
* @param idleMS int
* @param loggerNames
*/
public SbmParameters(String name, int port, int maxConnections, String[] loggerNames) {
public SbmParameters(String name, int port, int maxConnections, int idleMS, String[] loggerNames) {
super(name, SbmConfig.DESC);
this.maxConnections = maxConnections;
this.port = port;
Expand All @@ -71,6 +75,7 @@ public SbmParameters(String name, int port, int maxConnections, String[] loggerN
default: r""");
addOption("port", true, "SBM port number; default: " + this.port);
addOption("max", true, "Maximum number of connections; default: " + maxConnections);
addOption("millisecsleep", true, "Idle sleep in milliseconds; default: " + idleMS);
}


Expand All @@ -95,6 +100,6 @@ public void parseArgs(String[] args) throws ParseException, IllegalArgumentExcep
};
maxConnections = Integer.parseInt(getOptionValue("max", Integer.toString(maxConnections)));
port = Integer.parseInt(getOptionValue("port", Integer.toString(port)));
idleSleepMilliSeconds = Integer.parseInt(getOptionValue("millisecsleep", Integer.toString(idleSleepMilliSeconds)));
}

}
Loading