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"