Skip to content
Snippets Groups Projects
Commit d6464682 authored by Nikolaus Huber's avatar Nikolaus Huber
Browse files

refactoring

generation/derivation of experiment name factored out

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@12056 9e42b895-fcda-4063-8a3b-11be15eb1bbd
parent eef2e4f9
No related branches found
No related tags found
No related merge requests found
......@@ -7,6 +7,7 @@ import org.eclipse.emf.common.util.URI;
import edu.kit.ipd.descartes.adaptation.TacticsHistory;
import edu.kit.ipd.descartes.adaptation.model.AbstractEcoreModelLoader;
import edu.kit.ipd.descartes.adaptation.util.BlueYonderExperimentTracker;
import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic;
import edu.kit.ipd.descartes.perfdatarepo.Impact;
import edu.kit.ipd.descartes.perfdatarepo.Result;
......@@ -15,10 +16,10 @@ import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository;
public class ObservationRepositoryHandler implements IPerformanceDataRepositoryHandler {
private BlueYonderExperimentTracker tracker = new BlueYonderExperimentTracker();
private static Logger logger = Logger.getLogger(ObservationRepositoryHandler.class);
private AbstractEcoreModelLoader modelLoader = null;
private ObservationRepository repository = null;
private int iteration = 1;
public ObservationRepositoryHandler() {
modelLoader = ObservationRepositoryModelLoader.getInstance();
......@@ -43,22 +44,21 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH
if (latestTactic == null) {
o = repository.getLatestObservation();
} else {
String expName = ObservationRepositoryHelper.deriveExperimentName(latestTactic, iteration);
String expName = tracker.getCurrentExperimentName();
logger.debug("Searching for result of " + expName);
o = ObservationRepositoryHelper.getResultEndingWith(expName, repository);
}
return PerfDataRepoConverter.convertResult(o);
// return convertResult(repository.getObservations().get(iteration++));
}
@Override
public Impact getLatestImpact(WeightedTactic tactic) {
String expName = ObservationRepositoryHelper.deriveExperimentName(tactic, iteration + 1);
tracker.track(tactic);
String expName = tracker.getCurrentExperimentName();
logger.debug("Searching for impact of " + expName);
Impact latestImpact = PerfDataRepoConverter.convertObservableImpact(ObservationRepositoryHelper
.searchImpactOfTactic(expName, repository));
iteration++;
return latestImpact;
}
}
......@@ -4,13 +4,12 @@ import java.util.List;
import org.eclipse.emf.ecore.util.EcoreUtil;
import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic;
import edu.kit.ipd.descartes.ql.models.repository.ObservableImpact;
import edu.kit.ipd.descartes.ql.models.repository.Observation;
import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository;
public class ObservationRepositoryHelper {
public static ObservableImpact searchImpactOfTactic(String name, ObservationRepository repository) {
// Get correct result
Observation o = getResultEndingWith(name, repository);
......@@ -20,24 +19,6 @@ public class ObservationRepositoryHelper {
return i;
}
public static String deriveExperimentName(WeightedTactic tactic) {
return tactic.getName();
}
public static String deriveExperimentName(WeightedTactic tactic, int iteration) {
String execTacticName = tactic.getName();
if (execTacticName.contains("Low")) {
String desc1 = "Xreq-par-Yps-desc4-gw-desc3-db-desc2-predict-Z ps=$-req=5-size=50000";
return null;
} else if (execTacticName.contains("High")) {
String desc4 = "Xreq-par-Yps-desc4-gw-desc3-db-desc2-predict-Z ps=$-req=5-size=50000";
return desc4.replace("$", Integer.toString(iteration));
}
return null;
}
public static ObservableImpact getImpactForObservation(Observation o, ObservationRepository repo) {
if (o == null || repo == null)
return null;
......
package edu.kit.ipd.descartes.adaptation.util;
import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic;
public class BlueYonderExperimentTracker {
private static final String RESULT_NAME = "Xreq-par-$1Yps-desc4-gw-desc3-db-desc2-predict-Z ps=$2-req=5-size=50000";
private int psOnDescOne = 0;
private int psOnDescFour = 1;
public String getCurrentExperimentName() {
String result = RESULT_NAME;
if (psOnDescOne > 0)
result = RESULT_NAME.replace("$1", psOnDescOne + "ps-desc1-");
else
result = RESULT_NAME.replace("$1", "");
result = result.replace("$2", Integer.toString(psOnDescFour));
return result;
}
public void track(WeightedTactic tactic) {
String execTacticName = tactic.getName();
if (execTacticName.contains("Low")) {
psOnDescOne++;
} else if (execTacticName.contains("High")) {
psOnDescFour++;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment