Analysis
public class PmooAnalysis extends AbstractAnalysis implements Analysis
Analysis.Analyses
configuration, network, result
Modifier | Constructor | Description |
---|---|---|
private |
PmooAnalysis() |
|
|
PmooAnalysis(Network network) |
|
|
PmooAnalysis(Network network,
AnalysisConfig configuration) |
Modifier and Type | Method | Description |
---|---|---|
protected static ServiceCurve |
computePartialPMOOServiceCurve(Path path,
ServiceCurve[] service_curves,
java.util.List<Flow> cross_flow_substitutes,
java.util.Map<Flow,java.lang.Integer> flow_tb_iter_map,
int[] server_rl_iters) |
Calculates the partial PMOO service curve for the given flow set by combining
all servers having an outgoing link contained in the given link-path.
|
java.util.Set<ServiceCurve> |
getLeftOverServiceCurves() |
|
private java.util.Map<java.util.Set<Flow>,java.util.LinkedList<Path>> |
getProlongationsToSubpaths(Path path,
java.util.Map<Path,java.util.Set<Flow>> xtx_subpath_grouped_original) |
|
static ServiceCurve |
getServiceCurve(Path path,
java.util.List<Flow> cross_flow_substitutes) |
Concatenates the service curves along the given path
path
according to the PMOO approach and returns the result. |
java.util.Set<ServiceCurve> |
getServiceCurves(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
|
private java.util.Set<ServiceCurve> |
getServiceCurvesFP(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
|
private java.util.Set<ServiceCurve> |
getServiceCurvesStandard(Flow flow_of_interest,
Path path,
java.util.Set<Flow> flows_to_serve) |
|
void |
performAnalysis(Flow flow_of_interest) |
Performs a pay-multiplexing-only-once (PMOO) analysis for the
flow_of_interest . |
void |
performAnalysis(Flow flow_of_interest,
Path path) |
|
private java.util.Set<ServiceCurve> |
xtxSubpathBetas(Flow flow_of_interest,
Path path,
java.util.Map<Path,java.util.Set<Flow>> xtx_subpath_grouped) |
getBacklogBound, getDelayBound, getNetwork, getServerAlphasMap, getServerAlphasMapString, toString
performPmooEnd2End, performPmooEnd2End, performSfaEnd2End, performSfaEnd2End, performTfaEnd2End, performTfaEnd2End
private PmooAnalysis()
public PmooAnalysis(Network network)
public PmooAnalysis(Network network, AnalysisConfig configuration)
public static ServiceCurve getServiceCurve(Path path, java.util.List<Flow> cross_flow_substitutes)
path
according to the PMOO approach and returns the result.
It first decomposes all arrival curves (service curves) into token buckets
(rate latency curves), enumerates over all combinations of token buckets and
rate latency curves, and calls computePartialPMOOServiceCurve()
for each combination. The total PMOO service curve is the maximum of all
partial service curves.
path
- The Path traversed for which a PMOO left-over service curve will
be computed.cross_flow_substitutes
- Flow substitutes according to PMOO's needs and abstracting from
the actual cross-flows.protected static ServiceCurve computePartialPMOOServiceCurve(Path path, ServiceCurve[] service_curves, java.util.List<Flow> cross_flow_substitutes, java.util.Map<Flow,java.lang.Integer> flow_tb_iter_map, int[] server_rl_iters)
path
- The tandem of servers the left-over service curve holds for.service_curves
- The service curves on the path.cross_flow_substitutes
- Flows representing a group of segregated flows.flow_tb_iter_map
- Defines which token bucket component of a flow's arrival bound to
use.server_rl_iters
- Defines which rate latency component of a server's service curve
to use.public void performAnalysis(Flow flow_of_interest) throws java.lang.Exception
flow_of_interest
.performAnalysis
in interface Analysis
flow_of_interest
- the flow for which the end-to-end service curve shall be computed.java.lang.Exception
public void performAnalysis(Flow flow_of_interest, Path path) throws java.lang.Exception
performAnalysis
in interface Analysis
java.lang.Exception
public java.util.Set<ServiceCurve> getServiceCurves(Flow flow_of_interest, Path path, java.util.Set<Flow> flows_to_serve) throws java.lang.Exception
java.lang.Exception
private java.util.Set<ServiceCurve> getServiceCurvesFP(Flow flow_of_interest, Path path, java.util.Set<Flow> flows_to_serve) throws java.lang.Exception
java.lang.Exception
private java.util.Map<java.util.Set<Flow>,java.util.LinkedList<Path>> getProlongationsToSubpaths(Path path, java.util.Map<Path,java.util.Set<Flow>> xtx_subpath_grouped_original) throws java.lang.Exception
java.lang.Exception
private java.util.Set<ServiceCurve> getServiceCurvesStandard(Flow flow_of_interest, Path path, java.util.Set<Flow> flows_to_serve) throws java.lang.Exception
java.lang.Exception
private java.util.Set<ServiceCurve> xtxSubpathBetas(Flow flow_of_interest, Path path, java.util.Map<Path,java.util.Set<Flow>> xtx_subpath_grouped) throws java.lang.Exception
java.lang.Exception
public java.util.Set<ServiceCurve> getLeftOverServiceCurves()