<?xml version="1.0" encoding="ASCII"?> <adaptation:AdaptationProcess xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:adaptation="http://www.descartes-research.net/metamodel/adaptation/0.1" xmlns:adaptationpoints="http://www.descartes-research.net/metamodel/adaptationpoints/0.1" xmlns:containerrepository="http://www.descartes-research.net/metamodel/containerrepository/0.1" xmlns:resourcelandscape="http://www.descartes-research.net/metamodel/resourcelandscape/0.1" id="_07SqMKaFEeKsaqdh-1smGw" name="PushPullAdaptationProcess"> <tactics id="2341234" name="AddResources"> <implementedPlan id="qweqweqwe" name="AddResourcesAdaptationPlan"> <steps xsi:type="adaptation:StartAction" id="_PXgN0KaHEeKsaqdh-1smGw" successor="_Qych0qaHEeKsaqdh-1smGw"/> <steps xsi:type="adaptation:StopAction" id="_QNxHcaaHEeKsaqdh-1smGw" predecessor="_Qych0qaHEeKsaqdh-1smGw"/> <steps xsi:type="adaptation:LoopAction" id="_Qych0qaHEeKsaqdh-1smGw" predecessor="_PXgN0KaHEeKsaqdh-1smGw" successor="_QNxHcaaHEeKsaqdh-1smGw" counter="//@parameters.0"> <body id="_UpH4cKaHEeKsaqdh-1smGw" name="addVCPUorAppServer"> <steps xsi:type="adaptation:StartAction" id="2342623434" successor="33eadsea"/> <steps xsi:type="adaptation:BranchAction" id="33eadsea" predecessor="2342623434" successor="6423423423" condition="RuntimeEnvironment.allInstances()->select( re | re.template = self.template )->exists(re | re.configSpec.oclAsType(resourceconfiguration::ActiveResourceSpecification).processingResourceSpecifications->forAll(nrOfParProcUnits.number < 4)) and RuntimeEnvironment.allInstances()->select( re | re.template = self.template )->forAll(re | re.template.templateConfig.oclAsType(resourceconfiguration::ActiveResourceSpecification).processingResourceSpecifications->forAll(nrOfParProcUnits.number < 4))"> <context xsi:type="resourcelandscape:RuntimeEnvironment" href="acamarcluster.resourcelandscape#12"/> <conditionTrueBranch id="efasfasd" name="addVCPU"> <steps xsi:type="adaptation:ActionReference" id="35634534" predecessor="321321" successor="345fdas" refersTo="2"/> <steps xsi:type="adaptation:StartAction" id="321321" successor="35634534"/> <steps xsi:type="adaptation:StopAction" id="345fdas" predecessor="35634534"/> </conditionTrueBranch> <conditionFalseBranch id="adsgsadas" name="addAppServer"> <steps xsi:type="adaptation:ActionReference" id="453412341241" predecessor="e123134" successor="e63412" refersTo="41123123"/> <steps xsi:type="adaptation:StartAction" id="e123134" successor="453412341241"/> <steps xsi:type="adaptation:StopAction" id="e63412" predecessor="453412341241"/> </conditionFalseBranch> </steps> <steps xsi:type="adaptation:StopAction" id="6423423423" predecessor="33eadsea"/> </body> </steps> </implementedPlan> </tactics> <tactics id="_zFC2EaaMEeKdn_E8M08Q_g" name="UndoPreviousAction"> <implementedPlan id="_1_t3cKaMEeKdn_E8M08Q_g" name="UndoPreviousActionPlan"> <steps xsi:type="adaptation:StartAction" id="_9awssKaMEeKdn_E8M08Q_g" successor="_-Pacw6aMEeKdn_E8M08Q_g"/> <steps xsi:type="adaptation:BranchAction" id="_-Pacw6aMEeKdn_E8M08Q_g" predecessor="_9awssKaMEeKdn_E8M08Q_g" successor="_9ysEgaaMEeKdn_E8M08Q_g" condition=""> <context xsi:type="containerrepository:ContainerTemplate" href="default.containerrepository#2"/> <conditionTrueBranch id="_KP82cKaNEeKdn_E8M08Q_g" name="conditionTrue"> <steps xsi:type="adaptation:StartAction" id="_UUI4MKaNEeKdn_E8M08Q_g" successor="_dl-P9KaNEeKdn_E8M08Q_g"/> <steps xsi:type="adaptation:StopAction" id="_Uv0uoaaNEeKdn_E8M08Q_g" predecessor="_dl-P9KaNEeKdn_E8M08Q_g"/> <steps xsi:type="adaptation:ActionReference" id="_dl-P9KaNEeKdn_E8M08Q_g" predecessor="_UUI4MKaNEeKdn_E8M08Q_g" successor="_Uv0uoaaNEeKdn_E8M08Q_g" refersTo="41123123"/> </conditionTrueBranch> <conditionFalseBranch id="_K4GbkaaNEeKdn_E8M08Q_g" name="conditionFalse"> <steps xsi:type="adaptation:StartAction" id="_VFQMEKaNEeKdn_E8M08Q_g" successor="_mMx4RKaOEeKlTfD7QKQIcw"/> <steps xsi:type="adaptation:StopAction" id="_VYB-IaaNEeKdn_E8M08Q_g" predecessor="_mMx4RKaOEeKlTfD7QKQIcw"/> <steps xsi:type="adaptation:ActionReference" id="_mMx4RKaOEeKlTfD7QKQIcw" predecessor="_VFQMEKaNEeKdn_E8M08Q_g" successor="_VYB-IaaNEeKdn_E8M08Q_g" refersTo="2"/> </conditionFalseBranch> </steps> <steps xsi:type="adaptation:StopAction" id="_9ysEgaaMEeKdn_E8M08Q_g" predecessor="_-Pacw6aMEeKdn_E8M08Q_g"/> </implementedPlan> </tactics> <tactics id="123123" name="RemoveResources"> <implementedPlan id="123123123" name="RemoveResourcesAdaptationPlan"> <steps xsi:type="adaptation:StartAction" id="_iqERYKaMEeKdn_E8M08Q_g" successor="_jqTmYqaMEeKdn_E8M08Q_g"/> <steps xsi:type="adaptation:StopAction" id="_jO2ZcaaMEeKdn_E8M08Q_g" predecessor="_jqTmYqaMEeKdn_E8M08Q_g"/> <steps xsi:type="adaptation:LoopAction" id="_jqTmYqaMEeKdn_E8M08Q_g" predecessor="_iqERYKaMEeKdn_E8M08Q_g" successor="_jO2ZcaaMEeKdn_E8M08Q_g" counter="//@parameters.0"> <body id="_oCJwYKaMEeKdn_E8M08Q_g" name="removeVCPUorAppServer"> <steps xsi:type="adaptation:StartAction" id="321" successor="branchDecrease"/> <steps xsi:type="adaptation:BranchAction" id="branchDecrease" predecessor="321" successor="432" condition="RuntimeEnvironment.allInstances()->select( re | re.template = self.template and not re.configSpec->isEmpty())->exists(re | re.configSpec.oclAsType(resourceconfiguration::ActiveResourceSpecification).processingResourceSpecifications->forAll(nrOfParProcUnits.number > 2))"> <context xsi:type="resourcelandscape:RuntimeEnvironment" href="acamarcluster.resourcelandscape#12"/> <conditionTrueBranch id="_k0FLAICyEeKnieBrE9C24w" name="addVCPU"> <steps xsi:type="adaptation:ActionReference" id="123487612497162" predecessor="_q13HQICyEeKnieBrE9C24w" successor="_rJvFgYCyEeKnieBrE9C24w" refersTo="345242342"/> <steps xsi:type="adaptation:StartAction" id="_q13HQICyEeKnieBrE9C24w" successor="123487612497162"/> <steps xsi:type="adaptation:StopAction" id="_rJvFgYCyEeKnieBrE9C24w" predecessor="123487612497162"/> </conditionTrueBranch> <conditionFalseBranch id="_nZJv1oCyEeKnieBrE9C24w" name="removeAppServer"> <steps xsi:type="adaptation:ActionReference" id="234983249623" predecessor="_xUQHAICyEeKnieBrE9C24w" successor="_xx9WsYCyEeKnieBrE9C24w" refersTo="1287127123"/> <steps xsi:type="adaptation:StartAction" id="_xUQHAICyEeKnieBrE9C24w" successor="234983249623"/> <steps xsi:type="adaptation:StopAction" id="_xx9WsYCyEeKnieBrE9C24w" predecessor="234983249623"/> </conditionFalseBranch> </steps> <steps xsi:type="adaptation:StopAction" id="432" predecessor="branchDecrease"/> </body> </steps> </implementedPlan> </tactics> <actions id="2" name="AddVCPU"> <referredAdaptationPoint xsi:type="adaptationpoints:ModelVariableConfigurationRange" href="default.adaptationpoints#238746123"/> <adaptationActionOperation adaptationOperationScope="RANDOM" adaptationOperationDirection="INCREASE"/> </actions> <actions id="345242342" name="RemoveCPU"> <referredAdaptationPoint xsi:type="adaptationpoints:ModelVariableConfigurationRange" href="default.adaptationpoints#238746123"/> <adaptationActionOperation adaptationOperationScope="RANDOM" adaptationOperationDirection="DECREASE"/> </actions> <actions id="41123123" name="AddAppServer"> <referredAdaptationPoint xsi:type="adaptationpoints:ModelEntityConfigurationRange" href="default.adaptationpoints#12312412412"/> <adaptationActionOperation adaptationOperationScope="RANDOM" adaptationOperationDirection="INCREASE"/> </actions> <actions id="1287127123" name="RemoveAppServer"> <referredAdaptationPoint xsi:type="adaptationpoints:ModelEntityConfigurationRange" href="default.adaptationpoints#12312412412"/> <adaptationActionOperation adaptationOperationScope="RANDOM" adaptationOperationDirection="DECREASE"/> </actions> <strategies id="s1" name="PUSH" objective="_GdVkoKaGEeKsaqdh-1smGw"> <triggeringEvents id="12345" name="SlaViolatedEvent"/> <tactics id="wt1" name="AddResourcesWeightedTactic" usedTactic="2341234" defaultWeight="1.0"/> <weightingFunction id="wf1" name="WeightedSum" weightingFunctionImplementation="edu.kit.ipd.descartes.adaptation.evaluation.performance.weightingfunction.WeightedSum"> <weightedMetrics id="_TzHMgGVXEeK4L53_AeGtGA" name="UtilizationWeight" weight="1.0"> <metricType href="metrictypes.perfdatarepo#2"/> </weightedMetrics> <weightedMetrics id="_QKf6YGllEeKYrN0mFHpJCQ" name="ResponseTimeWeight" weight="-2.0"> <metricType href="metrictypes.perfdatarepo#3"/> </weightedMetrics> </weightingFunction> </strategies> <strategies id="_Cg--ZYAnEeKW2vVcg5ekRw" name="PULL" objective="_G-ctoKaGEeKsaqdh-1smGw"> <triggeringEvents id="_H_MTgIAnEeKW2vVcg5ekRw" name="ScheduledOptimizationEvent"/> <tactics id="_Tk5LUYAnEeKW2vVcg5ekRw" name="RemoveResourcesWeightedTactic" usedTactic="123123" currentWeight="1.0" defaultWeight="1.0"/> <tactics id="_4j5FkaamEeKwhcuIujY6Yw" name="UndoPreviousActionWeightedTactic" usedTactic="_zFC2EaaMEeKdn_E8M08Q_g" currentWeight="0.5" defaultWeight="0.5"/> <weightingFunction id="wf2" name="WeightedSum" weightingFunctionImplementation="edu.kit.ipd.descartes.adaptation.evaluation.performance.weightingfunction.WeightedSum"> <weightedMetrics id="_TzHMgGVXEeK4L53_AeGtGA1" name="UtilizationWeight" weight="1.0"> <metricType href="metrictypes.perfdatarepo#2"/> </weightedMetrics> <weightedMetrics id="_Fc5YUKanEeKwhcuIujY6Yw" name="ResponseTimeWeight" weight="-2.0"> <metricType href="metrictypes.perfdatarepo#3"/> </weightedMetrics> </weightingFunction> </strategies> <parameters name="LoopCounter" type="EInteger" value="1"/> <goal description="Maintain SLAs of all serivces using resources efficiently"> <objectives id="_GdVkoKaGEeKsaqdh-1smGw" name="MaintainSLAs"> <specifications value="100.0" relationalOperator="LESS_EQUAL"> <metricType href="metrictypes.perfdatarepo#3"/> </specifications> <specifications value="300.0" relationalOperator="LESS"> <metricType href="metrictypes.perfdatarepo#4"/> </specifications> </objectives> <objectives id="_G-ctoKaGEeKsaqdh-1smGw" name="OptimizeResourceEfficiency"> <specifications value="0.4" relationalOperator="GREATER"> <metricType href="metrictypes.perfdatarepo#2"/> </specifications> <specifications value="0.85" relationalOperator="LESS"> <metricType href="metrictypes.perfdatarepo#2"/> </specifications> <specifications value="100.0" relationalOperator="LESS_EQUAL"> <metricType href="metrictypes.perfdatarepo#3"/> </specifications> <specifications value="300.0" relationalOperator="LESS_EQUAL"> <metricType href="metrictypes.perfdatarepo#4"/> </specifications> </objectives> </goal> </adaptation:AdaptationProcess>