Skip to content

Commit

Permalink
Merge pull request #437 from kmgowda/kmg-sbm-sleep-1
Browse files Browse the repository at this point in the history
Add option for idle sleep milliseconds.

Signed-off-by: Keshava Munegowda <keshava.gowda@gmail.com>
  • Loading branch information
kmgowda authored Aug 17, 2024
2 parents 9e0c442 + af82736 commit 4ec67eb
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 11 deletions.
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)));
}

}

0 comments on commit 4ec67eb

Please sign in to comment.