Skip to content

Commit 493a11e

Browse files
committed
Warmup phase added and something more
1 parent bf3a9c1 commit 493a11e

File tree

7 files changed

+77
-12
lines changed

7 files changed

+77
-12
lines changed

src/main/java/org/hobbit/sparql_snb/SNBBenchmarkController.java

+28-3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public class SNBBenchmarkController extends AbstractBenchmarkController {
2121
private int numberOfOperations = -1;
2222
private int scaleFactor = -1;
2323
private int seed = -1;
24+
private int warmupCount = -1;
2425
private double timeCompressionRatio = -1;
2526
private long loadingStarted = -1;
2627
private long loadingEnded;
@@ -61,13 +62,14 @@ public void init() throws Exception {
6162
if (iterator.hasNext()) {
6263
try {
6364
numberOfOperations = iterator.next().asLiteral().getInt();
65+
LOGGER.info("Number of operations: " + String.valueOf(numberOfOperations));
6466
} catch (Exception e) {
6567
LOGGER.error("Exception while parsing parameter.", e);
6668
}
6769
}
6870
if (numberOfOperations < 0) {
6971
LOGGER.error("Couldn't get the number of operations from the parameter model. Using the default value.");
70-
numberOfOperations = 10000;
72+
numberOfOperations = 20000;
7173
}
7274
}
7375

@@ -97,6 +99,7 @@ public void init() throws Exception {
9799
if (iterator.hasNext()) {
98100
try {
99101
scaleFactor = iterator.next().asLiteral().getInt();
102+
LOGGER.info("Scale Factor: " + String.valueOf(scaleFactor));
100103
} catch (Exception e) {
101104
LOGGER.error("Exception while parsing parameter.", e);
102105
}
@@ -116,12 +119,32 @@ public void init() throws Exception {
116119
if (iterator.hasNext()) {
117120
try {
118121
seed = iterator.next().asLiteral().getInt();
122+
LOGGER.info("Seed: " + String.valueOf(seed));
119123
} catch (Exception e) {
120124
LOGGER.error("Exception while parsing parameter.", e);
121125
}
122126
}
123127
}
124128

129+
/* Warmup count */
130+
if (warmupCount == -1) {
131+
132+
iterator = benchmarkParamModel.listObjectsOfProperty(
133+
benchmarkParamModel.getProperty("http://w3id.org/bench#warmupPercent"));
134+
if (iterator.hasNext()) {
135+
try {
136+
int warmupPercent;
137+
warmupPercent = iterator.next().asLiteral().getInt();
138+
if (warmupPercent < 0 || warmupPercent > 100)
139+
warmupPercent = 20;
140+
warmupCount = numberOfOperations * warmupPercent / 100;
141+
LOGGER.info("Warmup count: " + String.valueOf(warmupCount));
142+
} catch (Exception e) {
143+
LOGGER.error("Exception while parsing parameter.", e);
144+
}
145+
}
146+
}
147+
125148
/* Sequential tasks */
126149
if (sequential_tasks == false) {
127150

@@ -131,7 +154,7 @@ public void init() throws Exception {
131154
try {
132155
//sequential_tasks = (iterator.next().asLiteral().getInt() == 0 ? false : true);
133156
sequential_tasks = iterator.next().asLiteral().getBoolean();
134-
LOGGER.info("Boolean: " + String.valueOf(sequential_tasks));
157+
LOGGER.info("Sequential task: " + String.valueOf(sequential_tasks));
135158
} catch (Exception e) {
136159
LOGGER.error("Exception while parsing parameter.", e);
137160
}
@@ -167,6 +190,7 @@ public void init() throws Exception {
167190
SNBConstants.GENERATOR_SCALE_FACTOR + "=" + scaleFactor,
168191
SNBConstants.GENERATOR_SEED + "=" + seed,
169192
SNBConstants.GENERATOR_NUMBER_OF_OPERATIONS + "=" + numberOfOperations,
193+
SNBConstants.WARMUP_COUNT + "=" + warmupCount,
170194
SNBConstants.GENERATOR_INITIAL_TIME_COMPRESSION_RATIO + "=" + timeCompressionRatio,
171195
SNBConstants.DISABLE_ENABLE_QUERY_TYPE + "=" + disableEnableQueryType
172196
};
@@ -181,7 +205,8 @@ public void init() throws Exception {
181205
if (sequential_tasks == true)
182206
envVariables = ArrayUtils.add(envVariables, "ACKNOWLEDGEMENT_FLAG=true");
183207
createEvaluationStorage(DEFAULT_EVAL_STORAGE_IMAGE, envVariables);
184-
// TODO: get KPIs for evaluation module
208+
209+
// KPIs for evaluation module
185210
envVariablesEvaluationModule.add(SNBConstants.EVALUATION_QE_AVERAGE_TIME + "=" + "http://w3id.org/bench#QEAverageTime");
186211
envVariablesEvaluationModule.add(SNBConstants.EVALUATION_Q01E_AVERAGE_TIME + "=" + "http://w3id.org/bench#Q01EAverageTime");
187212
envVariablesEvaluationModule.add(SNBConstants.EVALUATION_Q02E_AVERAGE_TIME + "=" + "http://w3id.org/bench#Q02EAverageTime");

src/main/java/org/hobbit/sparql_snb/SNBEvaluationModule.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ private void internalInit() {
302302
if (!env.containsKey(SNBConstants.EVALUATION_NUMBER_OF_WRONG_ANSWERS)) {
303303
throw new IllegalArgumentException("Couldn't get \"" + SNBConstants.EVALUATION_NUMBER_OF_WRONG_ANSWERS + "\" from the environment. Aborting.");
304304
}
305-
EVALUATION_NUMBER_OF_WRONG_ANSWERS = finalModel.createProperty(env.get(SNBConstants.EVALUATION_NUMBER_OF_WRONG_ANSWERS));
305+
EVALUATION_NUMBER_OF_WRONG_ANSWERS = finalModel.createProperty(env.get(SNBConstants.EVALUATION_NUMBER_OF_WRONG_ANSWERS));
306306
}
307307

308308
@Override
@@ -312,6 +312,10 @@ protected void evaluateResponse(byte[] expectedData, byte[] receivedData, long t
312312
String rStr = RabbitMQUtils.readString(receivedData);
313313
String [] lines = eStr.split("\n\n", 2);
314314
String type = eStr.substring(1, 4).trim();
315+
316+
if (type.startsWith("WRM"))
317+
return;
318+
315319
if (!type.startsWith("U")) {
316320
if (!lines[1].trim().equals(rStr.trim())) {
317321
wrongAnswers.add(lines[0] + " : " + lines[1].length() + " - " + rStr.length());

src/main/java/org/hobbit/sparql_snb/SNBSeqTaskGenerator.java

+16-2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public class SNBSeqTaskGenerator extends AbstractSequencingTaskGenerator {
4040
private int scaleFactor;
4141
private int seed;
4242
private int numberOfOperations;
43+
private int warmupCount;
4344
private String disableEnableQueryType;
4445
private boolean finished = false;
4546

@@ -104,6 +105,13 @@ private void internalInit() {
104105
}
105106
numberOfOperations = Integer.parseInt(env.get(SNBConstants.GENERATOR_NUMBER_OF_OPERATIONS));
106107

108+
/* warmUp count */
109+
if (!env.containsKey(SNBConstants.WARMUP_COUNT)) {
110+
LOGGER.error("Couldn't get \"" + SNBConstants.WARMUP_COUNT + "\" from the properties. Aborting.");
111+
System.exit(1);
112+
}
113+
warmupCount = Integer.parseInt(env.get(SNBConstants.WARMUP_COUNT));
114+
107115
rndms = new Random[22];
108116
for (int i = 1; i <= 21; i++) {
109117
rndms[i] = new Random(seed + i);
@@ -202,7 +210,10 @@ protected void generateTask(byte[] data) throws Exception {
202210
long timestamp = System.currentTimeMillis();
203211
sendTaskToSystemAdapter(taskIdString, task);
204212

205-
data = RabbitMQUtils.writeString(queryText.substring(0, 4));
213+
if (Long.valueOf(taskIdString) < warmupCount)
214+
data = RabbitMQUtils.writeString("#WRM");
215+
else
216+
data = RabbitMQUtils.writeString(queryText.substring(0, 4));
206217
sendTaskToEvalStorage(taskIdString, timestamp, data);
207218
}
208219

@@ -226,7 +237,10 @@ protected void generateTask(byte[] data) throws Exception {
226237
sendTaskToSystemAdapter(taskIdString, task);
227238

228239
String a = (answers.length <= selectId ? "TODO" : answers[selectId++]);
229-
data = RabbitMQUtils.writeString(queryText + "\n\n" + a);
240+
if (Long.valueOf(taskIdString) < warmupCount)
241+
data = RabbitMQUtils.writeString("#WRM");
242+
else
243+
data = RabbitMQUtils.writeString(queryText + "\n\n" + a);
230244
sendTaskToEvalStorage(taskIdString, timestamp, data);
231245
}
232246
}

src/main/java/org/hobbit/sparql_snb/SNBTaskGenerator.java

+16-2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public class SNBTaskGenerator extends AbstractTaskGenerator {
4040
private int scaleFactor;
4141
private int seed;
4242
private int numberOfOperations;
43+
private int warmupCount;
4344
private String disableEnableQueryType;
4445
private boolean finished = false;
4546

@@ -107,6 +108,13 @@ private void internalInit() {
107108
}
108109
numberOfOperations = Integer.parseInt(env.get(SNBConstants.GENERATOR_NUMBER_OF_OPERATIONS));
109110

111+
/* warmUp count */
112+
if (!env.containsKey(SNBConstants.WARMUP_COUNT)) {
113+
LOGGER.error("Couldn't get \"" + SNBConstants.WARMUP_COUNT + "\" from the properties. Aborting.");
114+
System.exit(1);
115+
}
116+
warmupCount = Integer.parseInt(env.get(SNBConstants.WARMUP_COUNT));
117+
110118
rndms = new Random[22];
111119
for (int i = 1; i <= 21; i++) {
112120
rndms[i] = new Random(seed + i);
@@ -220,7 +228,10 @@ protected void generateTask(byte[] data) throws Exception {
220228
long timestamp = System.currentTimeMillis();
221229
sendTaskToSystemAdapter(taskIdString, task);
222230

223-
data = RabbitMQUtils.writeString(queryText.substring(0, 4));
231+
if (Long.valueOf(taskIdString) < warmupCount)
232+
data = RabbitMQUtils.writeString("#WRM");
233+
else
234+
data = RabbitMQUtils.writeString(queryText.substring(0, 4));
224235
sendTaskToEvalStorage(taskIdString, timestamp, data);
225236
}
226237

@@ -247,7 +258,10 @@ protected void generateTask(byte[] data) throws Exception {
247258
sendTaskToSystemAdapter(taskIdString, task);
248259

249260
String a = (answers.length <= selectId ? "TODO" : answers[selectId++]);
250-
data = RabbitMQUtils.writeString(queryText + "\n\n" + a);
261+
if (Long.valueOf(taskIdString) < warmupCount)
262+
data = RabbitMQUtils.writeString("#WRM");
263+
else
264+
data = RabbitMQUtils.writeString(queryText + "\n\n" + a);
251265
sendTaskToEvalStorage(taskIdString, timestamp, data);
252266
}
253267
}

src/main/java/org/hobbit/sparql_snb/util/SNBConstants.java

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ public final class SNBConstants {
66
public static final String GENERATOR_SCALE_FACTOR = "generator_scale_factor";
77
public static final String GENERATOR_INITIAL_TIME_COMPRESSION_RATIO = "generator_initial_time_compression_ratio";
88
public static final String GENERATOR_SEED = "generator_seed";
9+
public static final String WARMUP_COUNT = "warmup_count";
910
public static final String SEQUENTIAL_TASKS = "sequential_tasks";
1011
public static final String DISABLE_ENABLE_QUERY_TYPE = "disableEnableQueryType";
1112

system/load.sh

+7
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,10 @@ done
1616
wait
1717

1818
echo "checkpoint;" | isql $ADDRESS:$PORT
19+
20+
#echo "select count(*) from RDF_QUAD;" | isql $ADDRESS:$PORT
21+
#echo "select count(*) from RDF_QUAD table option (index RDF_QUAD);" | isql $ADDRESS:$PORT
22+
#echo "select count(*) from RDF_QUAD table option (index RDF_QUAD_POGS);" | isql $ADDRESS:$PORT
23+
#echo "select count(*) from RDF_QUAD table option (index RDF_QUAD_SP);" | isql $ADDRESS:$PORT
24+
#echo "select count(*) from RDF_QUAD table option (index RDF_QUAD_OP);" | isql $ADDRESS:$PORT
25+
#echo "select count(*) from RDF_QUAD table option (index RDF_QUAD_GS);" | isql $ADDRESS:$PORT

system/virtuoso.ini.template

+4-4
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ DisableTcpSocket = 0
5555
;X509ClientVerify = 0
5656
;X509ClientVerifyDepth = 0
5757
;X509ClientVerifyCAFile = ca.pem
58-
ServerThreads = 100
59-
;MaxClientConnections = 100
58+
;ServerThreads = 100
59+
MaxClientConnections = 100
6060
CheckpointInterval = 0
6161
O_DIRECT = 0
6262
CaseMode = 2
@@ -121,8 +121,8 @@ MaxDirtyBuffers = 11000000
121121
[HTTPServer]
122122
ServerPort = 8890
123123
ServerRoot = /usr/local/virtuoso-opensource/var/lib/virtuoso/vsp
124-
ServerThreads = 40
125-
;MaxClientConnections = 40
124+
;ServerThreads = 40
125+
MaxClientConnections = 40
126126
DavRoot = DAV
127127
EnabledDavVSP = 0
128128
HTTPProxyEnabled = 0

0 commit comments

Comments
 (0)