|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.sun.slamd.job.OptimizationAlgorithm
com.sun.slamd.job.SingleStatisticOptimizationAlgorithm
public class SingleStatisticOptimizationAlgorithm
This class defines a simple SLAMD optimization algorithm that looks at a
single statistic within the job and finds the iteration with the highest or
lowest value for a given stat tracker. This stat tracker must be one that is
searchable (i.e., the isSearchable() method returns
true). No other statistics or resource monitor data are taken
into consideration in the decision-making process.
This is the default optimization algorithm used by the SLAMD server. It
implements the behavior that the SLAMD server used before this logic became
customizable. Any optimizing job that does not have any information about
which optimization algorithm was used will be assumed to be based on this
logic.
| Field Summary | |
|---|---|
static int |
OPTIMIZE_TYPE_MAXIMIZE
The optimization type value that indicates that we should try to find the highest value for the statistic to optimize. |
static int |
OPTIMIZE_TYPE_MINIMIZE
The optimization type value that indicates that we should try to find the lowest value for the statistic to optimize. |
static java.lang.String |
PARAM_MIN_PCT_IMPROVEMENT
The name of the parameter that is used to specify the minimum required percent improvement needed for a new best iteration. |
static java.lang.String |
PARAM_OPTIMIZE_STAT
The name of the parameter that is used to specify the statistic to optimize. |
static java.lang.String |
PARAM_OPTIMIZE_TYPE
The name of the parameter that is used to specify the type of optimization to perform. |
| Constructor Summary | |
|---|---|
SingleStatisticOptimizationAlgorithm()
Creates a new instance of this optimization algorithm. |
|
| Method Summary | |
|---|---|
boolean |
availableWithJobClass(JobClass jobClass)
Indicates whether this optimization algorithm may be used when running the specified type of job. |
double |
getIterationOptimizationValue(Job iteration)
Retrieves the value associated with the provided iteration of the given optimizing job. |
java.lang.String |
getOptimizationAlgorithmName()
Retrieves the human-readable name that will be used for this optimization algorithm. |
ParameterList |
getOptimizationAlgorithmParameters()
Retrieves the set of parameters that have been defined for this optimization algorithm. |
ParameterList |
getOptimizationAlgorithmParameterStubs(JobClass jobClass)
Retrieves a set of parameter stubs that should be used to prompt the end user for the settings to use when executing the optimizing job. |
void |
initializeLegacyJob(OptimizingJob optimizingJob,
java.lang.String optimizeStat,
int optimizeType)
Initializes this optimization algorithm with information from a legacy optimizing job (i.e., an optimizing job that was scheduled using a SLAMD version that did not include support for customizable optimization algorithms). |
void |
initializeOptimizationAlgorithm(OptimizingJob optimizingJob,
ParameterList parameters)
Initializes this optimization algorithm with the provided set of parameters for the given optimizing job. |
boolean |
isBestIterationSoFar(Job iteration)
Indicates whether the provided iteration is the best one seen so far for the given optimizing job based on the constraints specified in the parameters used to initialize this optimization algorithm. |
OptimizationAlgorithm |
newInstance()
Creates a new, uninitialized instance of this optimization algorithm. |
void |
reInitializeOptimizationAlgorithm()
Clears any state information currently set for this optimization algorithm and restores it to the state it would have if a new instance had been created and only the initializeOptimizationAlgorithm() method
had been called on that instance. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final java.lang.String PARAM_MIN_PCT_IMPROVEMENT
public static final java.lang.String PARAM_OPTIMIZE_STAT
public static final java.lang.String PARAM_OPTIMIZE_TYPE
public static final int OPTIMIZE_TYPE_MAXIMIZE
public static final int OPTIMIZE_TYPE_MINIMIZE
| Constructor Detail |
|---|
public SingleStatisticOptimizationAlgorithm()
| Method Detail |
|---|
public java.lang.String getOptimizationAlgorithmName()
getOptimizationAlgorithmName in class OptimizationAlgorithmpublic OptimizationAlgorithm newInstance()
newInstance in class OptimizationAlgorithmpublic boolean availableWithJobClass(JobClass jobClass)
availableWithJobClass in class OptimizationAlgorithmjobClass - The job class for which to make the determination.
true if this optimization algorithm may be used with
the provided job class, or false if not.public void reInitializeOptimizationAlgorithm()
initializeOptimizationAlgorithm() method
had been called on that instance. In this case, all that is necessary is
to forget about the best value seen so far.
reInitializeOptimizationAlgorithm in class OptimizationAlgorithmpublic ParameterList getOptimizationAlgorithmParameterStubs(JobClass jobClass)
getOptimizationAlgorithmParameterStubs in class OptimizationAlgorithmjobClass - The job class that will be used for the optimizing job.
public ParameterList getOptimizationAlgorithmParameters()
getOptimizationAlgorithmParameters in class OptimizationAlgorithm
public void initializeOptimizationAlgorithm(OptimizingJob optimizingJob,
ParameterList parameters)
throws InvalidValueException
initializeOptimizationAlgorithm in class OptimizationAlgorithmoptimizingJob - The optimizing job with which this optimization
algorithm will be used.parameters - The parameter list containing the parameter values
provided by the end user when scheduling the
optimizing job.
InvalidValueException - If the contents of the provided parameter
list are not valid for use with this
optimization algorithm.
public void initializeLegacyJob(OptimizingJob optimizingJob,
java.lang.String optimizeStat,
int optimizeType)
optimizingJob - The optimizing job with which this optimization
algorithm is associated.optimizeStat - The statistic to optimize.optimizeType - The type of optimization to perform.
public boolean isBestIterationSoFar(Job iteration)
throws SLAMDException
isBestIterationSoFar in class OptimizationAlgorithmiteration - The job iteration for which to make the
determination.
true if the provided iteration is the best one seen
so far for the optimizing job, or false if not.
SLAMDException - If a problem occurs that prevents a valid
determination from being made. If this exception
is thrown, then the optimizing job will stop
immediately with no further iterations.
public double getIterationOptimizationValue(Job iteration)
throws SLAMDException
getIterationOptimizationValue in class OptimizationAlgorithmiteration - The job iteration for which to retrieve the value.
SLAMDException - If a problem occurs while trying to determine the
value for the given optimizing job iteration.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||