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; ...@@ -7,6 +7,7 @@ import org.eclipse.emf.common.util.URI;
import edu.kit.ipd.descartes.adaptation.TacticsHistory; import edu.kit.ipd.descartes.adaptation.TacticsHistory;
import edu.kit.ipd.descartes.adaptation.model.AbstractEcoreModelLoader; 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.mm.adaptation.WeightedTactic;
import edu.kit.ipd.descartes.perfdatarepo.Impact; import edu.kit.ipd.descartes.perfdatarepo.Impact;
import edu.kit.ipd.descartes.perfdatarepo.Result; import edu.kit.ipd.descartes.perfdatarepo.Result;
...@@ -15,10 +16,10 @@ import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository; ...@@ -15,10 +16,10 @@ import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository;
public class ObservationRepositoryHandler implements IPerformanceDataRepositoryHandler { public class ObservationRepositoryHandler implements IPerformanceDataRepositoryHandler {
private BlueYonderExperimentTracker tracker = new BlueYonderExperimentTracker();
private static Logger logger = Logger.getLogger(ObservationRepositoryHandler.class); private static Logger logger = Logger.getLogger(ObservationRepositoryHandler.class);
private AbstractEcoreModelLoader modelLoader = null; private AbstractEcoreModelLoader modelLoader = null;
private ObservationRepository repository = null; private ObservationRepository repository = null;
private int iteration = 1;
public ObservationRepositoryHandler() { public ObservationRepositoryHandler() {
modelLoader = ObservationRepositoryModelLoader.getInstance(); modelLoader = ObservationRepositoryModelLoader.getInstance();
...@@ -43,22 +44,21 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH ...@@ -43,22 +44,21 @@ public class ObservationRepositoryHandler implements IPerformanceDataRepositoryH
if (latestTactic == null) { if (latestTactic == null) {
o = repository.getLatestObservation(); o = repository.getLatestObservation();
} else { } else {
String expName = ObservationRepositoryHelper.deriveExperimentName(latestTactic, iteration); String expName = tracker.getCurrentExperimentName();
logger.debug("Searching for result of " + expName); logger.debug("Searching for result of " + expName);
o = ObservationRepositoryHelper.getResultEndingWith(expName, repository); o = ObservationRepositoryHelper.getResultEndingWith(expName, repository);
} }
return PerfDataRepoConverter.convertResult(o); return PerfDataRepoConverter.convertResult(o);
// return convertResult(repository.getObservations().get(iteration++));
} }
@Override @Override
public Impact getLatestImpact(WeightedTactic tactic) { 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); logger.debug("Searching for impact of " + expName);
Impact latestImpact = PerfDataRepoConverter.convertObservableImpact(ObservationRepositoryHelper Impact latestImpact = PerfDataRepoConverter.convertObservableImpact(ObservationRepositoryHelper
.searchImpactOfTactic(expName, repository)); .searchImpactOfTactic(expName, repository));
iteration++;
return latestImpact; return latestImpact;
} }
} }
...@@ -4,13 +4,12 @@ import java.util.List; ...@@ -4,13 +4,12 @@ import java.util.List;
import org.eclipse.emf.ecore.util.EcoreUtil; 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.ObservableImpact;
import edu.kit.ipd.descartes.ql.models.repository.Observation; import edu.kit.ipd.descartes.ql.models.repository.Observation;
import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository; import edu.kit.ipd.descartes.ql.models.repository.ObservationRepository;
public class ObservationRepositoryHelper { public class ObservationRepositoryHelper {
public static ObservableImpact searchImpactOfTactic(String name, ObservationRepository repository) { public static ObservableImpact searchImpactOfTactic(String name, ObservationRepository repository) {
// Get correct result // Get correct result
Observation o = getResultEndingWith(name, repository); Observation o = getResultEndingWith(name, repository);
...@@ -20,24 +19,6 @@ public class ObservationRepositoryHelper { ...@@ -20,24 +19,6 @@ public class ObservationRepositoryHelper {
return i; 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) { public static ObservableImpact getImpactForObservation(Observation o, ObservationRepository repo) {
if (o == null || repo == null) if (o == null || repo == null)
return 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