diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
deleted file mode 100644
index 1213527..0000000
--- a/dependency-reduced-pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
- 4.0.0
- org.hobbit.workpackage5
- versioning
- versioning
- 0.0.1-SNAPSHOT
- Source code for workpackage 5.2
- http://maven.apache.org
-
-
-
- maven-shade-plugin
- 2.4.3
-
-
- package
-
- shade
-
-
-
-
-
-
- *:*
-
- META-INF/*.SF
- META-INF/*.DSA
- META-INF/*.RSA
-
-
-
-
-
-
- ${maven.compile.source}
- ${maven.compile.target}
-
-
-
-
-
-
-
-
-
-
- maven.aksw.internal
- University Leipzig, AKSW Maven2 Repository
- http://maven.aksw.org/repository/internal
-
-
-
- always
-
-
- always
-
- maven.aksw.snapshots
- University Leipzig, AKSW Maven2 Repository
- http://maven.aksw.org/repository/snapshots
-
-
- local repository
- file://${project.basedir}/lib
-
-
-
-
- junit
- junit
- 3.8.1
- test
-
-
-
- 1.7
- UTF-8
- 1.7
-
-
-
diff --git a/src/main/java/org/hobbit/benchmark/versioning/components/VersioningBenchmarkController.java b/src/main/java/org/hobbit/benchmark/versioning/components/VersioningBenchmarkController.java
index 4ab86ec..699b14c 100644
--- a/src/main/java/org/hobbit/benchmark/versioning/components/VersioningBenchmarkController.java
+++ b/src/main/java/org/hobbit/benchmark/versioning/components/VersioningBenchmarkController.java
@@ -14,6 +14,8 @@
import org.hobbit.core.Commands;
import org.hobbit.core.Constants;
import org.hobbit.core.components.AbstractBenchmarkController;
+import org.hobbit.core.components.utils.SystemResourceUsageRequester;
+import org.hobbit.core.data.usage.ResourceUsageInformation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -31,7 +33,6 @@ public class VersioningBenchmarkController extends AbstractBenchmarkController {
private String[] dataGenEnvVariables = null;
private String[] evalStorageEnvVariables = null;
-
private Semaphore versionSentMutex = new Semaphore(0);
private Semaphore versionLoadedMutex = new Semaphore(0);
@@ -44,19 +45,23 @@ public class VersioningBenchmarkController extends AbstractBenchmarkController {
private AtomicIntegerArray triplesToBeDeleted;
private AtomicIntegerArray triplesToBeLoaded;
private AtomicInteger numberOfMessages = new AtomicInteger(0);
-
+
+ private SystemResourceUsageRequester resUsageRequester = null;
+ private long systemInitialUsableSpace = 0;
+ private long systemStorageSpaceCost = 0;
+
@Override
public void init() throws Exception {
LOGGER.info("Initilalizing Benchmark Controller...");
super.init();
-
- numberOfDataGenerators = (Integer) getProperty(PREFIX + "hasNumberOfGenerators", 1);
- int v0Size = (Integer) getProperty(PREFIX + "v0SizeInTriples", 1000000);
- int generatorSeed = (Integer) getProperty(PREFIX + "generatorSeed", 0);
- numOfVersions = (Integer) getProperty(PREFIX + "numberOfVersions", 12);
- int insRatio = (Integer) getProperty(PREFIX + "versionInsertionRatio", 5);
- int delRatio = (Integer) getProperty(PREFIX + "versionDeletionRatio", 3);
- String dataForm = (String) getProperty(PREFIX + "generatedDataForm", "ic");
+
+ numberOfDataGenerators = (Integer) getPropertyOrDefault(PREFIX + "hasNumberOfGenerators", 1);
+ int v0Size = (Integer) getPropertyOrDefault(PREFIX + "v0SizeInTriples", 1000000);
+ int generatorSeed = (Integer) getPropertyOrDefault(PREFIX + "generatorSeed", 0);
+ numOfVersions = (Integer) getPropertyOrDefault(PREFIX + "numberOfVersions", 12);
+ int insRatio = (Integer) getPropertyOrDefault(PREFIX + "versionInsertionRatio", 5);
+ int delRatio = (Integer) getPropertyOrDefault(PREFIX + "versionDeletionRatio", 3);
+ String dataForm = (String) getPropertyOrDefault(PREFIX + "generatedDataForm", "ic");
loadingTimes = new long[numOfVersions];
triplesToBeAdded = new AtomicIntegerArray(numOfVersions);
@@ -119,7 +124,7 @@ public void init() throws Exception {
* @return the value of requested parameter
*/
@SuppressWarnings("unchecked")
- private T getProperty(String property, T defaultValue) {
+ private T getPropertyOrDefault(String property, T defaultValue) {
T propertyValue = null;
NodeIterator iterator = benchmarkParamModel
.listObjectsOfProperty(benchmarkParamModel
@@ -172,17 +177,23 @@ public void receiveCommand(byte command, byte[] data) {
numberOfMessages.addAndGet(dataGenNumOfMessages);
// signal sent from data generator that all its data generated successfully
- LOGGER.info("Recieved signal from Data Generator " + dataGeneratorId + " that all data (#" + dataGenNumOfMessages + ") of version " + loadedVersion + " successfully sent to System Adapter.");
+ LOGGER.info("Recieved signal from Data Generator " + dataGeneratorId + " that all data (#" + dataGenNumOfMessages + ") of version " + loadedVersion + " successfully sent to the system.");
versionSentMutex.release();
} else if (command == SystemAdapterConstants.BULK_LOADING_DATA_FINISHED) {
- // signal sent from system adapter that a version loaded successfully
- LOGGER.info("Recieved signal that all data of version " + loadedVersion + " successfully loaded from system.");
+ // signal sent from the system that a version loaded successfully
+ LOGGER.info("Recieved signal that all data of version " + loadedVersion + " successfully loaded by the system.");
long currTimeMillis = System.currentTimeMillis();
long versionLoadingTime = currTimeMillis - prevLoadingStartedTime;
loadingTimes[loadedVersion++] = versionLoadingTime;
- prevLoadingStartedTime = currTimeMillis;
+
+ LOGGER.info("Waiting 15 seconds...");
+ try {
+ Thread.sleep(1000 * 15);
+ } catch (InterruptedException e) {
+ LOGGER.error("An error occured while waiting.", e);
+ }
versionLoadedMutex.release();
- }
+ }
super.receiveCommand(command, data);
}
@@ -199,23 +210,35 @@ protected void executeBenchmark() throws Exception {
sendToCmdQueue(Commands.DATA_GENERATOR_START_SIGNAL);
LOGGER.info("Start signals sent to Data and Task Generators");
+ LOGGER.info("Creating requester for system resource usage information.");
+ resUsageRequester = SystemResourceUsageRequester.create(this, getHobbitSessionId());
+
+ LOGGER.info("Measuring system's usable space before data loading");
+ ResourceUsageInformation infoBefore = resUsageRequester.getSystemResourceUsage();
+ if (infoBefore.getDiskStats() != null) {
+ systemInitialUsableSpace = infoBefore.getDiskStats().getFsSizeSum();
+ LOGGER.info("System's usable space before data loading: " + systemInitialUsableSpace);
+ } else {
+ LOGGER.info(infoBefore.toString());
+ LOGGER.info("Got null as response.");
+ }
+
// iterate through different versions starting from version 0
- for (int v=0; v /dev/null
-$VIRTUOSO_BIN/isql-v $ADDRESS:$PORT exec="DB.DBA.RDF_OBJ_FT_RULE_DEL (null, null, 'ALL');" > /dev/null
-$VIRTUOSO_BIN/isql-v $ADDRESS:$PORT exec="ld_dir('"$FOLDER"', '*', '"$GRAPHURI"');" > /dev/null
+$VIRTUOSO_BIN/isql-v $ADDRESS:$PORT exec="delete from load_list;" > /dev/null 2>&1
+$VIRTUOSO_BIN/isql-v $ADDRESS:$PORT exec="DB.DBA.RDF_OBJ_FT_RULE_DEL (null, null, 'ALL');" > /dev/null 2>&1
+$VIRTUOSO_BIN/isql-v $ADDRESS:$PORT exec="ld_dir('"$FOLDER"', '*', '"$GRAPHURI"');" > /dev/null 2>&1
for i in `seq 1 $NUMBER_OF_LOADERS`;
do
- $VIRTUOSO_BIN/isql-v $ADDRESS:$PORT exec="rdf_loader_run()" & > /dev/null
+ $VIRTUOSO_BIN/isql-v $ADDRESS:$PORT exec="rdf_loader_run()" & > /dev/null 2>&1
done
wait
-$VIRTUOSO_BIN/isql-v $ADDRESS:$PORT exec="checkpoint;" > /dev/null
+$VIRTUOSO_BIN/isql-v $ADDRESS:$PORT exec="checkpoint;" > /dev/null 2>&1
end_load=$(($(date +%s%N)/1000000))
loadingtime=$(($end_load - $start_load))
+sync
+
# logging
echo "All data loaded to graph <"$GRAPHURI">, using "$NUMBER_OF_LOADERS" rdf loaders. Time : "$loadingtime" ms"