aboutsummaryrefslogtreecommitdiffstats
path: root/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java')
-rw-r--r--vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java30
1 files changed, 24 insertions, 6 deletions
diff --git a/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java b/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java
index ffe1eb42e3e..b4549fe495c 100644
--- a/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java
+++ b/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java
@@ -27,8 +27,9 @@ class FeederParams {
private String configId = "client";
private OutputStream dumpStream = null;
private DumpFormat dumpFormat = DumpFormat.JSON;
- private boolean serialTransferEnabled = false;
+ private boolean benchmarkMode = false;
private int numDispatchThreads = 1;
+ private int maxPending = 0;
InputStream getStdIn() {
return stdIn;
@@ -81,32 +82,46 @@ class FeederParams {
return this;
}
+ FeederParams setMaxPending(int maxPending) {
+ this.maxPending = maxPending;
+ return this;
+ }
+
boolean isSerialTransferEnabled() {
- return serialTransferEnabled;
+ return maxPending == 1;
}
- FeederParams setSerialTransfer(boolean serial) {
- this.serialTransferEnabled = serial;
+ FeederParams setSerialTransfer() {
+ maxPending = 1;
+ numDispatchThreads = 1;
return this;
}
int getNumDispatchThreads() { return numDispatchThreads; }
+ int getMaxPending() { return maxPending; }
+ boolean isBenchmarkMode() { return benchmarkMode; }
FeederParams parseArgs(String... args) throws ParseException, FileNotFoundException {
Options opts = new Options();
- opts.addOption("s", "serial", false, "use serial transfer mode, at most 1 pending operation");
+ opts.addOption("s", "serial", false, "use serial transfer mode, at most 1 pending operation and a single thread");
opts.addOption("n", "numthreads", true, "Number of clients for sending messages. Anything, but 1 will bypass sequencing by document id.");
+ opts.addOption("m", "maxpending", true, "Max number of inflights messages. Default is auto.");
opts.addOption("r", "route", true, "Route for sending messages. default is 'default'....");
+ opts.addOption("b", "mode", true, "Mode for benchmarking.");
opts.addOption("o", "output", true, "File to write to. Extensions gives format (.xml, .json, .vespa) json will be produced if no extension.");
CommandLine cmd = new DefaultParser().parse(opts, args);
- serialTransferEnabled = cmd.hasOption('s');
+
if (cmd.hasOption('n')) {
numDispatchThreads = Integer.valueOf(cmd.getOptionValue('n').trim());
}
+ if (cmd.hasOption('m')) {
+ maxPending = Integer.valueOf(cmd.getOptionValue('m').trim());
+ }
if (cmd.hasOption('r')) {
route = Route.parse(cmd.getOptionValue('r').trim());
}
+ benchmarkMode = cmd.hasOption('b');
if (cmd.hasOption('o')) {
String fileName = cmd.getOptionValue('o').trim();
dumpStream = new FileOutputStream(new File(fileName));
@@ -114,6 +129,9 @@ class FeederParams {
dumpFormat = DumpFormat.VESPA;
}
}
+ if (cmd.hasOption('s')) {
+ setSerialTransfer();
+ }
return this;
}